Compare commits

..

6 Commits

Author SHA1 Message Date
CrazyMax 4a9a8d4944 Merge pull request #298 from crazy-max/v5_update-actions-toolkit
[v5] Bump @docker/actions-toolkit from 0.51.0 to 0.53.0
2025-01-23 14:31:59 +01:00
CrazyMax 646f0499ff chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-23 14:27:20 +01:00
CrazyMax 94bc82a583 Bump @docker/actions-toolkit from 0.51.0 to 0.53.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-23 14:26:12 +01:00
CrazyMax b6c9154dfe Merge pull request #291 from crazy-max/v5-composable-attributes
[v5] Bump @docker/actions-toolkit from 0.47.0 to 0.51.0
2025-01-21 14:57:15 +01:00
CrazyMax a50446b491 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-21 13:56:58 +01:00
CrazyMax 419be9c19b Bump @docker/actions-toolkit from 0.47.0 to 0.51.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-21 13:56:13 +01:00
14 changed files with 252 additions and 285 deletions
+8 -38
View File
@@ -32,8 +32,8 @@ on:
- 'subaction/**' - 'subaction/**'
env: env:
BUILDX_VERSION: edge BUILDX_VERSION: latest
BUILDKIT_IMAGE: moby/buildkit:latest BUILDKIT_IMAGE: moby/buildkit:buildx-stable-1
jobs: jobs:
bake: bake:
@@ -69,7 +69,6 @@ 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
@@ -88,7 +87,6 @@ jobs:
continue-on-error: true continue-on-error: true
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
set: | set: |
@@ -110,7 +108,6 @@ jobs:
continue-on-error: true continue-on-error: true
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
- -
@@ -147,11 +144,10 @@ jobs:
name: Build name: Build
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
remote: source:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
@@ -192,7 +188,6 @@ jobs:
uses: ./ uses: ./
with: with:
workdir: ./test/go workdir: ./test/go
source: .
targets: binary targets: binary
provenance: ${{ matrix.attrs }} provenance: ${{ matrix.attrs }}
set: | set: |
@@ -234,7 +229,6 @@ jobs:
uses: ./ uses: ./
with: with:
workdir: ./test/go workdir: ./test/go
source: .
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
sbom: true sbom: true
set: | set: |
@@ -281,7 +275,6 @@ 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
@@ -311,7 +304,6 @@ 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
@@ -332,7 +324,6 @@ jobs:
name: Build name: Build
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
@@ -370,7 +361,6 @@ jobs:
name: Build name: Build
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
targets: app-proxy targets: app-proxy
@@ -406,7 +396,6 @@ jobs:
name: Build name: Build
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
@@ -426,6 +415,8 @@ 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
@@ -448,6 +439,7 @@ 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 }}
@@ -474,7 +466,6 @@ 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
@@ -518,7 +509,6 @@ jobs:
uses: ./ uses: ./
with: with:
workdir: ./test/go workdir: ./test/go
source: .
targets: image targets: image
load: true load: true
push: true push: true
@@ -573,7 +563,6 @@ jobs:
name: Build name: Build
uses: ./ uses: ./
with: with:
source: .
files: | files: |
./test/config.hcl ./test/config.hcl
targets: app targets: app
@@ -659,7 +648,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
buildx-version: buildx-version:
- edge - latest
- v0.14.1 - v0.14.1
steps: steps:
- -
@@ -677,7 +666,6 @@ jobs:
uses: ./ uses: ./
with: with:
workdir: ./test workdir: ./test
source: .
files: | files: |
./lint.hcl ./lint.hcl
@@ -699,7 +687,6 @@ jobs:
uses: ./ uses: ./
with: with:
workdir: ./test workdir: ./test
source: .
files: | files: |
./lint.hcl ./lint.hcl
env: env:
@@ -711,8 +698,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
buildx-version: buildx-version:
- edge - v0.19.0-rc2
- v0.19.0
- v0.18.0 - v0.18.0
- v0.17.1 - v0.17.1
steps: steps:
@@ -734,19 +720,3 @@ jobs:
./test/config.hcl ./test/config.hcl
allow: network.host allow: network.host
targets: app-entitlements targets: app-entitlements
no-default-attestations:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Build
uses: ./
with:
source: .
files: |
./test/config.hcl
env:
BUILDX_NO_DEFAULT_ATTESTATIONS: 1
-17
View File
@@ -1,17 +0,0 @@
name: pr-assign-author
permissions:
contents: read
on:
pull_request_target:
types:
- opened
- reopened
jobs:
run:
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@1b673f36fad86812f538c1df9794904038a23cbf
permissions:
contents: read
pull-requests: write
+1 -2
View File
@@ -26,9 +26,8 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- -
name: Test name: Test
uses: docker/bake-action@v6 uses: docker/bake-action@v5
with: with:
source: .
targets: test targets: test
- -
name: Upload coverage name: Upload coverage
+4 -1
View File
@@ -36,8 +36,11 @@ 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@v6 uses: docker/bake-action@v5
with: with:
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
+57 -74
View File
@@ -14,8 +14,8 @@ as a high-level build command.
___ ___
* [Usage](#usage) * [Usage](#usage)
* [Git context](#git-context)
* [Path context](#path-context) * [Path context](#path-context)
* [Git context](#git-context)
* [Summaries](#summaries) * [Summaries](#summaries)
* [Customizing](#customizing) * [Customizing](#customizing)
* [inputs](#inputs) * [inputs](#inputs)
@@ -27,51 +27,84 @@ ___
## Usage ## Usage
### Git context ### Path context
Since `v6` this action uses the [Git context](https://docs.docker.com/build/bake/remote-definition/) By default, this action will use the local bake definition (`source: .`), so
to build from a remote bake definition by default like the [build-push-action](https://github.com/docker/build-push-action) you need to use the [`actions/checkout`](https://github.com/actions/checkout/)
does. This means that you don't need to use the [`actions/checkout`](https://github.com/actions/checkout/) action to check out the repository.
action to check out the repository as [BuildKit](https://docs.docker.com/build/buildkit/)
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: Login to DockerHub name: Checkout
uses: docker/login-action@v3 uses: actions/checkout@v4
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- -
name: Set up Docker Buildx name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 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 name: Build and push
uses: docker/bake-action@v6 uses: docker/bake-action@v5
with: with:
push: true push: true
set: | ```
*.tags=user/app:latest
### Git context
Git context can be provided using the [`source` input](#inputs). 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/)
will do this directly.
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
bake:
runs-on: ubuntu-latest
steps:
-
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:
source: "${{ github.server_url }}/${{ github.repository }}.git#${{ github.ref }}"
push: true
``` ```
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) using the [`source` input](#inputs) alongside [Path context](#path-context) alongside the [`actions/checkout`](https://github.com/actions/checkout/)
the [`actions/checkout`](https://github.com/actions/checkout/) action to remove action to remove this restriction.
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
@@ -80,12 +113,10 @@ to the default Git context:
```yaml ```yaml
- -
name: Build and push name: Build and push
uses: docker/bake-action@v6 uses: docker/bake-action@v5
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`
@@ -100,49 +131,14 @@ another private repository for remote definitions, you can set the
```yaml ```yaml
- -
name: Build and push name: Build and push
uses: docker/bake-action@v6 uses: docker/bake-action@v5
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/)
@@ -157,19 +153,6 @@ additional details about the build execution for all the bake targets,
including build stats, logs, outputs, and more. The build record can be including build stats, logs, outputs, and more. The build record can be
imported to Docker Desktop for inspecting the build in greater detail. imported to Docker Desktop for inspecting the build in greater detail.
> [!WARNING]
>
> If you're using the [`actions/download-artifact`](https://github.com/actions/download-artifact)
> action in your workflow, you need to ignore the build record artifacts
> if `name` and `pattern` inputs are not specified ([defaults to download all artifacts](https://github.com/actions/download-artifact?tab=readme-ov-file#download-all-artifacts) of the workflow),
> otherwise the action will fail:
> ```yaml
> - uses: actions/download-artifact@v4
> with:
> pattern: "!*.dockerbuild"
> ```
> More info: https://github.com/actions/toolkit/pull/1874
Summaries are enabled by default, but can be disabled with the Summaries are enabled by default, but can be disabled with the
`DOCKER_BUILD_SUMMARY` [environment variable](#environment-variables). `DOCKER_BUILD_SUMMARY` [environment variable](#environment-variables).
+16 -87
View File
@@ -1,4 +1,4 @@
import {afterEach, beforeEach, describe, expect, jest, test} from '@jest/globals'; import {beforeEach, describe, expect, jest, test} from '@jest/globals';
import * as fs from 'fs'; import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
@@ -122,7 +122,6 @@ jest.spyOn(Bake.prototype, 'getDefinition').mockImplementation(async (): Promise
}); });
describe('getArgs', () => { describe('getArgs', () => {
const originalEnv = process.env;
beforeEach(() => { beforeEach(() => {
process.env = Object.keys(process.env).reduce((object, key) => { process.env = Object.keys(process.env).reduce((object, key) => {
if (!key.startsWith('INPUT_')) { if (!key.startsWith('INPUT_')) {
@@ -131,9 +130,6 @@ describe('getArgs', () => {
return object; return object;
}, {}); }, {});
}); });
afterEach(() => {
process.env = originalEnv;
});
// prettier-ignore // prettier-ignore
test.each([ test.each([
@@ -141,7 +137,6 @@ 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'],
@@ -149,14 +144,12 @@ describe('getArgs', () => {
]), ]),
[ [
'bake', 'bake',
], ]
undefined
], ],
[ [
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'],
@@ -165,14 +158,12 @@ describe('getArgs', () => {
[ [
'bake', 'bake',
'--metadata-file', metadataJson '--metadata-file', metadataJson
], ]
undefined
], ],
[ [
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'],
@@ -183,14 +174,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
'webapp', 'validate' 'webapp', 'validate'
], ]
undefined
], ],
[ [
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'],
@@ -202,14 +191,12 @@ describe('getArgs', () => {
'--set', '*.cache-from=type=gha', '--set', '*.cache-from=type=gha',
'--set', '*.cache-to=type=gha', '--set', '*.cache-to=type=gha',
'--metadata-file', metadataJson '--metadata-file', metadataJson
], ]
undefined
], ],
[ [
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'],
@@ -219,14 +206,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--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`,
], ]
undefined
], ],
[ [
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'],
@@ -237,14 +222,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--provenance", `builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1` "--provenance", `builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`
], ]
undefined
], ],
[ [
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'],
@@ -255,14 +238,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--provenance", `mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1` "--provenance", `mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`
], ]
undefined
], ],
[ [
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'],
@@ -273,14 +254,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--provenance", 'false' "--provenance", 'false'
], ]
undefined
], ],
[ [
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'],
@@ -291,14 +270,12 @@ describe('getArgs', () => {
'bake', 'bake',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--provenance", 'builder-id=foo' "--provenance", 'builder-id=foo'
], ]
undefined
], ],
[ [
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'],
@@ -313,14 +290,12 @@ describe('getArgs', () => {
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
'--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`,
'image-all' 'image-all'
], ]
undefined
], ],
[ [
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'],
@@ -334,13 +309,13 @@ describe('getArgs', () => {
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
'--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`,
'image-all' 'image-all'
], ]
undefined
], ],
[ [
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'],
@@ -353,14 +328,12 @@ describe('getArgs', () => {
'--file', './foo.hcl', '--file', './foo.hcl',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
'--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`,
], ]
undefined
], ],
[ [
12, 12,
'0.17.0', '0.17.0',
new Map<string, string>([ new Map<string, string>([
['source', '.'],
['allow', 'network.host'], ['allow', 'network.host'],
['load', 'false'], ['load', 'false'],
['no-cache', 'false'], ['no-cache', 'false'],
@@ -372,55 +345,11 @@ describe('getArgs', () => {
'--allow', 'network.host', '--allow', 'network.host',
'--metadata-file', metadataJson, '--metadata-file', metadataJson,
"--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`
], ]
undefined
],
[
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`,
],
undefined
],
[
14,
'0.15.0',
new Map<string, string>([
['source', '.'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false']
]),
[
'bake',
'--metadata-file', metadataJson
],
new Map<string, string>([
['BUILDX_NO_DEFAULT_ATTESTATIONS', '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>, envs: Map<string, string> | undefined) => { async (num: number, buildxVersion: string, inputs: Map<string, string>, expected: Array<string>) => {
if (envs) {
envs.forEach((value: string, name: string) => {
process.env[name] = value;
});
}
inputs.forEach((value: string, name: string) => { inputs.forEach((value: string, name: string) => {
setInput(name, value); setInput(name, value);
}); });
Generated Vendored
+15 -15
View File
File diff suppressed because one or more lines are too long
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
Generated Vendored
+6
View File
@@ -2358,6 +2358,9 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dot-object
MIT
encoding encoding
MIT MIT
Copyright (c) 2012-2014 Andris Reinman Copyright (c) 2012-2014 Andris Reinman
@@ -3688,6 +3691,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
twirp-ts
MIT
undici undici
MIT MIT
MIT License MIT License
-13
View File
@@ -1,9 +1,3 @@
target "_common" {
args = {
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}
group "default" { group "default" {
targets = ["build"] targets = ["build"]
} }
@@ -17,49 +11,42 @@ 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"]
+1 -1
View File
@@ -27,7 +27,7 @@
"packageManager": "yarn@3.6.3", "packageManager": "yarn@3.6.3",
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1", "@actions/core": "^1.11.1",
"@docker/actions-toolkit": "^0.59.0", "@docker/actions-toolkit": "^0.53.0",
"handlebars": "^4.7.8" "handlebars": "^4.7.8"
}, },
"devDependencies": { "devDependencies": {
+1 -11
View File
@@ -103,7 +103,7 @@ async function getBakeArgs(inputs: Inputs, definition: BakeDefinition, toolkit:
if (await toolkit.buildx.versionSatisfies('>=0.10.0')) { if (await toolkit.buildx.versionSatisfies('>=0.10.0')) {
if (inputs.provenance) { if (inputs.provenance) {
args.push('--provenance', inputs.provenance); args.push('--provenance', inputs.provenance);
} else if (!noDefaultAttestations() && (await toolkit.buildkit.versionSatisfies(inputs.builder, '>=0.11.0')) && !Bake.hasDockerExporter(definition, inputs.load)) { } else if ((await toolkit.buildkit.versionSatisfies(inputs.builder, '>=0.11.0')) && !Bake.hasDockerExporter(definition, inputs.load)) {
// if provenance not specified and BuildKit version compatible for // if provenance not specified and BuildKit version compatible for
// attestation, set default provenance. Also needs to make sure user // attestation, set default provenance. Also needs to make sure user
// doesn't want to explicitly load the image to docker. // doesn't want to explicitly load the image to docker.
@@ -147,18 +147,8 @@ 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 = '';
} }
return source; return source;
} }
function noDefaultAttestations(): boolean {
if (process.env.BUILDX_NO_DEFAULT_ATTESTATIONS) {
return Util.parseBool(process.env.BUILDX_NO_DEFAULT_ATTESTATIONS);
}
return false;
}
+2 -2
View File
@@ -42,7 +42,7 @@ jobs:
- -
name: List targets name: List targets
id: generate id: generate
uses: docker/bake-action/subaction/list-targets@v6 uses: docker/bake-action/subaction/list-targets@v4
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@v6 uses: docker/bake-action@v5
with: with:
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
``` ```
+140 -23
View File
@@ -12,9 +12,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@actions/artifact@npm:^2.3.2": "@actions/artifact@npm:^2.2.1":
version: 2.3.2 version: 2.2.1
resolution: "@actions/artifact@npm:2.3.2" 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
@@ -27,14 +27,15 @@ __metadata:
"@protobuf-ts/plugin": ^2.2.3-alpha.1 "@protobuf-ts/plugin": ^2.2.3-alpha.1
archiver: ^7.0.1 archiver: ^7.0.1
jwt-decode: ^3.1.2 jwt-decode: ^3.1.2
twirp-ts: ^2.5.0
unzip-stream: ^0.3.1 unzip-stream: ^0.3.1
checksum: 78ee41b43800accb2f3527e1733217c43d53693e7f96ce2470b16890fb84f5c2ebaaa6048ccdb6cfe188b54c02779ec99623c6932558e757f6829cfde203cf2c checksum: 6ce4e62d941f17743c845637cdd832ca34c77efe0c31cf7f6ab3ad0531e54e62d4379198e8af5e84463b5f5ae0bc0ea11d41cc77c5fae7e511c7ef01742892ea
languageName: node languageName: node
linkType: hard linkType: hard
"@actions/cache@npm:^4.0.3": "@actions/cache@npm:^4.0.0":
version: 4.0.3 version: 4.0.0
resolution: "@actions/cache@npm:4.0.3" resolution: "@actions/cache@npm:4.0.0"
dependencies: dependencies:
"@actions/core": ^1.11.1 "@actions/core": ^1.11.1
"@actions/exec": ^1.0.1 "@actions/exec": ^1.0.1
@@ -46,7 +47,8 @@ __metadata:
"@azure/storage-blob": ^12.13.0 "@azure/storage-blob": ^12.13.0
"@protobuf-ts/plugin": ^2.9.4 "@protobuf-ts/plugin": ^2.9.4
semver: ^6.3.1 semver: ^6.3.1
checksum: ee9c2a21a70bd3f35c63f302af478e23f135c26deb77ea2e4eed29c62766a4b201fc7435651c0d56fa504c02d203107e3bdfda1dba18a3ee09338e1dfc3f2fe8 twirp-ts: ^2.5.0
checksum: 8ab819a67b578a5ce6de984f4ef8420066f8270e1f9db053700f4a8f084d0bbe4f911114f7088a95a987372ea63078550355d99849412152dd0efdf688bf9144
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1065,12 +1067,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@docker/actions-toolkit@npm:^0.59.0": "@docker/actions-toolkit@npm:^0.53.0":
version: 0.59.0 version: 0.53.0
resolution: "@docker/actions-toolkit@npm:0.59.0" resolution: "@docker/actions-toolkit@npm:0.53.0"
dependencies: dependencies:
"@actions/artifact": ^2.3.2 "@actions/artifact": ^2.2.1
"@actions/cache": ^4.0.3 "@actions/cache": ^4.0.0
"@actions/core": ^1.11.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
@@ -1087,10 +1089,10 @@ __metadata:
he: ^1.2.0 he: ^1.2.0
js-yaml: ^4.1.0 js-yaml: ^4.1.0
jwt-decode: ^4.0.0 jwt-decode: ^4.0.0
semver: ^7.7.1 semver: ^7.6.3
tar-stream: ^3.1.7 tar-stream: ^3.1.7
tmp: ^0.2.3 tmp: ^0.2.3
checksum: 0956071aa04e04132b789d47ba57813c566115bea9fdedf3c648d0a0da8ce12350de9cd2a796ce1da7b64b995ae073bfe344b0f63c6f331a45e60195e15680a6 checksum: 9b14d8e0d17cbf52a38e66e85c1d04f599a64633aaaac550f9dcbed51567f7cc2c36ad2c748884fecf3355f25dc05b783e500e621014f43348a776f5433de927
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1893,7 +1895,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@protobuf-ts/plugin-framework@npm:^2.9.4": "@protobuf-ts/plugin-framework@npm:^2.0.7, @protobuf-ts/plugin-framework@npm:^2.9.4":
version: 2.9.4 version: 2.9.4
resolution: "@protobuf-ts/plugin-framework@npm:2.9.4" resolution: "@protobuf-ts/plugin-framework@npm:2.9.4"
dependencies: dependencies:
@@ -2779,6 +2781,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"camel-case@npm:^4.1.2":
version: 4.1.2
resolution: "camel-case@npm:4.1.2"
dependencies:
pascal-case: ^3.1.2
tslib: ^2.0.3
checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6
languageName: node
linkType: hard
"camelcase@npm:^5.3.1": "camelcase@npm:^5.3.1":
version: 5.3.1 version: 5.3.1
resolution: "camelcase@npm:5.3.1" resolution: "camelcase@npm:5.3.1"
@@ -2938,6 +2950,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commander@npm:^6.1.0":
version: 6.2.1
resolution: "commander@npm:6.2.1"
checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742
languageName: node
linkType: hard
"compress-commons@npm:^6.0.2": "compress-commons@npm:^6.0.2":
version: 6.0.2 version: 6.0.2
resolution: "compress-commons@npm:6.0.2" resolution: "compress-commons@npm:6.0.2"
@@ -3141,7 +3160,7 @@ __metadata:
resolution: "docker-buildx-bake@workspace:." resolution: "docker-buildx-bake@workspace:."
dependencies: dependencies:
"@actions/core": ^1.11.1 "@actions/core": ^1.11.1
"@docker/actions-toolkit": ^0.59.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
@@ -3168,6 +3187,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"dot-object@npm:^2.1.4":
version: 2.1.5
resolution: "dot-object@npm:2.1.5"
dependencies:
commander: ^6.1.0
glob: ^7.1.6
bin:
dot-object: bin/dot-object
checksum: 3e5a681bbea32dfc1cd0b1254adc93531bd462f7474a355e981738ef37253e4bc5c9482926289ef4d3c6ef9adb0a7ed894725ed3a69aa22063343dc2a57dd764
languageName: node
linkType: hard
"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": "duplexify@npm:^3.5.0, duplexify@npm:^3.6.0":
version: 3.7.1 version: 3.7.1
resolution: "duplexify@npm:3.7.1" resolution: "duplexify@npm:3.7.1"
@@ -3799,7 +3830,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"glob@npm:^7.1.3": "glob@npm:^7.1.3, glob@npm:^7.1.6":
version: 7.2.3 version: 7.2.3
resolution: "glob@npm:7.2.3" resolution: "glob@npm:7.2.3"
dependencies: dependencies:
@@ -4901,6 +4932,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lower-case@npm:^2.0.2":
version: 2.0.2
resolution: "lower-case@npm:2.0.2"
dependencies:
tslib: ^2.0.3
checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010
languageName: node
linkType: hard
"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
version: 10.2.1 version: 10.2.1
resolution: "lru-cache@npm:10.2.1" resolution: "lru-cache@npm:10.2.1"
@@ -5183,6 +5223,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"no-case@npm:^3.0.4":
version: 3.0.4
resolution: "no-case@npm:3.0.4"
dependencies:
lower-case: ^2.0.2
tslib: ^2.0.3
checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c
languageName: node
linkType: hard
"node-fetch@npm:^2.6.7": "node-fetch@npm:^2.6.7":
version: 2.6.9 version: 2.6.9
resolution: "node-fetch@npm:2.6.9" resolution: "node-fetch@npm:2.6.9"
@@ -5377,6 +5427,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pascal-case@npm:^3.1.2":
version: 3.1.2
resolution: "pascal-case@npm:3.1.2"
dependencies:
no-case: ^3.0.4
tslib: ^2.0.3
checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e
languageName: node
linkType: hard
"path-exists@npm:^4.0.0": "path-exists@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "path-exists@npm:4.0.0" resolution: "path-exists@npm:4.0.0"
@@ -5415,6 +5475,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"path-to-regexp@npm:^6.2.0":
version: 6.3.0
resolution: "path-to-regexp@npm:6.3.0"
checksum: eca78602e6434a1b6799d511d375ec044e8d7e28f5a48aa5c28d57d8152fb52f3fc62fb1cfc5dfa2198e1f041c2a82ed14043d75740a2fe60e91b5089a153250
languageName: node
linkType: hard
"path-type@npm:^4.0.0": "path-type@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "path-type@npm:4.0.0" resolution: "path-type@npm:4.0.0"
@@ -5486,6 +5553,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prettier@npm:^2.5.1":
version: 2.8.8
resolution: "prettier@npm:2.8.8"
bin:
prettier: bin-prettier.js
checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8
languageName: node
linkType: hard
"prettier@npm:^3.2.5": "prettier@npm:^3.2.5":
version: 3.2.5 version: 3.2.5
resolution: "prettier@npm:3.2.5" resolution: "prettier@npm:3.2.5"
@@ -5801,12 +5877,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"semver@npm:^7.7.1": "semver@npm:^7.6.3":
version: 7.7.1 version: 7.6.3
resolution: "semver@npm:7.7.1" resolution: "semver@npm:7.6.3"
bin: bin:
semver: bin/semver.js semver: bin/semver.js
checksum: 586b825d36874007c9382d9e1ad8f93888d8670040add24a28e06a910aeebd673a2eb9e3bf169c6679d9245e66efb9057e0852e70d9daa6c27372aab1dda7104 checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8
languageName: node languageName: node
linkType: hard linkType: hard
@@ -6289,6 +6365,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ts-poet@npm:^4.5.0":
version: 4.15.0
resolution: "ts-poet@npm:4.15.0"
dependencies:
lodash: ^4.17.15
prettier: ^2.5.1
checksum: 93490e8b5921e23ac65afdecc00b4dd53f3560d7d9c19778a3f0bd9a300ba7ca71585a989d564508313bc73e8c431413714d513ebca2d5c428f909ec36bcf6e9
languageName: node
linkType: hard
"tslib@npm:^1.10.0": "tslib@npm:^1.10.0":
version: 1.14.1 version: 1.14.1
resolution: "tslib@npm:1.14.1" resolution: "tslib@npm:1.14.1"
@@ -6296,7 +6382,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tslib@npm:^2.2.0, tslib@npm:^2.6.2": "tslib@npm:^2.0.3, tslib@npm:^2.2.0, tslib@npm:^2.6.2":
version: 2.6.2 version: 2.6.2
resolution: "tslib@npm:2.6.2" resolution: "tslib@npm:2.6.2"
checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
@@ -6310,6 +6396,30 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"twirp-ts@npm:^2.5.0":
version: 2.5.0
resolution: "twirp-ts@npm:2.5.0"
dependencies:
"@protobuf-ts/plugin-framework": ^2.0.7
camel-case: ^4.1.2
dot-object: ^2.1.4
path-to-regexp: ^6.2.0
ts-poet: ^4.5.0
yaml: ^1.10.2
peerDependencies:
"@protobuf-ts/plugin": ^2.5.0
ts-proto: ^1.81.3
peerDependenciesMeta:
"@protobuf-ts/plugin":
optional: true
ts-proto:
optional: true
bin:
protoc-gen-twirp_ts: protoc-gen-twirp_ts
checksum: e7cf87d77ab4d2cd327c9d8307e82ff61afc5af56883aed5fb6ac7d57999b646945e11158be87c10f0340aeef2efde6eb896f2efd60599498f17b4f310d66e4f
languageName: node
linkType: hard
"type-check@npm:^0.4.0, type-check@npm:~0.4.0": "type-check@npm:^0.4.0, type-check@npm:~0.4.0":
version: 0.4.0 version: 0.4.0
resolution: "type-check@npm:0.4.0" resolution: "type-check@npm:0.4.0"
@@ -6636,6 +6746,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"yaml@npm:^1.10.2":
version: 1.10.2
resolution: "yaml@npm:1.10.2"
checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f
languageName: node
linkType: hard
"yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": "yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1":
version: 21.1.1 version: 21.1.1
resolution: "yargs-parser@npm:21.1.1" resolution: "yargs-parser@npm:21.1.1"