From cb7da3a5387d8876c2bf17955fb65812edafb4ae Mon Sep 17 00:00:00 2001 From: golem Date: Sun, 18 Oct 2026 02:08:12 -0600 Subject: [PATCH] ci: add a WIP-title gate to extension CI Every push to an open PR ran the full validate job, and pull_request lacked the edited type, so removing WIP: would not start a run. pr-flow therefore refused to open PRs early. Skip validate on PRs titled WIP: or [WIP], add edited so un-WIP starts the run, add workflow_dispatch for on-demand runs, and cancel superseded PR runs (never push runs, since main's push uploads the package). The workflow name and job id are unchanged, so the required check context stays "Firefox Extension CI / validate (pull_request)". Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/firefox-extension.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.gitea/workflows/firefox-extension.yml b/.gitea/workflows/firefox-extension.yml index 2fac9ef..8ca8953 100644 --- a/.gitea/workflows/firefox-extension.yml +++ b/.gitea/workflows/firefox-extension.yml @@ -2,13 +2,29 @@ name: Firefox Extension CI on: pull_request: + # edited: removing the WIP: prefix starts the real run. + types: [opened, synchronize, reopened, edited] push: branches: - develop - main + workflow_dispatch: + +concurrency: + group: ${{ gitea.workflow }}-${{ gitea.ref }} + # Cancel superseded PR runs, never a push run: main's push uploads the package. + cancel-in-progress: ${{ gitea.event_name == 'pull_request' }} jobs: validate: + # WIP gate: skip PRs titled WIP: so early PRs cost no run per push. Gate on + # the title and nothing else, since a skipped job reports success on the + # required check (see ~/.claude/docs/gitea-ci-pattern.md). + if: >- + gitea.event_name != 'pull_request' || ( + !startsWith(gitea.event.pull_request.title, 'WIP:') && + !startsWith(gitea.event.pull_request.title, '[WIP]') + ) runs-on: ubuntu-latest steps: - name: Check out repository