Skip to content

Disable version-branching; add Ruff checks #40

Disable version-branching; add Ruff checks

Disable version-branching; add Ruff checks #40

Workflow file for this run

---
# The general flow of this is like so:
#
# - When a PR is opened against `main`, or if that PR changes:
# - Figure out if any code changes have been made
# - Require a version number change
# - Require that the code pass Ruff tests
# - When the PR gets merged:
# - Create a new branch matching the version number
name: validate
concurrency:
group: validate
cancel-in-progress: true
on:
pull_request:
branches:
- main
types:
- opened
- edited
- synchronize
- closed
permissions:
contents: read
pull-requests: read
jobs:
# This job detects which parts of the repo have been changed, setting future jobs up for conditional behavior.
detect-changes:
runs-on: ubuntu-latest
outputs:
lint: ${{ steps.check.outputs.lint }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: check
with:
filters: |
lint:
- 'tb_pulumi/**'
- 'pyproject.toml'
# This job detects what version is listed in pyproject.toml and determines if a branch exists for that version yet.
detect-versions:
needs: detect-changes
if: needs.detect-changes.outputs.lint == 'true'
runs-on: ubuntu-latest
outputs:
branch-exists: ${{ steps.branch-exists.outputs.exists }}
version: v${{ steps.version.outputs.value }}
steps:
# Detect version from pyproject.toml
- uses: actions/checkout@v4
- uses: SebRollen/toml-action@v1.2.0
id: version
with:
file: './pyproject.toml'
field: project.version
- uses: GuillaumeFalourd/branch-exists@v1
id: branch-exists
with:
branch: v${{ steps.version.outputs.value }}
# Fail on version collision. Every change to code requires an update to the version number.
version-collision:
needs: detect-versions
runs-on: ubuntu-latest
if: needs.detect-versions.outputs.branch-exists == 'true'
steps:
- name: "Error: version collision"
run: exit 1
# Run Ruff against tb_pulumi. Fail on format errors or failed sanity checks.
lint:
needs: detect-changes
runs-on: ubuntu-latest
if: needs.detect-changes.outputs.lint == 'true'
steps:
- uses: actions/checkout@v4
- name: Run Ruff syntax checks
uses: chartboost/ruff-action@v1
with:
src: './tb_pulumi'
- name: Run Ruff linter
uses: chartboost/ruff-action@v1
with:
src: './tb_pulumi'
args: 'format --check'
# The below code is commented out because it works, except for a Github auth issue.
# Ref: https://github.com/orgs/community/discussions/13836
# When the PR gets merged, cut a new version branch.
# merge:
# needs: detect-versions
# if: github.event.pull_request.merged == true && needs.detect-versions.outputs.branch-exists == 'false'
# runs-on: ubuntu-latest
# permissions:
# contents: write
# steps:
# - uses: actions/checkout@v4
# - name: Create a new version branch
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# shell: bash
# run: |
# git checkout -b ${{ needs.detect-versions.outputs.version }}
# git push -u origin ${{ needs.detect-versions.outputs.version }}