diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7c2c1c..71adc19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,50 +1,65 @@ --- - name: CI +name: CI - on: # yamllint disable-line rule:truthy - push: - pull_request: +on: # yamllint disable-line rule:truthy + push: + pull_request: + branches-ignore: + - 'dependabot/**/**' +concurrency: + group: "${{ github.head_ref || github.ref }}-${{ github.workflow }}" + cancel-in-progress: true - concurrency: - group: "${{ github.head_ref || github.ref }}-${{ github.workflow }}" - cancel-in-progress: true +jobs: + lint-test: + if: '! github.event.pull_request.draft' + name: Lint and Test + runs-on: ubuntu-22.04 + strategy: + matrix: + python-version: ["3.12"] - jobs: - lint-test: - if: '! github.event.pull_request.draft' - name: Lint and Test - runs-on: ubuntu-22.04 - strategy: - matrix: - python-version: ["3.12"] + steps: + - name: PR Conventional Commit Validation + if: | + github.event_name == 'pull_request' && + (github.event.action == 'opened' || + github.event.action == 'synchronize' || + github.event.action == 'reopened' || + github.event.action == 'edited') && + github.actor != 'dependabot[bot]' && + github.actor != 'dependabot-preview[bot]' + uses: ytanikin/pr-conventional-commits@1.4.0 + with: + task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]' + custom_labels: '{"feat": "enhancement", "fix": "bug", "docs": "documentation", "test": "test", "ci": "CI/CD", "refactor": "refactor", "perf": "performance", "chore": "chore", "revert": "revert", "wip": "WIP"}' + add_scope_label: 'false' + - uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v6 - steps: - - uses: actions/checkout@v4 - - name: Install uv - uses: astral-sh/setup-uv@v6 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} + - name: Display Python version + run: python -c "import sys; print(sys.version)" - - name: Display Python version - run: python -c "import sys; print(sys.version)" + - name: Build uv lock file + run: uv lock - - name: Build uv lock file - run: uv lock + - name: Install dependencies + run: uv sync - - name: Install dependencies - run: uv sync + - name: setup gitleaks + run: make setup-gitleaks - - name: setup gitleaks - run: make setup-gitleaks + - name: run gitleaks + run: make run-gitleaks - - name: run gitleaks - run: make run-gitleaks + - name: check code formatting & vulnerability detection + run: make check-python-nofix - - name: check code formatting & vulnerability detection - run: make check-python-nofix - - - name: Cleanup residue file - run: make clean + - name: Cleanup residue file + run: make clean