You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
Docker Buildx Bake
v4.1.0
GitHub Action to use Docker Buildx Bake as a high-level build command.
name: ci
on:
push:
branches:
- 'master'
jobs:
bake:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/bake-action@v4
with:
push: true
This subaction generates a list of Bake targets that can be used in a GitHub matrix, so you can distribute your builds across multiple runners.
# docker-bake.hcl
group "validate" {
targets = ["lint", "doctoc"]
}
target "lint" {
target = "lint"
}
target "doctoc" {
target = "doctoc"
}
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@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 }}
Following inputs can be used as step.with
keys
List
type is a newline-delimited stringset: target.args.mybuildarg=valueset: | target.args.mybuildarg=value foo*.args.mybuildarg=value
CSV
type is a comma-delimited stringtargets: default,release
Name | Type | Description |
---|---|---|
builder |
String | Builder instance (see setup-buildx action) |
files |
List/CSV | List of bake definition files |
workdir |
String | Working directory of execution |
targets |
List/CSV | List of bake targets (default target used if empty) |
no-cache |
Bool | Do not use cache when building the image (default false ) |
pull |
Bool | Always attempt to pull a newer version of the image (default false ) |
load |
Bool | Load is a shorthand for --set=*.output=type=docker (default false ) |
provenance |
Bool/String | Provenance is a shorthand for --set=*.attest=type=provenance |
push |
Bool | Push is a shorthand for --set=*.output=type=registry (default false ) |
sbom |
Bool/String | SBOM is a shorthand for --set=*.attest=type=sbom |
set |
List | List of targets values to override (eg: targetpattern.key=value ) |
source |
String | Remote bake definition to build from |
The following outputs are available
Name | Type | Description |
---|---|---|
metadata |
JSON | Build result metadata |
Want to contribute? Awesome! You can find information about contributing to this project in the CONTRIBUTING.md