CI: a newer run cancels the one it supersedes #126
+18
-3
@@ -22,10 +22,15 @@ on:
|
|||||||
# is one runner, so a stale run would hold it (and the GPU) to the end. Adding
|
# is one runner, so a stale run would hold it (and the GPU) to the end. Adding
|
||||||
# a label other than e2e:full starts a run whose jobs all skip; it gets a
|
# a label other than e2e:full starts a run whose jobs all skip; it gets a
|
||||||
# group of its own, so it can't cancel the real one.
|
# group of its own, so it can't cancel the real one.
|
||||||
|
#
|
||||||
|
# Gitea triggers on `labeled` but hands the workflow its own name for the
|
||||||
|
# action, `label_updated` (and `synchronized` for a push), so each check
|
||||||
|
# below accepts both.
|
||||||
concurrency:
|
concurrency:
|
||||||
group: >-
|
group: >-
|
||||||
${{ github.workflow }}-${{ github.head_ref || github.ref }}${{
|
${{ github.workflow }}-${{ github.head_ref || github.ref }}${{
|
||||||
(github.event.action == 'labeled' && github.event.label.name != 'e2e:full')
|
((github.event.action == 'labeled' || github.event.action == 'label_updated')
|
||||||
|
&& github.event.label.name != 'e2e:full')
|
||||||
&& format('-label-{0}', github.run_id) || '' }}
|
&& format('-label-{0}', github.run_id) || '' }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
@@ -34,8 +39,17 @@ env:
|
|||||||
FULL: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'e2e:full') }}
|
FULL: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'e2e:full') }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
event: # TEMPORARY, for #126: what Gitea puts in the event
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo "action=[${{ github.event.action }}] label=[${{ github.event.label.name }}] event=${{ github.event_name }}"
|
||||||
|
echo "group=[${{ github.workflow }}-${{ github.head_ref || github.ref }}${{ ((github.event.action == 'labeled' || github.event.action == 'label_updated') && github.event.label.name != 'e2e:full') && format('-label-{0}', github.run_id) || '' }}]"
|
||||||
|
|
||||||
checks:
|
checks:
|
||||||
if: github.event.action != 'labeled' || github.event.label.name == 'e2e:full'
|
if: >-
|
||||||
|
(github.event.action != 'labeled' && github.event.action != 'label_updated')
|
||||||
|
|| github.event.label.name == 'e2e:full'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -92,7 +106,8 @@ jobs:
|
|||||||
# diagnosing (--lf).
|
# diagnosing (--lf).
|
||||||
if: >-
|
if: >-
|
||||||
github.event_name != 'push'
|
github.event_name != 'push'
|
||||||
&& (github.event.action != 'labeled' || github.event.label.name == 'e2e:full')
|
&& ((github.event.action != 'labeled' && github.event.action != 'label_updated')
|
||||||
|
|| github.event.label.name == 'e2e:full')
|
||||||
needs: checks
|
needs: checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
|
|||||||
Reference in new issue
Block a user