mirror of
https://github.com/docker/bake-action.git
synced 2026-06-05 17:48:40 +02:00
Compare commits
78 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7bff531c65 | |||
| 4eb699fd94 | |||
| 3310620efe | |||
| 60f5d53310 | |||
| cb84b96ea2 | |||
| 63a0b90c7c | |||
| 5dd4f8e2d6 | |||
| 8342e4814b | |||
| 4e1bb14d4e | |||
| 5a1b7c9786 | |||
| a23a0ceb07 | |||
| 932b78563b | |||
| ded8f8f101 | |||
| d0cc8f345a | |||
| 8afe15ffcc | |||
| 77f4fc97b7 | |||
| bf35764d1d | |||
| 309da7d154 | |||
| 23cff4f49a | |||
| 5ca506d06f | |||
| da6b67e5ed | |||
| 23b87ebfd8 | |||
| f26d1f2c48 | |||
| 3ba2682456 | |||
| d2bf1df12d | |||
| 1677316f88 | |||
| 3fc70e1131 | |||
| f4c177e5d8 | |||
| fb23aa081d | |||
| 4434628f52 | |||
| 289179a60f | |||
| 52e5f5611a | |||
| 95dd0c6749 | |||
| ef35aaaf8b | |||
| a6f037366a | |||
| b6652aadd5 | |||
| fa9f3f5ac7 | |||
| 4c0e3cda9d | |||
| 3883a2154a | |||
| b8df42cc60 | |||
| 9bc07af8a8 | |||
| aeaa6df54c | |||
| 63fc7d13b7 | |||
| fd17cd07cd | |||
| d2a866bfbd | |||
| 1417204e8d | |||
| ef43224233 | |||
| d38ec1b2d6 | |||
| 782be980da | |||
| 51e939be13 | |||
| d5f33222b6 | |||
| 2e3d19baed | |||
| 22815eb8f2 | |||
| c24ab5d426 | |||
| 64673bcfac | |||
| f05b0ee234 | |||
| 6161d12436 | |||
| e626c7390c | |||
| 7e8997e58f | |||
| 9a9d8805d1 | |||
| cdf7e1c5cb | |||
| 01036657a2 | |||
| 76cc8060bd | |||
| 4cfe868c6e | |||
| fa256f8a0c | |||
| 8cea75c238 | |||
| a7cc98928a | |||
| 1b8b2f2b02 | |||
| 955c005d87 | |||
| 4c694667c2 | |||
| bc6f04190c | |||
| 5c57af45fc | |||
| 28c6eb5bfc | |||
| d52034e958 | |||
| 108b34f686 | |||
| af918ef258 | |||
| 1fe547e208 | |||
| 3e6a9c6a82 |
@@ -38,9 +38,15 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
workdir: ./test/group
|
workdir: ./test/group
|
||||||
-
|
-
|
||||||
name: Show matrix
|
name: Check targets
|
||||||
run: |
|
uses: actions/github-script@v7
|
||||||
echo matrix=${{ steps.gen.outputs.matrix }}
|
with:
|
||||||
|
script: |
|
||||||
|
const targets = `${{ steps.gen.outputs.targets }}`;
|
||||||
|
if (!targets) {
|
||||||
|
core.setFailed('No targets generated');
|
||||||
|
}
|
||||||
|
core.info(`targets=${targets}`);
|
||||||
|
|
||||||
list-targets-group-matrix:
|
list-targets-group-matrix:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -56,6 +62,38 @@ jobs:
|
|||||||
workdir: ./test/group-matrix
|
workdir: ./test/group-matrix
|
||||||
target: validate
|
target: validate
|
||||||
-
|
-
|
||||||
name: Show matrix
|
name: Check targets
|
||||||
run: |
|
uses: actions/github-script@v7
|
||||||
echo matrix=${{ steps.gen.outputs.matrix }}
|
with:
|
||||||
|
script: |
|
||||||
|
const targets = `${{ steps.gen.outputs.targets }}`;
|
||||||
|
if (!targets) {
|
||||||
|
core.setFailed('No targets generated');
|
||||||
|
}
|
||||||
|
core.info(`targets=${targets}`);
|
||||||
|
|
||||||
|
list-targets-multi-files:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Matrix gen
|
||||||
|
id: gen
|
||||||
|
uses: ./subaction/list-targets
|
||||||
|
with:
|
||||||
|
workdir: ./test/multi-files
|
||||||
|
files: |
|
||||||
|
docker-bake.json
|
||||||
|
docker-bake.hcl
|
||||||
|
-
|
||||||
|
name: Check targets
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const targets = `${{ steps.gen.outputs.targets }}`;
|
||||||
|
if (!targets) {
|
||||||
|
core.setFailed('No targets generated');
|
||||||
|
}
|
||||||
|
core.info(`targets=${targets}`);
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ jobs:
|
|||||||
name: Build and push
|
name: Build and push
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
builder: ${{ steps.buildx.outputs.name }}
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
@@ -87,6 +88,7 @@ jobs:
|
|||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
set: |
|
set: |
|
||||||
@@ -108,6 +110,7 @@ jobs:
|
|||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
-
|
-
|
||||||
@@ -144,10 +147,11 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
|
|
||||||
source:
|
remote:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
@@ -188,6 +192,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/go
|
workdir: ./test/go
|
||||||
|
source: .
|
||||||
targets: binary
|
targets: binary
|
||||||
provenance: ${{ matrix.attrs }}
|
provenance: ${{ matrix.attrs }}
|
||||||
set: |
|
set: |
|
||||||
@@ -229,6 +234,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/go
|
workdir: ./test/go
|
||||||
|
source: .
|
||||||
targets: ${{ matrix.target }}
|
targets: ${{ matrix.target }}
|
||||||
sbom: true
|
sbom: true
|
||||||
set: |
|
set: |
|
||||||
@@ -275,6 +281,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/go
|
workdir: ./test/go
|
||||||
|
source: .
|
||||||
set: |
|
set: |
|
||||||
*.platform=linux/amd64
|
*.platform=linux/amd64
|
||||||
*.output=type=image,"name=localhost:5000/name/app:v1.0.0,localhost:5000/name/app:latest",push=true
|
*.output=type=image,"name=localhost:5000/name/app:v1.0.0,localhost:5000/name/app:latest",push=true
|
||||||
@@ -304,6 +311,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/group
|
workdir: ./test/group
|
||||||
|
source: .
|
||||||
push: true
|
push: true
|
||||||
set: |
|
set: |
|
||||||
t1.tags=localhost:5000/name/app:t1
|
t1.tags=localhost:5000/name/app:t1
|
||||||
@@ -324,6 +332,7 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
|
|
||||||
@@ -361,6 +370,7 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
targets: app-proxy
|
targets: app-proxy
|
||||||
@@ -396,6 +406,7 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
|
|
||||||
@@ -415,8 +426,6 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
|
||||||
source: "{{defaultContext}}"
|
|
||||||
|
|
||||||
git-context-and-local:
|
git-context-and-local:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -439,7 +448,6 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
source: "{{defaultContext}}"
|
|
||||||
files: |
|
files: |
|
||||||
cwd://${{ steps.meta.outputs.bake-file }}
|
cwd://${{ steps.meta.outputs.bake-file }}
|
||||||
|
|
||||||
@@ -466,6 +474,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/go
|
workdir: ./test/go
|
||||||
|
source: .
|
||||||
set: |
|
set: |
|
||||||
*.output=type=image,name=localhost:5000/name/app:latest,push=true
|
*.output=type=image,name=localhost:5000/name/app:latest,push=true
|
||||||
*.output=type=docker,name=app:local
|
*.output=type=docker,name=app:local
|
||||||
@@ -509,6 +518,7 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
workdir: ./test/go
|
workdir: ./test/go
|
||||||
|
source: .
|
||||||
targets: image
|
targets: image
|
||||||
load: true
|
load: true
|
||||||
push: true
|
push: true
|
||||||
@@ -563,6 +573,7 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
source: .
|
||||||
files: |
|
files: |
|
||||||
./test/config.hcl
|
./test/config.hcl
|
||||||
targets: app
|
targets: app
|
||||||
@@ -641,3 +652,84 @@ jobs:
|
|||||||
targets: app
|
targets: app
|
||||||
env:
|
env:
|
||||||
DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }}
|
DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }}
|
||||||
|
|
||||||
|
checks:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
buildx-version:
|
||||||
|
- latest
|
||||||
|
- v0.14.1
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ matrix.buildx-version }}
|
||||||
|
driver-opts: |
|
||||||
|
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
|
||||||
|
-
|
||||||
|
name: Build
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
workdir: ./test
|
||||||
|
source: .
|
||||||
|
files: |
|
||||||
|
./lint.hcl
|
||||||
|
|
||||||
|
annotations-disabled:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
|
||||||
|
driver-opts: |
|
||||||
|
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
|
||||||
|
-
|
||||||
|
name: Build
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
workdir: ./test
|
||||||
|
source: .
|
||||||
|
files: |
|
||||||
|
./lint.hcl
|
||||||
|
env:
|
||||||
|
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
|
||||||
|
|
||||||
|
allow:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
buildx-version:
|
||||||
|
- v0.19.0-rc2
|
||||||
|
- v0.18.0
|
||||||
|
- v0.17.1
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ matrix.buildx-version }}
|
||||||
|
driver-opts: |
|
||||||
|
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
|
||||||
|
-
|
||||||
|
name: Build
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
./test/config.hcl
|
||||||
|
allow: network.host
|
||||||
|
targets: app-entitlements
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
name: publish
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- published
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
packages: write
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Publish
|
||||||
|
uses: actions/publish-immutable-action@v0.0.4
|
||||||
@@ -21,17 +21,14 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
-
|
-
|
||||||
name: Test
|
name: Test
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
targets: test
|
targets: test
|
||||||
-
|
-
|
||||||
name: Upload coverage
|
name: Upload coverage
|
||||||
uses: codecov/codecov-action@v4
|
uses: codecov/codecov-action@v5
|
||||||
with:
|
with:
|
||||||
file: ./coverage/clover.xml
|
files: ./coverage/clover.xml
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|||||||
@@ -36,11 +36,8 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
target: ${{ fromJson(needs.prepare.outputs.targets) }}
|
target: ${{ fromJson(needs.prepare.outputs.targets) }}
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
-
|
-
|
||||||
name: Validate
|
name: Validate
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
targets: ${{ matrix.target }}
|
targets: ${{ matrix.target }}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ as a high-level build command.
|
|||||||
___
|
___
|
||||||
|
|
||||||
* [Usage](#usage)
|
* [Usage](#usage)
|
||||||
* [Path context](#path-context)
|
|
||||||
* [Git context](#git-context)
|
* [Git context](#git-context)
|
||||||
|
* [Path context](#path-context)
|
||||||
* [Summaries](#summaries)
|
* [Summaries](#summaries)
|
||||||
* [Customizing](#customizing)
|
* [Customizing](#customizing)
|
||||||
* [inputs](#inputs)
|
* [inputs](#inputs)
|
||||||
@@ -27,84 +27,51 @@ ___
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Path context
|
|
||||||
|
|
||||||
By default, this action will use the local bake definition (`source: .`), so
|
|
||||||
you need to use the [`actions/checkout`](https://github.com/actions/checkout/)
|
|
||||||
action to check out the repository.
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
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@v5
|
|
||||||
with:
|
|
||||||
push: true
|
|
||||||
```
|
|
||||||
|
|
||||||
### Git context
|
### Git context
|
||||||
|
|
||||||
Git context can be provided using the [`source` input](#inputs). This means
|
Since `v6` this action uses the [Git context](https://docs.docker.com/build/bake/remote-definition/)
|
||||||
that you don't need to use the [`actions/checkout`](https://github.com/actions/checkout/)
|
to build from a remote bake definition by default like the [build-push-action](https://github.com/docker/build-push-action)
|
||||||
|
does. This means that you don't need to use the [`actions/checkout`](https://github.com/actions/checkout/)
|
||||||
action to check out the repository as [BuildKit](https://docs.docker.com/build/buildkit/)
|
action to check out the repository as [BuildKit](https://docs.docker.com/build/buildkit/)
|
||||||
will do this directly.
|
will do this directly.
|
||||||
|
|
||||||
|
The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)
|
||||||
|
and will result in the following context: `https://github.com/<owner>/<repo>.git#<ref>`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: ci
|
name: ci
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
|
||||||
- 'master'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bake:
|
bake:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
-
|
-
|
||||||
name: Build and push
|
name: Build and push
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
source: "${{ github.server_url }}/${{ github.repository }}.git#${{ github.ref }}"
|
|
||||||
push: true
|
push: true
|
||||||
|
set: |
|
||||||
|
*.tags=user/app:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Be careful because **any file mutation in the steps that precede the build step
|
Be careful because **any file mutation in the steps that precede the build step
|
||||||
will be ignored, including processing of the `.dockerignore` file** since
|
will be ignored, including processing of the `.dockerignore` file** since
|
||||||
the context is based on the Git reference. However, you can use the
|
the context is based on the Git reference. However, you can use the
|
||||||
[Path context](#path-context) alongside the [`actions/checkout`](https://github.com/actions/checkout/)
|
[Path context](#path-context) using the [`source` input](#inputs) alongside
|
||||||
action to remove this restriction.
|
the [`actions/checkout`](https://github.com/actions/checkout/) action to remove
|
||||||
|
this restriction.
|
||||||
|
|
||||||
Default Git context can also be provided using the [Handlebars template](https://handlebarsjs.com/guide/)
|
Default Git context can also be provided using the [Handlebars template](https://handlebarsjs.com/guide/)
|
||||||
expression `{{defaultContext}}`. Here we can use it to provide a subdirectory
|
expression `{{defaultContext}}`. Here we can use it to provide a subdirectory
|
||||||
@@ -113,10 +80,12 @@ to the default Git context:
|
|||||||
```yaml
|
```yaml
|
||||||
-
|
-
|
||||||
name: Build and push
|
name: Build and push
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
source: "{{defaultContext}}:mysubdir"
|
source: "{{defaultContext}}:mysubdir"
|
||||||
push: true
|
push: true
|
||||||
|
set: |
|
||||||
|
*.tags=user/app:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Building from the current repository automatically uses the `GITHUB_TOKEN`
|
Building from the current repository automatically uses the `GITHUB_TOKEN`
|
||||||
@@ -131,14 +100,49 @@ another private repository for remote definitions, you can set the
|
|||||||
```yaml
|
```yaml
|
||||||
-
|
-
|
||||||
name: Build and push
|
name: Build and push
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
source: "${{ github.server_url }}/${{ github.repository }}.git#${{ github.ref }}"
|
|
||||||
push: true
|
push: true
|
||||||
|
set: |
|
||||||
|
*.tags=user/app:latest
|
||||||
env:
|
env:
|
||||||
BUILDX_BAKE_GIT_AUTH_TOKEN: ${{ secrets.MYTOKEN }}
|
BUILDX_BAKE_GIT_AUTH_TOKEN: ${{ secrets.MYTOKEN }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Path context
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: ci
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
bake:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
-
|
||||||
|
name: Build and push
|
||||||
|
uses: docker/bake-action@v6
|
||||||
|
with:
|
||||||
|
source: .
|
||||||
|
push: true
|
||||||
|
set: |
|
||||||
|
*.tags=user/app:latest
|
||||||
|
```
|
||||||
|
|
||||||
## Summaries
|
## Summaries
|
||||||
|
|
||||||
This action generates a [job summary](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/)
|
This action generates a [job summary](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/)
|
||||||
@@ -184,6 +188,7 @@ The following inputs can be used as `step.with` keys
|
|||||||
|----------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|----------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) |
|
| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) |
|
||||||
| `source` | String | Context to build from. Can be either local (`.`) or a [remote bake definition](https://docs.docker.com/build/customize/bake/file-definition/#remote-definition) |
|
| `source` | String | Context to build from. Can be either local (`.`) or a [remote bake definition](https://docs.docker.com/build/customize/bake/file-definition/#remote-definition) |
|
||||||
|
| `allow` | List/CSV | Allow build to access specified resources (e.g., `network.host`) |
|
||||||
| `files` | List/CSV | List of [bake definition files](https://docs.docker.com/build/customize/bake/file-definition/) |
|
| `files` | List/CSV | List of [bake definition files](https://docs.docker.com/build/customize/bake/file-definition/) |
|
||||||
| `workdir` | String | Working directory of execution |
|
| `workdir` | String | Working directory of execution |
|
||||||
| `targets` | List/CSV | List of bake targets (`default` target used if empty) |
|
| `targets` | List/CSV | List of bake targets (`default` target used if empty) |
|
||||||
@@ -193,7 +198,7 @@ The following inputs can be used as `step.with` keys
|
|||||||
| `provenance` | Bool/String | [Provenance](https://docs.docker.com/build/attestations/slsa-provenance/) is a shorthand for `--set=*.attest=type=provenance` |
|
| `provenance` | Bool/String | [Provenance](https://docs.docker.com/build/attestations/slsa-provenance/) is a shorthand for `--set=*.attest=type=provenance` |
|
||||||
| `push` | Bool | Push is a shorthand for `--set=*.output=type=registry` (default `false`) |
|
| `push` | Bool | Push is a shorthand for `--set=*.output=type=registry` (default `false`) |
|
||||||
| `sbom` | Bool/String | [SBOM](https://docs.docker.com/build/attestations/sbom/) is a shorthand for `--set=*.attest=type=sbom` |
|
| `sbom` | Bool/String | [SBOM](https://docs.docker.com/build/attestations/sbom/) is a shorthand for `--set=*.attest=type=sbom` |
|
||||||
| `set` | List | List of [targets values to override](https://docs.docker.com/engine/reference/commandline/buildx_bake/#set) (eg: `targetpattern.key=value`) |
|
| `set` | List | List of [targets values to override](https://docs.docker.com/engine/reference/commandline/buildx_bake/#set) (e.g., `targetpattern.key=value`) |
|
||||||
| `github-token` | String | API token used to authenticate to a Git repository for [remote definitions](https://docs.docker.com/build/bake/remote-definition/) (default `${{ github.token }}`) |
|
| `github-token` | String | API token used to authenticate to a Git repository for [remote definitions](https://docs.docker.com/build/bake/remote-definition/) (default `${{ github.token }}`) |
|
||||||
|
|
||||||
### outputs
|
### outputs
|
||||||
@@ -208,6 +213,7 @@ The following outputs are available
|
|||||||
|
|
||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
|--------------------------------------|--------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|--------------------------------------|--------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| `DOCKER_BUILD_CHECKS_ANNOTATIONS` | Bool | `true` | If `false`, GitHub annotations are not generated for [build checks](https://docs.docker.com/build/checks/) |
|
||||||
| `DOCKER_BUILD_SUMMARY` | Bool | `true` | If `false`, [build summary](https://docs.docker.com/build/ci/github-actions/build-summary/) generation is disabled |
|
| `DOCKER_BUILD_SUMMARY` | Bool | `true` | If `false`, [build summary](https://docs.docker.com/build/ci/github-actions/build-summary/) generation is disabled |
|
||||||
| `DOCKER_BUILD_RECORD_UPLOAD` | Bool | `true` | If `false`, build record upload as [GitHub artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) is disabled |
|
| `DOCKER_BUILD_RECORD_UPLOAD` | Bool | `true` | If `false`, build record upload as [GitHub artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) is disabled |
|
||||||
| `DOCKER_BUILD_RECORD_RETENTION_DAYS` | Number | | Duration after which build record artifact will expire in days. Defaults to repository/org [retention settings](https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#artifact-and-log-retention-policy) if unset or `0` |
|
| `DOCKER_BUILD_RECORD_RETENTION_DAYS` | Number | | Duration after which build record artifact will expire in days. Defaults to repository/org [retention settings](https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#artifact-and-log-retention-policy) if unset or `0` |
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ describe('getArgs', () => {
|
|||||||
0,
|
0,
|
||||||
'0.4.1',
|
'0.4.1',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -150,6 +151,7 @@ describe('getArgs', () => {
|
|||||||
1,
|
1,
|
||||||
'0.8.2',
|
'0.8.2',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -164,6 +166,7 @@ describe('getArgs', () => {
|
|||||||
2,
|
2,
|
||||||
'0.8.2',
|
'0.8.2',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['targets', 'webapp\nvalidate'],
|
['targets', 'webapp\nvalidate'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
@@ -180,6 +183,7 @@ describe('getArgs', () => {
|
|||||||
3,
|
3,
|
||||||
'0.8.2',
|
'0.8.2',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['set', '*.cache-from=type=gha\n*.cache-to=type=gha'],
|
['set', '*.cache-from=type=gha\n*.cache-to=type=gha'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
@@ -197,6 +201,7 @@ describe('getArgs', () => {
|
|||||||
4,
|
4,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -212,6 +217,7 @@ describe('getArgs', () => {
|
|||||||
5,
|
5,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -228,6 +234,7 @@ describe('getArgs', () => {
|
|||||||
6,
|
6,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -244,6 +251,7 @@ describe('getArgs', () => {
|
|||||||
7,
|
7,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -260,6 +268,7 @@ describe('getArgs', () => {
|
|||||||
8,
|
8,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -276,6 +285,7 @@ describe('getArgs', () => {
|
|||||||
9,
|
9,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -296,6 +306,7 @@ describe('getArgs', () => {
|
|||||||
10,
|
10,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -315,7 +326,6 @@ describe('getArgs', () => {
|
|||||||
11,
|
11,
|
||||||
'0.10.0',
|
'0.10.0',
|
||||||
new Map<string, string>([
|
new Map<string, string>([
|
||||||
['source', '{{defaultContext}}'],
|
|
||||||
['load', 'false'],
|
['load', 'false'],
|
||||||
['no-cache', 'false'],
|
['no-cache', 'false'],
|
||||||
['push', 'false'],
|
['push', 'false'],
|
||||||
@@ -330,6 +340,43 @@ describe('getArgs', () => {
|
|||||||
'--provenance', `mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
|
'--provenance', `mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
12,
|
||||||
|
'0.17.0',
|
||||||
|
new Map<string, string>([
|
||||||
|
['source', '.'],
|
||||||
|
['allow', 'network.host'],
|
||||||
|
['load', 'false'],
|
||||||
|
['no-cache', 'false'],
|
||||||
|
['push', 'false'],
|
||||||
|
['pull', 'false'],
|
||||||
|
]),
|
||||||
|
[
|
||||||
|
'bake',
|
||||||
|
'--allow', 'network.host',
|
||||||
|
'--metadata-file', metadataJson,
|
||||||
|
"--provenance", `mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
13,
|
||||||
|
'0.15.0',
|
||||||
|
new Map<string, string>([
|
||||||
|
['source', '{{defaultContext}}:subdir'],
|
||||||
|
['load', 'false'],
|
||||||
|
['no-cache', 'false'],
|
||||||
|
['push', 'false'],
|
||||||
|
['pull', 'false'],
|
||||||
|
['files', './foo.hcl'],
|
||||||
|
]),
|
||||||
|
[
|
||||||
|
'bake',
|
||||||
|
'https://github.com/docker/build-push-action.git#refs/heads/master:subdir',
|
||||||
|
'--file', './foo.hcl',
|
||||||
|
'--metadata-file', metadataJson,
|
||||||
|
'--provenance', `mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
|
||||||
|
]
|
||||||
|
],
|
||||||
])(
|
])(
|
||||||
'[%d] given %p with %p as inputs, returns %p',
|
'[%d] given %p with %p as inputs, returns %p',
|
||||||
async (num: number, buildxVersion: string, inputs: Map<string, string>, expected: Array<string>) => {
|
async (num: number, buildxVersion: string, inputs: Map<string, string>, expected: Array<string>) => {
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ inputs:
|
|||||||
source:
|
source:
|
||||||
description: "Context to build from. Can be either local or a remote bake definition"
|
description: "Context to build from. Can be either local or a remote bake definition"
|
||||||
required: false
|
required: false
|
||||||
|
allow:
|
||||||
|
description: "Allow build to access specified resources (e.g., network.host)"
|
||||||
|
required: false
|
||||||
files:
|
files:
|
||||||
description: "List of bake definition files"
|
description: "List of bake definition files"
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
+15
-15
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,3 +1,9 @@
|
|||||||
|
target "_common" {
|
||||||
|
args = {
|
||||||
|
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group "default" {
|
group "default" {
|
||||||
targets = ["build"]
|
targets = ["build"]
|
||||||
}
|
}
|
||||||
@@ -11,42 +17,49 @@ group "validate" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
target "build" {
|
target "build" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "build-update"
|
target = "build-update"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "build-validate" {
|
target "build-validate" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "build-validate"
|
target = "build-validate"
|
||||||
output = ["type=cacheonly"]
|
output = ["type=cacheonly"]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "format" {
|
target "format" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "format-update"
|
target = "format-update"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "lint" {
|
target "lint" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "lint"
|
target = "lint"
|
||||||
output = ["type=cacheonly"]
|
output = ["type=cacheonly"]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "vendor" {
|
target "vendor" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "vendor-update"
|
target = "vendor-update"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "vendor-validate" {
|
target "vendor-validate" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "vendor-validate"
|
target = "vendor-validate"
|
||||||
output = ["type=cacheonly"]
|
output = ["type=cacheonly"]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "test" {
|
target "test" {
|
||||||
|
inherits = ["_common"]
|
||||||
dockerfile = "dev.Dockerfile"
|
dockerfile = "dev.Dockerfile"
|
||||||
target = "test-coverage"
|
target = "test-coverage"
|
||||||
output = ["./coverage"]
|
output = ["./coverage"]
|
||||||
|
|||||||
+2
-2
@@ -26,8 +26,8 @@
|
|||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"packageManager": "yarn@3.6.3",
|
"packageManager": "yarn@3.6.3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@docker/actions-toolkit": "^0.35.0",
|
"@docker/actions-toolkit": "^0.53.0",
|
||||||
"handlebars": "^4.7.8"
|
"handlebars": "^4.7.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {Util} from '@docker/actions-toolkit/lib/util';
|
|||||||
import {BakeDefinition} from '@docker/actions-toolkit/lib/types/buildx/bake';
|
import {BakeDefinition} from '@docker/actions-toolkit/lib/types/buildx/bake';
|
||||||
|
|
||||||
export interface Inputs {
|
export interface Inputs {
|
||||||
|
allow: string[];
|
||||||
builder: string;
|
builder: string;
|
||||||
files: string[];
|
files: string[];
|
||||||
workdir: string;
|
workdir: string;
|
||||||
@@ -28,6 +29,7 @@ export interface Inputs {
|
|||||||
|
|
||||||
export async function getInputs(): Promise<Inputs> {
|
export async function getInputs(): Promise<Inputs> {
|
||||||
return {
|
return {
|
||||||
|
allow: Util.getInputList('allow'),
|
||||||
builder: core.getInput('builder'),
|
builder: core.getInput('builder'),
|
||||||
files: Util.getInputList('files'),
|
files: Util.getInputList('files'),
|
||||||
workdir: core.getInput('workdir') || '.',
|
workdir: core.getInput('workdir') || '.',
|
||||||
@@ -80,6 +82,15 @@ async function getBakeArgs(inputs: Inputs, definition: BakeDefinition, toolkit:
|
|||||||
if (inputs.source) {
|
if (inputs.source) {
|
||||||
args.push(inputs.source);
|
args.push(inputs.source);
|
||||||
}
|
}
|
||||||
|
if (await toolkit.buildx.versionSatisfies('>=0.17.0')) {
|
||||||
|
if (await toolkit.buildx.versionSatisfies('>=0.18.0')) {
|
||||||
|
// allow filesystem entitlements by default
|
||||||
|
inputs.allow.push('fs=*');
|
||||||
|
}
|
||||||
|
await Util.asyncForEach(inputs.allow, async allow => {
|
||||||
|
args.push('--allow', allow);
|
||||||
|
});
|
||||||
|
}
|
||||||
await Util.asyncForEach(inputs.files, async file => {
|
await Util.asyncForEach(inputs.files, async file => {
|
||||||
args.push('--file', file);
|
args.push('--file', file);
|
||||||
});
|
});
|
||||||
@@ -136,6 +147,9 @@ function getSourceInput(name: string): string {
|
|||||||
let source = handlebars.compile(core.getInput(name))({
|
let source = handlebars.compile(core.getInput(name))({
|
||||||
defaultContext: Context.gitContext()
|
defaultContext: Context.gitContext()
|
||||||
});
|
});
|
||||||
|
if (!source) {
|
||||||
|
source = Context.gitContext();
|
||||||
|
}
|
||||||
if (source === '.') {
|
if (source === '.') {
|
||||||
source = '';
|
source = '';
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-7
@@ -95,6 +95,7 @@ actionsToolkit.run(
|
|||||||
await core.group(`Parsing raw definition`, async () => {
|
await core.group(`Parsing raw definition`, async () => {
|
||||||
definition = await toolkit.buildxBake.getDefinition(
|
definition = await toolkit.buildxBake.getDefinition(
|
||||||
{
|
{
|
||||||
|
allow: inputs.allow,
|
||||||
files: inputs.files,
|
files: inputs.files,
|
||||||
load: inputs.load,
|
load: inputs.load,
|
||||||
noCache: inputs['no-cache'],
|
noCache: inputs['no-cache'],
|
||||||
@@ -119,15 +120,21 @@ actionsToolkit.run(
|
|||||||
const args: string[] = await context.getArgs(inputs, definition, toolkit);
|
const args: string[] = await context.getArgs(inputs, definition, toolkit);
|
||||||
const buildCmd = await toolkit.buildx.getCommand(args);
|
const buildCmd = await toolkit.buildx.getCommand(args);
|
||||||
const buildEnv = Object.assign({}, process.env, {
|
const buildEnv = Object.assign({}, process.env, {
|
||||||
BUILDX_BAKE_GIT_AUTH_TOKEN: gitAuthToken
|
BUILDX_BAKE_GIT_AUTH_TOKEN: gitAuthToken,
|
||||||
|
BUILDX_METADATA_WARNINGS: 'true'
|
||||||
}) as {
|
}) as {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
await core.group(`Bake definition`, async () => {
|
await core.group(`Bake definition`, async () => {
|
||||||
await Exec.exec(buildCmd.command, [...buildCmd.args, '--print'], {
|
await Exec.getExecOutput(buildCmd.command, [...buildCmd.args, '--print'], {
|
||||||
cwd: inputs.workdir,
|
cwd: inputs.workdir,
|
||||||
env: buildEnv
|
env: buildEnv,
|
||||||
|
ignoreReturnCode: true
|
||||||
|
}).then(res => {
|
||||||
|
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||||
|
throw Error(res.stderr);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -164,17 +171,32 @@ actionsToolkit.run(
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (buildChecksAnnotationsEnabled()) {
|
||||||
|
const warnings = toolkit.buildxBake.resolveWarnings(metadata);
|
||||||
|
if (refs.length > 0 && warnings && warnings.length > 0) {
|
||||||
|
const annotations = await Buildx.convertWarningsToGitHubAnnotations(warnings, refs);
|
||||||
|
core.debug(`annotations: ${JSON.stringify(annotations, null, 2)}`);
|
||||||
|
if (annotations && annotations.length > 0) {
|
||||||
|
await core.group(`Generating GitHub annotations (${annotations.length} build checks found)`, async () => {
|
||||||
|
for (const annotation of annotations) {
|
||||||
|
core.warning(annotation.message, annotation);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await core.group(`Check build summary support`, async () => {
|
await core.group(`Check build summary support`, async () => {
|
||||||
if (!buildSummaryEnabled()) {
|
if (!buildSummaryEnabled()) {
|
||||||
core.info('Build summary disabled');
|
core.info('Build summary disabled');
|
||||||
} else if (GitHub.isGHES) {
|
} else if (GitHub.isGHES) {
|
||||||
core.warning('Build summary is not yet supported on GHES');
|
core.info('Build summary is not yet supported on GHES');
|
||||||
} else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) {
|
} else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) {
|
||||||
core.warning('Build summary requires Buildx >= 0.13.0');
|
core.info('Build summary requires Buildx >= 0.13.0');
|
||||||
} else if (builder && builder.driver === 'cloud') {
|
} else if (builder && builder.driver === 'cloud') {
|
||||||
core.warning('Build summary is not yet supported with Docker Build Cloud');
|
core.info('Build summary is not yet supported with Docker Build Cloud');
|
||||||
} else if (refs.length == 0) {
|
} else if (refs.length == 0) {
|
||||||
core.warning('Build summary requires at least one build reference');
|
core.info('Build summary requires at least one build reference');
|
||||||
} else {
|
} else {
|
||||||
core.info('Build summary supported!');
|
core.info('Build summary supported!');
|
||||||
stateHelper.setSummarySupported();
|
stateHelper.setSummarySupported();
|
||||||
@@ -255,6 +277,13 @@ async function buildRefs(toolkit: Toolkit, since: Date, builder?: string): Promi
|
|||||||
return refs;
|
return refs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildChecksAnnotationsEnabled(): boolean {
|
||||||
|
if (process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS) {
|
||||||
|
return Util.parseBool(process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
function buildSummaryEnabled(): boolean {
|
function buildSummaryEnabled(): boolean {
|
||||||
if (process.env.DOCKER_BUILD_NO_SUMMARY) {
|
if (process.env.DOCKER_BUILD_NO_SUMMARY) {
|
||||||
core.warning('DOCKER_BUILD_NO_SUMMARY is deprecated. Set DOCKER_BUILD_SUMMARY to false instead.');
|
core.warning('DOCKER_BUILD_NO_SUMMARY is deprecated. Set DOCKER_BUILD_SUMMARY to false instead.');
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: List targets
|
name: List targets
|
||||||
id: generate
|
id: generate
|
||||||
uses: docker/bake-action/subaction/list-targets@v4
|
uses: docker/bake-action/subaction/list-targets@v6
|
||||||
with:
|
with:
|
||||||
target: validate
|
target: validate
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
-
|
-
|
||||||
name: Validate
|
name: Validate
|
||||||
uses: docker/bake-action@v5
|
uses: docker/bake-action@v6
|
||||||
with:
|
with:
|
||||||
targets: ${{ matrix.target }}
|
targets: ${{ matrix.target }}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ runs:
|
|||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
let def;
|
let def;
|
||||||
const files = `${{ inputs.files }}` ? `${{ inputs.files }}`.split(',') : [];
|
const files = `${{ inputs.files }}` ? `${{ inputs.files }}`.split(/[\r?\n,]+/).filter(Boolean) : [];
|
||||||
const target = `${{ inputs.target }}`;
|
const target = `${{ inputs.target }}`;
|
||||||
|
|
||||||
await core.group(`Validating definition`, async () => {
|
await core.group(`Validating definition`, async () => {
|
||||||
|
|||||||
@@ -42,3 +42,8 @@ target "app-proxy" {
|
|||||||
inherits = ["app"]
|
inherits = ["app"]
|
||||||
dockerfile = "proxy.Dockerfile"
|
dockerfile = "proxy.Dockerfile"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
target "app-entitlements" {
|
||||||
|
inherits = ["app"]
|
||||||
|
entitlements = ["network.host"]
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
frOM busybox as base
|
||||||
|
cOpy lint-other.Dockerfile .
|
||||||
|
|
||||||
|
froM busybox aS notused
|
||||||
|
COPY lint-other.Dockerfile .
|
||||||
|
|
||||||
|
from scratch
|
||||||
|
COPy --from=base \
|
||||||
|
/lint-other.Dockerfile \
|
||||||
|
/
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
frOM busybox as base
|
||||||
|
cOpy lint.Dockerfile .
|
||||||
|
|
||||||
|
from scratch
|
||||||
|
MAINTAINER moby@example.com
|
||||||
|
COPy --from=base \
|
||||||
|
/lint.Dockerfile \
|
||||||
|
/
|
||||||
|
|
||||||
|
CMD [ "echo", "Hello, Norway!" ]
|
||||||
|
CMD [ "echo", "Hello, Sweden!" ]
|
||||||
|
ENTRYPOINT my-program start
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
group "default" {
|
||||||
|
targets = ["lint", "lint-other", "lint-inline"]
|
||||||
|
}
|
||||||
|
target "lint" {
|
||||||
|
dockerfile = "lint.Dockerfile"
|
||||||
|
}
|
||||||
|
target "lint-other" {
|
||||||
|
dockerfile = "lint-other.Dockerfile"
|
||||||
|
}
|
||||||
|
target "lint-inline" {
|
||||||
|
dockerfile-inline = "FRoM alpine\nENTRYPOINT [\"echo\", \"hello\"]"
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
group "default" {
|
||||||
|
targets = ["t3"]
|
||||||
|
}
|
||||||
|
|
||||||
|
target "t3" {
|
||||||
|
name = "${item.tag}"
|
||||||
|
matrix = {
|
||||||
|
item = t3
|
||||||
|
}
|
||||||
|
args = {
|
||||||
|
VERSION = "${item.version}"
|
||||||
|
DUMMY_ARG = "${item.arg}"
|
||||||
|
}
|
||||||
|
tags = ["${item.tag}"]
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"t3": [
|
||||||
|
{
|
||||||
|
"version": "v1",
|
||||||
|
"arg": "v1-value",
|
||||||
|
"tag": "v1-tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "v2",
|
||||||
|
"arg": "v2-value",
|
||||||
|
"tag": "v2-tag"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -12,9 +12,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@actions/artifact@npm:^2.1.8":
|
"@actions/artifact@npm:^2.2.1":
|
||||||
version: 2.1.8
|
version: 2.2.1
|
||||||
resolution: "@actions/artifact@npm:2.1.8"
|
resolution: "@actions/artifact@npm:2.2.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core": ^1.10.0
|
"@actions/core": ^1.10.0
|
||||||
"@actions/github": ^5.1.1
|
"@actions/github": ^5.1.1
|
||||||
@@ -26,19 +26,18 @@ __metadata:
|
|||||||
"@octokit/request-error": ^5.0.0
|
"@octokit/request-error": ^5.0.0
|
||||||
"@protobuf-ts/plugin": ^2.2.3-alpha.1
|
"@protobuf-ts/plugin": ^2.2.3-alpha.1
|
||||||
archiver: ^7.0.1
|
archiver: ^7.0.1
|
||||||
crypto: ^1.0.1
|
|
||||||
jwt-decode: ^3.1.2
|
jwt-decode: ^3.1.2
|
||||||
twirp-ts: ^2.5.0
|
twirp-ts: ^2.5.0
|
||||||
unzip-stream: ^0.3.1
|
unzip-stream: ^0.3.1
|
||||||
checksum: 51a47c21bcdac705abb61dbaef923f2760354c39bcad44a31b129e18bf31f646e5148f92ee7e1198275d1dba7bebfd1d1500ad7f62f6de1e65b57b2d092d5341
|
checksum: 6ce4e62d941f17743c845637cdd832ca34c77efe0c31cf7f6ab3ad0531e54e62d4379198e8af5e84463b5f5ae0bc0ea11d41cc77c5fae7e511c7ef01742892ea
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@actions/cache@npm:^3.2.4":
|
"@actions/cache@npm:^4.0.0":
|
||||||
version: 3.2.4
|
version: 4.0.0
|
||||||
resolution: "@actions/cache@npm:3.2.4"
|
resolution: "@actions/cache@npm:4.0.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core": ^1.10.0
|
"@actions/core": ^1.11.1
|
||||||
"@actions/exec": ^1.0.1
|
"@actions/exec": ^1.0.1
|
||||||
"@actions/glob": ^0.1.0
|
"@actions/glob": ^0.1.0
|
||||||
"@actions/http-client": ^2.1.1
|
"@actions/http-client": ^2.1.1
|
||||||
@@ -46,13 +45,14 @@ __metadata:
|
|||||||
"@azure/abort-controller": ^1.1.0
|
"@azure/abort-controller": ^1.1.0
|
||||||
"@azure/ms-rest-js": ^2.6.0
|
"@azure/ms-rest-js": ^2.6.0
|
||||||
"@azure/storage-blob": ^12.13.0
|
"@azure/storage-blob": ^12.13.0
|
||||||
|
"@protobuf-ts/plugin": ^2.9.4
|
||||||
semver: ^6.3.1
|
semver: ^6.3.1
|
||||||
uuid: ^3.3.3
|
twirp-ts: ^2.5.0
|
||||||
checksum: 5bf5f7541bea4906b553440a9ffee5699e11dfb729365c6cb0bbd37e147a1a0993369fdad16bfa3e2b01ec7fa57dac66276278bfd4a389009246a75ea953e61d
|
checksum: 8ab819a67b578a5ce6de984f4ef8420066f8270e1f9db053700f4a8f084d0bbe4f911114f7088a95a987372ea63078550355d99849412152dd0efdf688bf9144
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.10.1, @actions/core@npm:^1.2.6":
|
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.2.6":
|
||||||
version: 1.10.1
|
version: 1.10.1
|
||||||
resolution: "@actions/core@npm:1.10.1"
|
resolution: "@actions/core@npm:1.10.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -62,6 +62,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@actions/core@npm:^1.11.1":
|
||||||
|
version: 1.11.1
|
||||||
|
resolution: "@actions/core@npm:1.11.1"
|
||||||
|
dependencies:
|
||||||
|
"@actions/exec": ^1.1.1
|
||||||
|
"@actions/http-client": ^2.0.1
|
||||||
|
checksum: 9ac7a3e0b478bfefd862dcb4ddaa1d8c3f9076bb1931d3d280918d1749e7783480c6a009c1b009c8bf5093e2d77d9f4e023d70416145bf246f0071736d4ef839
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@actions/exec@npm:^1.0.0, @actions/exec@npm:^1.0.1, @actions/exec@npm:^1.1.1":
|
"@actions/exec@npm:^1.0.0, @actions/exec@npm:^1.0.1, @actions/exec@npm:^1.1.1":
|
||||||
version: 1.1.1
|
version: 1.1.1
|
||||||
resolution: "@actions/exec@npm:1.1.1"
|
resolution: "@actions/exec@npm:1.1.1"
|
||||||
@@ -105,7 +115,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@actions/http-client@npm:^2.0.1, @actions/http-client@npm:^2.1.0, @actions/http-client@npm:^2.1.1, @actions/http-client@npm:^2.2.0, @actions/http-client@npm:^2.2.1":
|
"@actions/http-client@npm:^2.0.1, @actions/http-client@npm:^2.1.0, @actions/http-client@npm:^2.1.1, @actions/http-client@npm:^2.2.0":
|
||||||
version: 2.2.1
|
version: 2.2.1
|
||||||
resolution: "@actions/http-client@npm:2.2.1"
|
resolution: "@actions/http-client@npm:2.2.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -115,6 +125,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@actions/http-client@npm:^2.2.3":
|
||||||
|
version: 2.2.3
|
||||||
|
resolution: "@actions/http-client@npm:2.2.3"
|
||||||
|
dependencies:
|
||||||
|
tunnel: ^0.0.6
|
||||||
|
undici: ^5.25.4
|
||||||
|
checksum: 5d395df575d30ae599efa10dd715e72944b015e753db61f0a823f737acbb0e99743d4a9f25e812b18ec8cc34f86c73565d075c449e01ffa891577b6595212dde
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@actions/io@npm:^1.0.1, @actions/io@npm:^1.1.1, @actions/io@npm:^1.1.3":
|
"@actions/io@npm:^1.0.1, @actions/io@npm:^1.1.1, @actions/io@npm:^1.1.3":
|
||||||
version: 1.1.3
|
version: 1.1.3
|
||||||
resolution: "@actions/io@npm:1.1.3"
|
resolution: "@actions/io@npm:1.1.3"
|
||||||
@@ -122,17 +142,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@actions/tool-cache@npm:^2.0.1":
|
"@actions/tool-cache@npm:^2.0.2":
|
||||||
version: 2.0.1
|
version: 2.0.2
|
||||||
resolution: "@actions/tool-cache@npm:2.0.1"
|
resolution: "@actions/tool-cache@npm:2.0.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core": ^1.2.6
|
"@actions/core": ^1.11.1
|
||||||
"@actions/exec": ^1.0.0
|
"@actions/exec": ^1.0.0
|
||||||
"@actions/http-client": ^2.0.1
|
"@actions/http-client": ^2.0.1
|
||||||
"@actions/io": ^1.1.1
|
"@actions/io": ^1.1.1
|
||||||
semver: ^6.1.0
|
semver: ^6.1.0
|
||||||
uuid: ^3.3.2
|
checksum: c2bab4297be752bdda9dd61f8159a201ad0d37d026134b960f1edcc9418a80387f44d1f24a070fe992c44dcfc28a152f70600e76669bb0578132789a6f37a596
|
||||||
checksum: 33f6393b9b163e4af2b9759e8d37cda4f018f10ddda3643355bb8a9f92d732e5bdff089cf8036b46d181e1ef2b3210b895b2f746fdf54487afe88f1d340aa9e1
|
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1048,23 +1067,23 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@docker/actions-toolkit@npm:^0.35.0":
|
"@docker/actions-toolkit@npm:^0.53.0":
|
||||||
version: 0.35.0
|
version: 0.53.0
|
||||||
resolution: "@docker/actions-toolkit@npm:0.35.0"
|
resolution: "@docker/actions-toolkit@npm:0.53.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/artifact": ^2.1.8
|
"@actions/artifact": ^2.2.1
|
||||||
"@actions/cache": ^3.2.4
|
"@actions/cache": ^4.0.0
|
||||||
"@actions/core": ^1.10.1
|
"@actions/core": ^1.11.1
|
||||||
"@actions/exec": ^1.1.1
|
"@actions/exec": ^1.1.1
|
||||||
"@actions/github": ^6.0.0
|
"@actions/github": ^6.0.0
|
||||||
"@actions/http-client": ^2.2.1
|
"@actions/http-client": ^2.2.3
|
||||||
"@actions/io": ^1.1.3
|
"@actions/io": ^1.1.3
|
||||||
"@actions/tool-cache": ^2.0.1
|
"@actions/tool-cache": ^2.0.2
|
||||||
"@azure/storage-blob": ^12.15.0
|
"@azure/storage-blob": ^12.15.0
|
||||||
"@octokit/core": ^5.1.0
|
"@octokit/core": ^5.1.0
|
||||||
"@octokit/plugin-rest-endpoint-methods": ^10.4.0
|
"@octokit/plugin-rest-endpoint-methods": ^10.4.0
|
||||||
async-retry: ^1.3.3
|
async-retry: ^1.3.3
|
||||||
csv-parse: ^5.5.6
|
csv-parse: ^5.6.0
|
||||||
gunzip-maybe: ^1.4.2
|
gunzip-maybe: ^1.4.2
|
||||||
handlebars: ^4.7.8
|
handlebars: ^4.7.8
|
||||||
he: ^1.2.0
|
he: ^1.2.0
|
||||||
@@ -1073,7 +1092,7 @@ __metadata:
|
|||||||
semver: ^7.6.3
|
semver: ^7.6.3
|
||||||
tar-stream: ^3.1.7
|
tar-stream: ^3.1.7
|
||||||
tmp: ^0.2.3
|
tmp: ^0.2.3
|
||||||
checksum: 27fa4a500e94beff376bc322cc1074c82b20f6ceb0104c43ed5efc613763c8b7ea37b231c32c4dfcb5f7ce8a14948eecc799aa363d60d11d848466d5718d63f0
|
checksum: 9b14d8e0d17cbf52a38e66e85c1d04f599a64633aaaac550f9dcbed51567f7cc2c36ad2c748884fecf3355f25dc05b783e500e621014f43348a776f5433de927
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1886,7 +1905,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1":
|
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1, @protobuf-ts/plugin@npm:^2.9.4":
|
||||||
version: 2.9.4
|
version: 2.9.4
|
||||||
resolution: "@protobuf-ts/plugin@npm:2.9.4"
|
resolution: "@protobuf-ts/plugin@npm:2.9.4"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3025,27 +3044,20 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
|
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
|
||||||
version: 7.0.3
|
version: 7.0.6
|
||||||
resolution: "cross-spawn@npm:7.0.3"
|
resolution: "cross-spawn@npm:7.0.6"
|
||||||
dependencies:
|
dependencies:
|
||||||
path-key: ^3.1.0
|
path-key: ^3.1.0
|
||||||
shebang-command: ^2.0.0
|
shebang-command: ^2.0.0
|
||||||
which: ^2.0.1
|
which: ^2.0.1
|
||||||
checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
|
checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"crypto@npm:^1.0.1":
|
"csv-parse@npm:^5.6.0":
|
||||||
version: 1.0.1
|
version: 5.6.0
|
||||||
resolution: "crypto@npm:1.0.1"
|
resolution: "csv-parse@npm:5.6.0"
|
||||||
checksum: 087fe3165bd94c333a49e6ed66a0193911f63eac38a24f379b3001a5fe260a59c413646e53a0f67875ba13902b2686d81dc703cb2c147a4ec727dcdc04e5645e
|
checksum: 173e176bdaf212bab37d0f6d39a06d039d24a1c0ee40b9f1023ebf8b36095934807deeb493c0fb58592b39b0682ccd0be5c9e8d2b137c08807e7031595ea7a51
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"csv-parse@npm:^5.5.6":
|
|
||||||
version: 5.5.6
|
|
||||||
resolution: "csv-parse@npm:5.5.6"
|
|
||||||
checksum: ee06f97f674487dc1d001b360de8ea510a41b9d971abf43bcf9c3be22c83a3634df0d3ebfbe52fd49d145077066be7ff9f25de3fc6b71aefb973099b04147a25
|
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -3147,8 +3159,8 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "docker-buildx-bake@workspace:."
|
resolution: "docker-buildx-bake@workspace:."
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core": ^1.10.1
|
"@actions/core": ^1.11.1
|
||||||
"@docker/actions-toolkit": ^0.35.0
|
"@docker/actions-toolkit": ^0.53.0
|
||||||
"@types/node": ^20.12.12
|
"@types/node": ^20.12.12
|
||||||
"@typescript-eslint/eslint-plugin": ^7.9.0
|
"@typescript-eslint/eslint-plugin": ^7.9.0
|
||||||
"@typescript-eslint/parser": ^7.9.0
|
"@typescript-eslint/parser": ^7.9.0
|
||||||
@@ -5464,9 +5476,9 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"path-to-regexp@npm:^6.2.0":
|
"path-to-regexp@npm:^6.2.0":
|
||||||
version: 6.2.2
|
version: 6.3.0
|
||||||
resolution: "path-to-regexp@npm:6.2.2"
|
resolution: "path-to-regexp@npm:6.3.0"
|
||||||
checksum: b7b0005c36f5099f9ed1fb20a820d2e4ed1297ffe683ea1d678f5e976eb9544f01debb281369dabdc26da82e6453901bf71acf2c7ed14b9243536c2a45286c33
|
checksum: eca78602e6434a1b6799d511d375ec044e8d7e28f5a48aa5c28d57d8152fb52f3fc62fb1cfc5dfa2198e1f041c2a82ed14043d75740a2fe60e91b5089a153250
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6568,15 +6580,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"uuid@npm:^3.3.2, uuid@npm:^3.3.3":
|
|
||||||
version: 3.4.0
|
|
||||||
resolution: "uuid@npm:3.4.0"
|
|
||||||
bin:
|
|
||||||
uuid: ./bin/uuid
|
|
||||||
checksum: 58de2feed61c59060b40f8203c0e4ed7fd6f99d42534a499f1741218a1dd0c129f4aa1de797bcf822c8ea5da7e4137aa3673431a96dae729047f7aca7b27866f
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"uuid@npm:^8.3.0, uuid@npm:^8.3.2":
|
"uuid@npm:^8.3.0, uuid@npm:^8.3.2":
|
||||||
version: 8.3.2
|
version: 8.3.2
|
||||||
resolution: "uuid@npm:8.3.2"
|
resolution: "uuid@npm:8.3.2"
|
||||||
|
|||||||
Reference in New Issue
Block a user