From 2df9d37f34038c3b76def842de8efffebb169ab7 Mon Sep 17 00:00:00 2001 From: Gauvain Date: Sun, 5 Jul 2026 15:10:59 +0200 Subject: [PATCH] ci(lint): move PR title validation to its own workflow Job-level 'edited' skips left matrix checks with an unexpanded ${{ matrix.command }} name and required checks stuck in Expected. Filtering at the trigger level removes the phantom run entirely: title edits now only run the PR title check. --- .github/workflows/linting.yml | 40 +----------------------------- .github/workflows/pr-title.yml | 45 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 .github/workflows/pr-title.yml diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index cc753b8e..0109b48a 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -2,7 +2,7 @@ name: 🚦 Security & Quality Gate on: pull_request: - types: [opened, edited, synchronize, reopened] + types: [opened, synchronize, reopened] branches: [develop, master] workflow_dispatch: push: @@ -16,42 +16,8 @@ concurrency: cancel-in-progress: true jobs: - validate_pr_title: - name: "📝 Validate PR Title" - if: github.event_name == 'pull_request' - runs-on: ubuntu-26.04 - permissions: - pull-requests: write - contents: read - steps: - - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 - id: lint_pr_title - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4 - if: always() && (steps.lint_pr_title.outputs.error_message != null) - with: - header: pr-title-lint-error - message: | - Hey there and thank you for opening this pull request! 👋🏼 - We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/). - - **Error details:** - ``` - ${{ steps.lint_pr_title.outputs.error_message }} - ``` - - - if: ${{ steps.lint_pr_title.outputs.error_message == null }} - uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4 - with: - header: pr-title-lint-error - delete: true - dependency-review: name: 🔍 Vulnerable Dependencies - # PR title/body edits can't change the dependency graph — only re-run on code events. - if: github.event.action != 'edited' runs-on: ubuntu-26.04 permissions: contents: read @@ -71,8 +37,6 @@ jobs: expo-doctor: name: 🚑 Expo Doctor Check - # PR title/body edits can't change the project — only re-run on code events. - if: github.event.action != 'edited' runs-on: ubuntu-26.04 steps: - parallel: @@ -108,8 +72,6 @@ jobs: code_quality: name: "🔍 Lint & Test (${{ matrix.command }})" - # PR title/body edits can't change the code — only re-run on code events. - if: github.event.action != 'edited' runs-on: ubuntu-26.04 strategy: fail-fast: false diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml new file mode 100644 index 00000000..80b561d2 --- /dev/null +++ b/.github/workflows/pr-title.yml @@ -0,0 +1,45 @@ +name: 📝 PR Title + +on: + pull_request: + types: [opened, edited, synchronize, reopened] + branches: [develop, master] + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + validate_pr_title: + name: "📝 Validate PR Title" + runs-on: ubuntu-26.04 + permissions: + pull-requests: write + contents: read + steps: + - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 + id: lint_pr_title + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4 + if: always() && (steps.lint_pr_title.outputs.error_message != null) + with: + header: pr-title-lint-error + message: | + Hey there and thank you for opening this pull request! 👋🏼 + We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/). + + **Error details:** + ``` + ${{ steps.lint_pr_title.outputs.error_message }} + ``` + + - if: ${{ steps.lint_pr_title.outputs.error_message == null }} + uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4 + with: + header: pr-title-lint-error + delete: true