Refactor CI workflows (#37487)

1. only trigger docker-dryrun arm64&riscv64 when dockerfile changes
2. de-duplicate "contents: read" permission for most workflows
3. merge various "lint-*" jobs into one job
4. add missing lint targets to the "lint" (all) target
This commit is contained in:
wxiaoguang
2026-05-01 02:15:01 +08:00
committed by GitHub
parent 81692ceafa
commit 1721c235a7
10 changed files with 103 additions and 197 deletions

View File

@@ -13,27 +13,35 @@ permissions:
jobs:
files-changed:
uses: ./.github/workflows/files-changed.yml
permissions:
contents: read
# dryrun build is slow, so run them in parallel per-platform
# QEMU-based build is slow (40-50 minutes), so run arm64 and riscv64 when dockerfile changes.
# Run amd64 when any docker-related files change, which is fast (4 minutes).
container-amd64:
if: needs.files-changed.outputs.docker == 'true'
needs: [files-changed]
uses: ./.github/workflows/part-docker-dryrun.yml
with:
platform: linux/amd64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/docker-dryrun
with:
platform: linux/amd64
container-arm64:
if: needs.files-changed.outputs.docker == 'true'
if: needs.files-changed.outputs.dockerfile == 'true'
needs: [files-changed]
uses: ./.github/workflows/part-docker-dryrun.yml
with:
platform: linux/arm64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/docker-dryrun
with:
platform: linux/arm64
container-riscv64:
if: needs.files-changed.outputs.docker == 'true'
if: needs.files-changed.outputs.dockerfile == 'true'
needs: [files-changed]
uses: ./.github/workflows/part-docker-dryrun.yml
with:
platform: linux/riscv64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/docker-dryrun
with:
platform: linux/riscv64