Merge pull request #50731 from vvoland/gha-validate-only

gha: Add conditional skip for jobs with 'ci/validate-only' label
This commit is contained in:
Sebastiaan van Stijn
2025-08-14 20:09:14 +02:00
committed by GitHub
7 changed files with 23 additions and 4 deletions

View File

@@ -37,6 +37,7 @@ jobs:
build: build:
runs-on: ubuntu-24.04-arm runs-on: ubuntu-24.04-arm
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
strategy: strategy:
@@ -70,6 +71,7 @@ jobs:
build-dev: build-dev:
runs-on: ubuntu-24.04-arm runs-on: ubuntu-24.04-arm
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
steps: steps:
@@ -93,6 +95,7 @@ jobs:
test-unit: test-unit:
runs-on: ubuntu-24.04-arm runs-on: ubuntu-24.04-arm
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-dev - build-dev
steps: steps:
@@ -150,7 +153,7 @@ jobs:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 10 timeout-minutes: 10
continue-on-error: ${{ github.event_name != 'pull_request' }} continue-on-error: ${{ github.event_name != 'pull_request' }}
if: always() if: always() && (github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only'))
needs: needs:
- test-unit - test-unit
steps: steps:
@@ -179,6 +182,7 @@ jobs:
runs-on: ubuntu-24.04-arm runs-on: ubuntu-24.04-arm
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
continue-on-error: ${{ github.event_name != 'pull_request' }} continue-on-error: ${{ github.event_name != 'pull_request' }}
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-dev - build-dev
steps: steps:
@@ -249,7 +253,7 @@ jobs:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 10 timeout-minutes: 10
continue-on-error: ${{ github.event_name != 'pull_request' }} continue-on-error: ${{ github.event_name != 'pull_request' }}
if: always() if: always() && (github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only'))
needs: needs:
- test-integration - test-integration
steps: steps:

View File

@@ -42,6 +42,7 @@ jobs:
prepare: prepare:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
outputs: outputs:
platforms: ${{ steps.platforms.outputs.matrix }} platforms: ${{ steps.platforms.outputs.matrix }}
steps: steps:
@@ -96,10 +97,10 @@ jobs:
build: build:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && (github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only')) }}
needs: needs:
- validate-dco - validate-dco
- prepare - prepare
if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled')
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -172,9 +173,9 @@ jobs:
merge: merge:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 40 # guardrails timeout for the whole job timeout-minutes: 40 # guardrails timeout for the whole job
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && github.event_name != 'pull_request' && github.repository == 'moby/moby' }}
needs: needs:
- build - build
if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && github.event_name != 'pull_request' && github.repository == 'moby/moby'
steps: steps:
- -
name: Download meta bake definition name: Download meta bake definition

View File

@@ -35,6 +35,7 @@ jobs:
build-linux: build-linux:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
steps: steps:
@@ -62,6 +63,7 @@ jobs:
test-linux: test-linux:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-linux - build-linux
env: env:
@@ -166,6 +168,7 @@ jobs:
build-windows: build-windows:
runs-on: windows-2022 runs-on: windows-2022
timeout-minutes: 120 timeout-minutes: 120
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
env: env:
@@ -265,6 +268,7 @@ jobs:
test-windows: test-windows:
runs-on: windows-2022 runs-on: windows-2022
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-windows - build-windows
env: env:

View File

@@ -67,6 +67,7 @@ jobs:
prepare-cross: prepare-cross:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
outputs: outputs:
@@ -89,6 +90,7 @@ jobs:
cross: cross:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
- prepare-cross - prepare-cross
@@ -128,6 +130,7 @@ jobs:
govulncheck: govulncheck:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 120 # guardrails timeout for the whole job timeout-minutes: 120 # guardrails timeout for the whole job
# Always run security checks, even with 'ci/validate-only' label
permissions: permissions:
# required to write sarif report # required to write sarif report
security-events: write security-events: write
@@ -157,6 +160,7 @@ jobs:
build-dind: build-dind:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
steps: steps:

View File

@@ -69,6 +69,7 @@ jobs:
*.output=type=cacheonly *.output=type=cacheonly
test: test:
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-dev - build-dev
- validate-dco - validate-dco
@@ -84,6 +85,7 @@ jobs:
storage: ${{ matrix.storage }} storage: ${{ matrix.storage }}
test-unit: test-unit:
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- build-dev - build-dev
- validate-dco - validate-dco
@@ -153,6 +155,7 @@ jobs:
smoke-prepare: smoke-prepare:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 10 # guardrails timeout for the whole job timeout-minutes: 10 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- validate-dco - validate-dco
outputs: outputs:
@@ -175,6 +178,7 @@ jobs:
smoke: smoke:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 20 # guardrails timeout for the whole job timeout-minutes: 20 # guardrails timeout for the whole job
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
needs: needs:
- smoke-prepare - smoke-prepare
strategy: strategy:

View File

@@ -23,6 +23,7 @@ jobs:
uses: ./.github/workflows/.dco.yml uses: ./.github/workflows/.dco.yml
run: run:
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
uses: ./.github/workflows/.windows.yml uses: ./.github/workflows/.windows.yml
secrets: inherit secrets: inherit
strategy: strategy:

View File

@@ -27,6 +27,7 @@ jobs:
uses: ./.github/workflows/.dco.yml uses: ./.github/workflows/.dco.yml
run: run:
if: ${{ github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'ci/validate-only') }}
uses: ./.github/workflows/.windows.yml uses: ./.github/workflows/.windows.yml
secrets: inherit secrets: inherit
strategy: strategy: