From 7540d5c95ef59b853a36524176e4f64d6a125ee9 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 19 Dec 2025 10:36:21 +0100 Subject: [PATCH] remove list-targets subaction Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- .github/subaction-list-targets.png | Bin 8273 -> 0 bytes .github/workflows/ci-subaction.yml | 50 ----------------- .github/workflows/validate.yml | 6 +- subaction/list-targets/README.md | 86 ----------------------------- subaction/list-targets/action.yml | 72 ------------------------ 5 files changed, 3 insertions(+), 211 deletions(-) delete mode 100644 .github/subaction-list-targets.png delete mode 100644 subaction/list-targets/README.md delete mode 100644 subaction/list-targets/action.yml diff --git a/.github/subaction-list-targets.png b/.github/subaction-list-targets.png deleted file mode 100644 index f6e82db39899c647f8a83f1cb15681d5df730b1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8273 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 diff --git a/.github/workflows/ci-subaction.yml b/.github/workflows/ci-subaction.yml index a5ba5ac..eb35a18 100644 --- a/.github/workflows/ci-subaction.yml +++ b/.github/workflows/ci-subaction.yml @@ -25,56 +25,6 @@ on: - 'test/**' jobs: - list-targets: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - - testdir: group - expected: > - ["t1","t2"] - - - testdir: group-matrix - target: validate - expected: > - ["lint-default","lint-labs","lint-nydus","lint-proto","lint-yaml","validate-doctoc","validate-vendor"] - - - testdir: multi-files - files: | - docker-bake.json - docker-bake.hcl - expected: > - ["v1-tag","v2-tag"] - steps: - - - name: Checkout - uses: actions/checkout@v6 - - - name: Matrix gen - id: gen - uses: ./subaction/list-targets - with: - workdir: ./test/${{ matrix.testdir }} - files: ${{ matrix.files }} - target: ${{ matrix.target }} - - - name: Check output - uses: actions/github-script@v8 - env: - INPUT_TARGETS: ${{ steps.gen.outputs.targets }} - INPUT_EXPECTED: ${{ matrix.expected }} - with: - script: | - const targets = JSON.stringify(JSON.parse(core.getInput('targets'))); - const expected = JSON.stringify(JSON.parse(core.getInput('expected'))); - if (targets !== expected) { - throw new Error(`Targets do not match expected values: ${targets} != ${expected}`); - } else { - core.info(`✅`); - } - matrix: runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 7120ffd..01a54f0 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -15,7 +15,7 @@ jobs: prepare: runs-on: ubuntu-latest outputs: - targets: ${{ steps.generate.outputs.targets }} + matrix: ${{ steps.generate.outputs.matrix }} steps: - name: Checkout @@ -23,7 +23,7 @@ jobs: - name: List targets id: generate - uses: ./subaction/list-targets + uses: ./subaction/matrix with: target: validate @@ -34,7 +34,7 @@ jobs: strategy: fail-fast: false matrix: - target: ${{ fromJson(needs.prepare.outputs.targets) }} + include: ${{ fromJson(needs.prepare.outputs.matrix) }} steps: - name: Validate diff --git a/subaction/list-targets/README.md b/subaction/list-targets/README.md deleted file mode 100644 index 7b42f22..0000000 --- a/subaction/list-targets/README.md +++ /dev/null @@ -1,86 +0,0 @@ -> [!WARNING] -> `docker/bake-action/subaction/list-targets` is deprecated and will be removed -> in a future release. Please use [`docker/bake-action/subaction/matrix`](../matrix) -> instead. - -## About - -This subaction generates a list of Bake targets that can be used in a [GitHub matrix](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix), -so you can distribute your builds across multiple runners. - -![Screenshot](../../.github/subaction-list-targets.png) - -___ - -* [Usage](#usage) -* [Customizing](#customizing) - * [inputs](#inputs) - * [outputs](#outputs) - -## Usage - -```hcl -# docker-bake.hcl -group "validate" { - targets = ["lint", "doctoc"] -} - -target "lint" { - target = "lint" -} - -target "doctoc" { - target = "doctoc" -} -``` - -```yaml -jobs: - prepare: - runs-on: ubuntu-latest - outputs: - targets: ${{ steps.generate.outputs.targets }} - steps: - - - name: Checkout - uses: actions/checkout@v4 - - - name: List targets - id: generate - uses: docker/bake-action/subaction/list-targets@v6 - with: - target: validate - - validate: - runs-on: ubuntu-latest - needs: - - prepare - strategy: - fail-fast: false - matrix: - target: ${{ fromJson(needs.prepare.outputs.targets) }} - steps: - - - name: Validate - uses: docker/bake-action@v6 - with: - targets: ${{ matrix.target }} -``` - -## Customizing - -### inputs - -| Name | Type | Description | -|--------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------| -| `workdir` | String | Working directory to use (defaults to `.`) | -| `files` | List/CSV | List of [bake definition files](https://docs.docker.com/build/customize/bake/file-definition/) | -| `target` | String | The target to use within the bake file | - -### outputs - -The following outputs are available - -| Name | Type | Description | -|------------|----------|---------------------------| -| `targets` | List/CSV | List of extracted targets | diff --git a/subaction/list-targets/action.yml b/subaction/list-targets/action.yml deleted file mode 100644 index e4ef2d3..0000000 --- a/subaction/list-targets/action.yml +++ /dev/null @@ -1,72 +0,0 @@ -# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions -name: 'List Bake targets' -description: 'Generate a list of Bake targets to help distributing builds in your workflow' - -inputs: - workdir: - description: Working directory - default: '.' - required: false - files: - description: Comma separated list of Bake files - required: false - target: - description: Bake target - required: false - -outputs: - targets: - description: List of targets - value: ${{ steps.generate.outputs.targets }} - -runs: - using: composite - steps: - - - name: Generate - id: generate - uses: actions/github-script@v7 - env: - INPUT_WORKDIR: ${{ inputs.workdir }} - INPUT_FILES: ${{ inputs.files }} - INPUT_TARGET: ${{ inputs.target }} - with: - script: | - core.warning(`docker/bake-action/subaction/list-targets is deprecated and will be removed in a future release. Please use docker/bake-action/subaction/matrix instead.`); - - function getInputList(name) { - return core.getInput(name) ? core.getInput(name).split(/[\r?\n,]+/).filter(x => x !== '') : []; - } - - const workdir = core.getInput('workdir'); - const files = getInputList('files'); - const target = core.getInput('target'); - - let def = {}; - await core.group(`Validating definition`, async () => { - let args = ['buildx', 'bake']; - for (const file of files) { - args.push('--file', file); - } - if (target) { - args.push(target); - } - args.push('--print'); - - const res = await exec.getExecOutput('docker', args, { - ignoreReturnCode: true, - silent: true, - cwd: workdir - }); - if (res.stderr.length > 0 && res.exitCode != 0) { - throw new Error(res.stderr); - } - def = JSON.parse(res.stdout.trim()); - core.info(JSON.stringify(def, null, 2)); - }); - - await core.group(`Set output`, async () => { - const targets = Object.keys(def.target); - core.info(`targets: ${JSON.stringify(targets)}`); - core.setOutput('targets', JSON.stringify(targets)); - });