list-targets subaction

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2023-11-09 11:07:49 +01:00
committed by CrazyMax
parent 063b84c928
commit 76ed7c5809
7 changed files with 231 additions and 0 deletions

View File

@@ -14,6 +14,8 @@ as a high-level build command.
___
* [Usage](#usage)
* [Subactions](#subactions)
* [`list-targets`](#list-targets)
* [Customizing](#customizing)
* [inputs](#inputs)
* [outputs](#outputs)
@@ -52,6 +54,64 @@ jobs:
push: true
```
## Subactions
### `list-targets`
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.
```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.matrix.outputs.targets }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Matrix
id: matrix
uses: docker/bake-action/subaction/list-targets@v4
with:
target: validate
validate:
runs-on: ubuntu-latest
needs:
- prepare
strategy:
fail-fast: false
matrix:
target: ${{ fromJson(needs.prepare.outputs.targets) }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Validate
uses: docker/bake-action@v4
with:
targets: ${{ matrix.target }}
```
## Customizing
### inputs