Skip to content

Commit 56a16b8

Browse files
authored
Merge pull request #303 from crazy-max/fix-inputs
rename and align config inputs
2 parents b7cf918 + c23f46e commit 56a16b8

File tree

8 files changed

+102
-37
lines changed

8 files changed

+102
-37
lines changed

.github/workflows/ci.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ jobs:
251251
uses: ./
252252
with:
253253
buildkitd-flags: --debug
254-
config: /tmp/buildkitd.toml
254+
buildkitd-config: /tmp/buildkitd.toml
255255
-
256256
name: Build
257257
uses: docker/build-push-action@v5
@@ -275,7 +275,7 @@ jobs:
275275
uses: ./
276276
with:
277277
buildkitd-flags: --debug
278-
config-inline: |
278+
buildkitd-config-inline: |
279279
debug = true
280280
[registry."docker.io"]
281281
mirrors = ["mirror.gcr.io"]
@@ -564,7 +564,7 @@ jobs:
564564
with:
565565
context: .
566566

567-
cacheBinary:
567+
cache-binary:
568568
runs-on: ubuntu-latest
569569
strategy:
570570
fail-fast: false

README.md

+17-17
Original file line numberDiff line numberDiff line change
@@ -85,23 +85,23 @@ The following inputs can be used as `step.with` keys:
8585
> platforms: linux/amd64,linux/arm64
8686
> ```
8787

88-
| Name | Type | Default | Description |
89-
|-------------------|----------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
90-
| `version` | String | | [Buildx](https://github.com/docker/buildx) version. (eg. `v0.3.0`, `latest`, `https://github.com/docker/buildx.git#master`) |
91-
| `driver` | String | `docker-container` | Sets the [builder driver](https://docs.docker.com/engine/reference/commandline/buildx_create/#driver) to be used |
92-
| `driver-opts` | List | | List of additional [driver-specific options](https://docs.docker.com/engine/reference/commandline/buildx_create/#driver-opt) (eg. `image=moby/buildkit:master`) |
93-
| `buildkitd-flags` | String | | [Flags for buildkitd](https://docs.docker.com/engine/reference/commandline/buildx_create/#buildkitd-flags) daemon |
94-
| `install` | Bool | `false` | Sets up `docker build` command as an alias to `docker buildx` |
95-
| `use` | Bool | `true` | Switch to this builder instance |
96-
| `endpoint` | String | | [Optional address for docker socket](https://docs.docker.com/engine/reference/commandline/buildx_create/#description) or context from `docker context ls` |
97-
| `platforms` | List/CSV | | Fixed [platforms](https://docs.docker.com/engine/reference/commandline/buildx_create/#platform) for current node. If not empty, values take priority over the detected ones. |
98-
| `config`¹ | String | | [BuildKit config file](https://docs.docker.com/engine/reference/commandline/buildx_create/#config) |
99-
| `config-inline`¹ | String | | Same as `config` but inline |
100-
| `append` | YAML | | [Append additional nodes](https://docs.docker.com/build/ci/github-actions/configure-builder/#append-additional-nodes-to-the-builder) to the builder |
101-
| `cache-binary` | Bool | `true` | Cache buildx binary to GitHub Actions cache backend |
102-
| `cleanup` | Bool | `true` | Cleanup temp files and remove builder at the end of a job |
103-
104-
> * ¹ `config` and `config-inline` are mutually exclusive
88+
| Name | Type | Default | Description |
89+
|------------------------------|----------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
90+
| `version` | String | | [Buildx](https://github.com/docker/buildx) version. (eg. `v0.3.0`, `latest`, `https://github.com/docker/buildx.git#master`) |
91+
| `driver` | String | `docker-container` | Sets the [builder driver](https://docs.docker.com/engine/reference/commandline/buildx_create/#driver) to be used |
92+
| `driver-opts` | List | | List of additional [driver-specific options](https://docs.docker.com/engine/reference/commandline/buildx_create/#driver-opt) (eg. `image=moby/buildkit:master`) |
93+
| `buildkitd-flags` | String | | [BuildKit daemon flags](https://docs.docker.com/engine/reference/commandline/buildx_create/#buildkitd-flags) |
94+
| `buildkitd-config` \* | String | | [BuildKit daemon config file](https://docs.docker.com/engine/reference/commandline/buildx_create/#config) |
95+
| `buildkitd-config-inline` \* | String | | Same as `buildkitd-config` but inline |
96+
| `install` | Bool | `false` | Sets up `docker build` command as an alias to `docker buildx` |
97+
| `use` | Bool | `true` | Switch to this builder instance |
98+
| `endpoint` | String | | [Optional address for docker socket](https://docs.docker.com/engine/reference/commandline/buildx_create/#description) or context from `docker context ls` |
99+
| `platforms` | List/CSV | | Fixed [platforms](https://docs.docker.com/engine/reference/commandline/buildx_create/#platform) for current node. If not empty, values take priority over the detected ones. |
100+
| `append` | YAML | | [Append additional nodes](https://docs.docker.com/build/ci/github-actions/configure-builder/#append-additional-nodes-to-the-builder) to the builder |
101+
| `cache-binary` | Bool | `true` | Cache buildx binary to GitHub Actions cache backend |
102+
| `cleanup` | Bool | `true` | Cleanup temp files and remove builder at the end of a job |
103+
104+
_\* `buildkitd-config` and `buildkitd-config-inline` are mutually exclusive_
105105

106106
### outputs
107107

__tests__/context.test.ts

+55
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
11
import {beforeEach, describe, expect, jest, test} from '@jest/globals';
2+
import * as fs from 'fs';
3+
import * as path from 'path';
24
import * as uuid from 'uuid';
35
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx';
6+
import {Context} from '@docker/actions-toolkit/lib/context';
47
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
58
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
69
import {Node} from '@docker/actions-toolkit/lib/types/builder';
710

811
import * as context from '../src/context';
912

13+
const fixturesDir = path.join(__dirname, 'fixtures');
14+
// prettier-ignore
15+
const tmpDir = path.join(process.env.TEMP || '/tmp', 'setup-buildx-jest');
16+
const tmpName = path.join(tmpDir, '.tmpname-jest');
17+
18+
jest.spyOn(Context, 'tmpDir').mockImplementation((): string => {
19+
if (!fs.existsSync(tmpDir)) {
20+
fs.mkdirSync(tmpDir, {recursive: true});
21+
}
22+
return tmpDir;
23+
});
24+
25+
jest.spyOn(Context, 'tmpName').mockImplementation((): string => {
26+
return tmpName;
27+
});
28+
1029
jest.mock('uuid');
1130
jest.spyOn(uuid, 'v4').mockReturnValue('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
1231

@@ -171,6 +190,42 @@ describe('getCreateArgs', () => {
171190
'--name', 'builder-9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d',
172191
'--driver', 'unknown',
173192
]
193+
],
194+
[
195+
8,
196+
'v0.10.3',
197+
new Map<string, string>([
198+
['install', 'false'],
199+
['use', 'false'],
200+
['buildkitd-config', path.join(fixturesDir, 'buildkitd.toml')],
201+
['cache-binary', 'true'],
202+
['cleanup', 'true'],
203+
]),
204+
[
205+
'create',
206+
'--name', 'builder-9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d',
207+
'--driver', 'docker-container',
208+
'--buildkitd-flags', '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host',
209+
'--config', tmpName,
210+
]
211+
],
212+
[
213+
9,
214+
'v0.10.3',
215+
new Map<string, string>([
216+
['install', 'false'],
217+
['use', 'false'],
218+
['buildkitd-config-inline', 'debug = true'],
219+
['cache-binary', 'true'],
220+
['cleanup', 'true'],
221+
]),
222+
[
223+
'create',
224+
'--name', 'builder-9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d',
225+
'--driver', 'docker-container',
226+
'--buildkitd-flags', '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host',
227+
'--config', tmpName,
228+
]
174229
]
175230
])(
176231
'[%d] given buildx %s and %p as inputs, returns %p',

__tests__/fixtures/buildkitd.toml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
debug = true

action.yml

+16-7
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@ inputs:
1818
description: 'List of additional driver-specific options. (eg. image=moby/buildkit:master)'
1919
required: false
2020
buildkitd-flags:
21-
description: 'Flags for buildkitd daemon'
21+
description: 'BuildKit daemon flags'
2222
default: '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host'
2323
required: false
24+
buildkitd-config:
25+
description: 'BuildKit daemon config file'
26+
required: false
27+
buildkitd-config-inline:
28+
description: 'Inline BuildKit daemon config'
29+
required: false
2430
install:
2531
description: 'Sets up docker build command as an alias to docker buildx build'
2632
default: 'false'
@@ -35,12 +41,6 @@ inputs:
3541
platforms:
3642
description: 'Fixed platforms for current node. If not empty, values take priority over the detected ones'
3743
required: false
38-
config:
39-
description: 'BuildKit config file'
40-
required: false
41-
config-inline:
42-
description: 'Inline BuildKit config'
43-
required: false
4444
append:
4545
description: 'Append additional nodes to the builder'
4646
required: false
@@ -52,6 +52,15 @@ inputs:
5252
description: 'Cleanup temp files and remove builder at the end of a job'
5353
default: 'true'
5454
required: false
55+
# deprecated inputs
56+
config:
57+
description: 'BuildKit daemon config file'
58+
deprecationMessage: 'Use buildkitd-config instead'
59+
required: false
60+
config-inline:
61+
description: 'Inline BuildKit daemon config'
62+
deprecationMessage: 'Use buildkitd-config-inline instead'
63+
required: false
5564

5665
outputs:
5766
name:

dist/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/context.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ export interface Inputs {
1313
driver: string;
1414
driverOpts: string[];
1515
buildkitdFlags: string;
16+
buildkitdConfig: string;
17+
buildkitdConfigInline: string;
1618
platforms: string[];
1719
install: boolean;
1820
use: boolean;
1921
endpoint: string;
20-
config: string;
21-
configInline: string;
2222
append: string;
2323
cacheBinary: boolean;
2424
cleanup: boolean;
@@ -35,8 +35,8 @@ export async function getInputs(): Promise<Inputs> {
3535
install: core.getBooleanInput('install'),
3636
use: core.getBooleanInput('use'),
3737
endpoint: core.getInput('endpoint'),
38-
config: core.getInput('config'),
39-
configInline: core.getInput('config-inline'),
38+
buildkitdConfig: core.getInput('buildkitd-config') || core.getInput('config'),
39+
buildkitdConfigInline: core.getInput('buildkitd-config-inline') || core.getInput('config-inline'),
4040
append: core.getInput('append'),
4141
cacheBinary: core.getBooleanInput('cache-binary'),
4242
cleanup: core.getBooleanInput('cleanup')
@@ -64,10 +64,10 @@ export async function getCreateArgs(inputs: Inputs, toolkit: Toolkit): Promise<A
6464
args.push('--use');
6565
}
6666
if (driverSupportsFlags(inputs.driver)) {
67-
if (inputs.config) {
68-
args.push('--config', toolkit.buildkit.config.resolveFromFile(inputs.config));
69-
} else if (inputs.configInline) {
70-
args.push('--config', toolkit.buildkit.config.resolveFromString(inputs.configInline));
67+
if (inputs.buildkitdConfig) {
68+
args.push('--config', toolkit.buildkit.config.resolveFromFile(inputs.buildkitdConfig));
69+
} else if (inputs.buildkitdConfigInline) {
70+
args.push('--config', toolkit.buildkit.config.resolveFromString(inputs.buildkitdConfigInline));
7171
}
7272
}
7373
if (inputs.endpoint) {

0 commit comments

Comments
 (0)