Compare commits

..

No commits in common. "master" and "v4.2.0" have entirely different histories.

17 changed files with 395 additions and 297 deletions

View File

@ -10,9 +10,6 @@ updates:
crazy-max-dot-github:
patterns:
- "crazy-max/.github/*"
codeql-actions:
patterns:
- "github/codeql-action/*"
labels:
- "dependencies"
- "bot"

View File

@ -35,7 +35,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
id: buildx
@ -54,7 +54,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx 1
uses: ./
@ -67,7 +67,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Stop docker
run: |
@ -95,7 +95,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create Dockerfile
run: |
@ -105,7 +105,7 @@ jobs:
EOL
-
name: Set up QEMU
uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
-
name: Set up Docker Buildx
uses: ./
@ -113,7 +113,7 @@ jobs:
buildkitd-flags: --debug
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/ppc64le
@ -129,7 +129,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -152,7 +152,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -165,7 +165,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -198,7 +198,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create context
run: |
@ -220,7 +220,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create buildkitd conf
run: |
@ -243,7 +243,7 @@ jobs:
buildkitd-config: /tmp/buildkitd.toml
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
@ -252,7 +252,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create Dockerfile
run: |
@ -270,7 +270,7 @@ jobs:
mirrors = ["mirror.gcr.io"]
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
@ -288,10 +288,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up QEMU
uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
with:
platforms: ${{ matrix.qemu-platforms }}
-
@ -317,7 +317,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -331,7 +331,7 @@ jobs:
EOL
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
@ -340,7 +340,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Uninstall docker cli
run: |
@ -368,7 +368,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Uninstall docker cli
run: |
@ -390,7 +390,7 @@ jobs:
EOL
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
@ -399,7 +399,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create dummy contexts
run: |
@ -428,10 +428,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up QEMU
uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
-
name: Set up Docker Buildx
uses: ./
@ -443,7 +443,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Create Docker context
run: |
@ -466,7 +466,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -485,10 +485,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Install k3s
uses: crazy-max/.github/.github/actions/install-k3s@f91220cba053bd54299ba645a599ee8ed436f222 # v1.11.0
uses: crazy-max/.github/.github/actions/install-k3s@46267a6e61cd56aac2fc79943df180152f4c89d6 # v1.10.1
-
name: Set up Docker Buildx
id: buildx
@ -518,7 +518,7 @@ jobs:
EOL
-
name: Build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
@ -533,7 +533,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -546,7 +546,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
id: buildx
@ -567,7 +567,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
@ -586,7 +586,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
id: buildx

View File

@ -22,7 +22,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Enable corepack
run: |
@ -30,17 +30,17 @@ jobs:
yarn --version
-
name: Set up Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ env.NODE_VERSION }}
-
name: Initialize CodeQL
uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
languages: javascript-typescript
build-mode: none
-
name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
category: "/language:javascript-typescript"

View File

@ -11,7 +11,7 @@ on:
jobs:
run:
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@f91220cba053bd54299ba645a599ee8ed436f222 # v1.11.0
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@46267a6e61cd56aac2fc79943df180152f4c89d6 # v1.10.1
permissions:
contents: read
pull-requests: write

View File

@ -22,7 +22,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Publish
uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4

View File

@ -20,13 +20,13 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Set up Docker Buildx
uses: ./
-
name: Test
uses: docker/bake-action@d3418bd7d0e9324001bca92fa8ba175ea7e6dc9b # v7.3.0
uses: docker/bake-action@6614cfa25eff9a0b2b2697efb0b6159e7680d584 # v7.2.0
with:
source: .
targets: test

View File

@ -30,14 +30,14 @@ jobs:
permission-contents: write
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
token: ${{ steps.docker-read-app.outputs.token }}
-
name: Build
uses: docker/bake-action@d3418bd7d0e9324001bca92fa8ba175ea7e6dc9b # v7.3.0
uses: docker/bake-action@6614cfa25eff9a0b2b2697efb0b6159e7680d584 # v7.2.0
with:
source: .
targets: build

View File

@ -22,11 +22,11 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
-
name: Generate matrix
id: generate
uses: docker/bake-action/subaction/matrix@d3418bd7d0e9324001bca92fa8ba175ea7e6dc9b # v7.3.0
uses: docker/bake-action/subaction/matrix@6614cfa25eff9a0b2b2697efb0b6159e7680d584 # v7.2.0
with:
target: validate
@ -41,6 +41,6 @@ jobs:
steps:
-
name: Validate
uses: docker/bake-action@d3418bd7d0e9324001bca92fa8ba175ea7e6dc9b # v7.3.0
uses: docker/bake-action@6614cfa25eff9a0b2b2697efb0b6159e7680d584 # v7.2.0
with:
targets: ${{ matrix.target }}

View File

@ -19,7 +19,7 @@ on:
jobs:
zizmor:
uses: crazy-max/.github/.github/workflows/zizmor.yml@f91220cba053bd54299ba645a599ee8ed436f222 # v1.11.0
uses: crazy-max/.github/.github/workflows/zizmor.yml@46267a6e61cd56aac2fc79943df180152f4c89d6 # v1.10.1
permissions:
contents: read
security-events: write

View File

@ -234,7 +234,7 @@ describe('getCreateArgs', () => {
],
[
10,
'v0.37.0',
'v0.10.3',
new Map<string, string>([
['use', 'false'],
['driver', 'cloud'],
@ -301,25 +301,6 @@ describe('getCreateArgs', () => {
expect(res).toEqual(expected);
}
);
test('rejects cloud driver with unsupported official Buildx', async () => {
setInput('version', 'v0.36.1');
setInput('driver', 'cloud');
setInput('use', 'true');
setInput('cache-binary', 'true');
setInput('cleanup', 'true');
setInput('keep-state', 'false');
const toolkit = new Toolkit();
const versionSpy = vi.spyOn(Buildx.prototype, 'version').mockImplementation(async (): Promise<string> => {
return 'v0.36.1';
});
try {
const inp = await context.getInputs();
await expect(context.getCreateArgs(inp, toolkit)).rejects.toThrow(/requires Buildx v0.37.0 or later/);
} finally {
versionSpy.mockRestore();
}
});
});
describe('getAppendArgs', () => {
@ -380,6 +361,140 @@ describe('getAppendArgs', () => {
);
});
describe('getVersion', () => {
beforeEach(() => {
process.env = Object.keys(process.env).reduce((object, key) => {
if (!key.startsWith('INPUT_')) {
object[key] = process.env[key];
}
return object;
}, {});
});
// prettier-ignore
test.each([
[
0,
new Map<string, string>([
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
''
],
[
1,
new Map<string, string>([
['version', 'latest'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'latest'
],
[
2,
new Map<string, string>([
['version', 'edge'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'edge'
],
[
3,
new Map<string, string>([
['version', 'v0.19.2'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'v0.19.2'
],
[
4,
new Map<string, string>([
['version', 'latest'],
['driver', 'cloud'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'cloud:latest'
],
[
5,
new Map<string, string>([
['version', 'edge'],
['driver', 'cloud'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'cloud:edge'
],
[
6,
new Map<string, string>([
['driver', 'cloud'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'cloud:latest'
],
[
7,
new Map<string, string>([
['version', 'cloud:v0.11.2-desktop.2'],
['driver', 'cloud'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'cloud:v0.11.2-desktop.2'
],
[
8,
new Map<string, string>([
['version', 'cloud:v0.11.2-desktop.2'],
// defaults
['use', 'true'],
['cache-binary', 'true'],
['cleanup', 'true'],
['keep-state', 'false']
]),
'cloud:v0.11.2-desktop.2'
],
])(
'[%d] given %o as inputs, returns version %o',
async (num: number, inputs: Map<string, string>, expected: string) => {
inputs.forEach((value: string, name: string) => {
setInput(name, value);
});
const inp = await context.getInputs();
expect(context.getVersion(inp)).toEqual(expected);
}
);
});
// See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67
function getInputName(name: string): string {
return `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;

216
dist/index.cjs generated vendored

File diff suppressed because one or more lines are too long

8
dist/index.cjs.map generated vendored

File diff suppressed because one or more lines are too long

21
dist/licenses.txt generated vendored
View File

@ -216,7 +216,7 @@ Apache License
The following npm package may be included in this product:
- @docker/actions-toolkit@0.100.0
- @docker/actions-toolkit@0.92.0
This package contains the following license:
@ -1790,12 +1790,11 @@ SOFTWARE.
-----------
The following npm packages may be included in this product:
The following npm package may be included in this product:
- js-yaml@5.4.1
- js-yaml@5.4.2
- js-yaml@5.2.0
These packages each contain the following license:
This package contains the following license:
(The MIT License)
@ -2560,7 +2559,7 @@ END OF TERMS AND CONDITIONS
The following npm package may be included in this product:
- @sigstore/verify@4.1.2
- @sigstore/verify@4.1.0
This package contains the following license:
@ -3217,7 +3216,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
The following npm packages may be included in this product:
- brace-expansion@1.1.18
- brace-expansion@1.1.13
- brace-expansion@2.0.1
These packages each contain the following license:
@ -3602,7 +3601,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
The following npm package may be included in this product:
- undici@6.28.0
- undici@6.27.0
This package contains the following license:
@ -4188,7 +4187,7 @@ THE SOFTWARE.
The following npm package may be included in this product:
- csv-parse@7.0.2
- csv-parse@7.0.0
This package contains the following license:
@ -4314,7 +4313,7 @@ The following npm packages may be included in this product:
- pump@2.0.1
- pumpify@1.5.1
- tar-stream@3.1.7
- tar-stream@3.2.1
- tar-stream@3.2.0
These packages each contain the following license:
@ -4833,7 +4832,7 @@ THE SOFTWARE.
The following npm packages may be included in this product:
- @actions/artifact@6.2.1
- @actions/cache@6.2.0
- @actions/cache@6.1.0
- @actions/core@3.0.0
- @actions/core@3.0.1
- @actions/exec@3.0.0

View File

@ -24,8 +24,8 @@
"packageManager": "yarn@4.15.0",
"dependencies": {
"@actions/core": "^3.0.1",
"@docker/actions-toolkit": "^0.100.0",
"js-yaml": "^5.4.2"
"@docker/actions-toolkit": "^0.92.0",
"js-yaml": "^5.2.0"
},
"devDependencies": {
"@eslint/js": "^9.39.3",

View File

@ -52,9 +52,6 @@ export async function getBuilderName(name: string, driver: string): Promise<stri
export async function getCreateArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
const args: Array<string> = ['create', '--name', inputs.name, '--driver', inputs.driver];
if (inputs.driver === 'cloud' && !inputs.version.startsWith('cloud:') && !inputs.version.startsWith('lab:') && !(await toolkit.buildx.versionSatisfies('>=0.37.0-0'))) {
throw new Error(`Docker Build Cloud with official Buildx requires Buildx v0.37.0 or later. Set version to cloud:<version> or lab:<version> to use the legacy Docker Build Cloud release channel.`);
}
if (await toolkit.buildx.versionSatisfies('>=0.3.0')) {
await Util.asyncForEach(inputs.driverOpts, async (driverOpt: string) => {
args.push('--driver-opt', driverOpt);
@ -119,3 +116,17 @@ export async function getInspectArgs(inputs: Inputs, toolkit: Toolkit): Promise<
function driverSupportsBuildkitdFlags(driver: string): boolean {
return driver == '' || driver == 'docker-container' || driver == 'docker' || driver == 'kubernetes';
}
export function getVersion(inputs: Inputs): string {
const version = inputs.version;
if (inputs.driver === 'cloud') {
if (!version || version === 'latest') {
return 'cloud:latest';
}
if (version.startsWith('cloud:') || version.startsWith('lab:')) {
return version;
}
return `cloud:${version}`;
}
return version;
}

View File

@ -22,6 +22,7 @@ actionsToolkit.run(
async () => {
const inputs: context.Inputs = await context.getInputs();
stateHelper.setCleanup(inputs.cleanup);
const version = context.getVersion(inputs);
const toolkit = new Toolkit();
const standalone = await toolkit.buildx.isStandalone();
@ -43,17 +44,17 @@ actionsToolkit.run(
});
let toolPath;
if (Util.isValidRef(inputs.version)) {
if (Util.isValidRef(version)) {
if (standalone) {
throw new Error(`Cannot build from source without the Docker CLI`);
}
await core.group(`Build buildx from source`, async () => {
toolPath = await toolkit.buildxInstall.build(inputs.version, !inputs.cacheBinary);
toolPath = await toolkit.buildxInstall.build(version, !inputs.cacheBinary);
});
} else if (!(await toolkit.buildx.isAvailable()) || inputs.version || (inputs.driver === 'cloud' && !inputs.version && !(await toolkit.buildx.versionSatisfies('>=0.37.0-0')))) {
} else if (!(await toolkit.buildx.isAvailable()) || version) {
await core.group(`Download buildx from GitHub Releases`, async () => {
toolPath = await toolkit.buildxInstall.download({
version: inputs.version || 'latest',
version: version || 'latest',
ghaNoCache: !inputs.cacheBinary
});
});
@ -90,8 +91,8 @@ actionsToolkit.run(
ignoreReturnCode: true,
silent: true
}).then(res => {
if (res.exitCode != 0) {
core.info(`Cannot inspect default docker context: ${Docker.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
core.info(`Cannot inspect default docker context: ${res.stderr.trim()}`);
} else {
try {
const contextInfo = (<Array<ContextInfo>>JSON.parse(res.stdout.trim()))[0];
@ -112,8 +113,8 @@ actionsToolkit.run(
await Docker.getExecOutput(['context', 'create', tmpDockerContext], {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
core.warning(`Cannot create docker context ${tmpDockerContext}: ${Docker.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
core.warning(`Cannot create docker context ${tmpDockerContext}: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
} else {
core.info(`Setting builder endpoint to ${tmpDockerContext} context`);
inputs.endpoint = tmpDockerContext;
@ -141,8 +142,8 @@ actionsToolkit.run(
await Exec.getExecOutput(createCmd.command, createCmd.args, {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
throw new Error(`Failed to create builder ${inputs.name}: ${Buildx.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
}
});
}
@ -166,8 +167,8 @@ actionsToolkit.run(
await Exec.getExecOutput(appendCmd.command, appendCmd.args, {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
throw new Error(`Failed to append node ${node.name}: ${Buildx.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(`Failed to append node ${node.name}: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
}
});
nodeIndex++;
@ -180,8 +181,8 @@ actionsToolkit.run(
await Exec.getExecOutput(inspectCmd.command, inspectCmd.args, {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
throw new Error(`Failed to boot builder: ${Buildx.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
}
});
});
@ -225,8 +226,8 @@ actionsToolkit.run(
await Docker.getExecOutput(['logs', `${stateHelper.containerName}`], {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
core.warning(`Failed to display BuildKit logs: ${Docker.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
core.warning(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
}
});
});
@ -245,8 +246,8 @@ actionsToolkit.run(
await Exec.getExecOutput(rmCmd.command, rmCmd.args, {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
core.warning(`Failed to remove builder ${stateHelper.builderName}: ${Buildx.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
core.warning(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
}
});
} else {
@ -260,8 +261,8 @@ actionsToolkit.run(
await Exec.getExecOutput('docker', ['context', 'rm', '-f', stateHelper.tmpDockerContext], {
ignoreReturnCode: true
}).then(res => {
if (res.exitCode != 0) {
core.warning(`Failed to remove temp docker context ${stateHelper.tmpDockerContext}: ${Docker.getErrorMessage(res.stderr)}`);
if (res.stderr.length > 0 && res.exitCode != 0) {
core.warning(`${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
}
});
});

133
yarn.lock
View File

@ -34,9 +34,9 @@ __metadata:
languageName: node
linkType: hard
"@actions/cache@npm:^6.2.0":
version: 6.2.0
resolution: "@actions/cache@npm:6.2.0"
"@actions/cache@npm:^6.1.0":
version: 6.1.0
resolution: "@actions/cache@npm:6.1.0"
dependencies:
"@actions/core": "npm:^3.0.1"
"@actions/exec": "npm:^3.0.0"
@ -47,7 +47,7 @@ __metadata:
"@azure/storage-blob": "npm:^12.31.0"
"@protobuf-ts/runtime-rpc": "npm:^2.11.1"
semver: "npm:^7.7.4"
checksum: 10/b2b3d219d3458b6b7e8f47ff6a83a0566f0b3cd5b257e307636d2147f892e595ce8cecbc0675590a57d0eb4d4d73564d08d28753baa50934ad59a65cbee2d8fa
checksum: 10/0cd89f335c1e89f514d56060110bfddc6ab1112ec0091533364c32aec2621896112cde71cfc4089b86d00f3b5478996088e4c4e0aba0aec32aae0afeb4921b3d
languageName: node
linkType: hard
@ -437,12 +437,12 @@ __metadata:
languageName: node
linkType: hard
"@docker/actions-toolkit@npm:^0.100.0":
version: 0.100.0
resolution: "@docker/actions-toolkit@npm:0.100.0"
"@docker/actions-toolkit@npm:^0.92.0":
version: 0.92.0
resolution: "@docker/actions-toolkit@npm:0.92.0"
dependencies:
"@actions/artifact": "npm:^6.2.1"
"@actions/cache": "npm:^6.2.0"
"@actions/cache": "npm:^6.1.0"
"@actions/core": "npm:^3.0.1"
"@actions/exec": "npm:^3.0.0"
"@actions/github": "npm:^9.1.1"
@ -451,18 +451,18 @@ __metadata:
"@actions/tool-cache": "npm:^4.0.0"
"@sigstore/bundle": "npm:^5.0.0"
"@sigstore/tuf": "npm:^5.0.0"
"@sigstore/verify": "npm:^4.1.2"
"@sigstore/verify": "npm:^4.1.0"
async-retry: "npm:^1.3.3"
csv-parse: "npm:^7.0.2"
csv-parse: "npm:^7.0.0"
gunzip-maybe: "npm:^1.4.2"
handlebars: "npm:^4.7.9"
he: "npm:^1.2.0"
js-yaml: "npm:^5.4.1"
js-yaml: "npm:^5.2.0"
jwt-decode: "npm:^4.0.0"
semver: "npm:^7.8.5"
tar-stream: "npm:^3.2.1"
tar-stream: "npm:^3.2.0"
tmp: "npm:^0.2.7"
checksum: 10/74eaa1afb1887ed2974e403870205889844d42eb527550309819fd24b80484b92ebf95ba4ee01eef607b66acd655a8457fc25a6d27ff2f81e842705ff98b1976
checksum: 10/599cea84b897069c53744a2f05371c6d9ad60da18448b4431273529b92fd2d77ddc718ee205cf0bf1da53083d412da90b1067f1e64a5fdac73fe71d486726064
languageName: node
linkType: hard
@ -934,30 +934,20 @@ __metadata:
languageName: node
linkType: hard
"@humanfs/core@npm:^0.19.2":
version: 0.19.2
resolution: "@humanfs/core@npm:0.19.2"
dependencies:
"@humanfs/types": "npm:^0.15.0"
checksum: 10/c6c0273721ec8df3d36a57c390a11a168d0a2f513d78bceb25165bded4fcb73609b1a317edc6c8f331cefd4b47285dde0b1e6679e08ef7f062232ec14fe05312
"@humanfs/core@npm:^0.19.1":
version: 0.19.1
resolution: "@humanfs/core@npm:0.19.1"
checksum: 10/270d936be483ab5921702623bc74ce394bf12abbf57d9145a69e8a0d1c87eb1c768bd2d93af16c5705041e257e6d9cc7529311f63a1349f3678abc776fc28523
languageName: node
linkType: hard
"@humanfs/node@npm:^0.16.6":
version: 0.16.8
resolution: "@humanfs/node@npm:0.16.8"
version: 0.16.7
resolution: "@humanfs/node@npm:0.16.7"
dependencies:
"@humanfs/core": "npm:^0.19.2"
"@humanfs/types": "npm:^0.15.0"
"@humanfs/core": "npm:^0.19.1"
"@humanwhocodes/retry": "npm:^0.4.0"
checksum: 10/ed01b3c066d9cec7526d139b9e71ca00ee4a30b3b5f5f5c198eb069c3509a3e167e180ba7e1e5a83b9571e906c4908bd20402b47586887452311af7354995e95
languageName: node
linkType: hard
"@humanfs/types@npm:^0.15.0":
version: 0.15.0
resolution: "@humanfs/types@npm:0.15.0"
checksum: 10/dea3cc7fd8f8d4d088ed8d0a9921cf12bd8e1cdf40a6133106b03a6e2aebcc9a6f1771b3643b7ec71baae90d08245db34069dfcc861da8d678662741e6c3c986
checksum: 10/b3633d3dce898592cac515ba5e6693c78e6be92863541d3eaf2c009b10f52b2fa62ff6e6e06f240f2447ddbe7b5f1890bc34e9308470675c876eee207553a08d
languageName: node
linkType: hard
@ -1724,14 +1714,14 @@ __metadata:
languageName: node
linkType: hard
"@sigstore/verify@npm:^4.1.2":
version: 4.1.2
resolution: "@sigstore/verify@npm:4.1.2"
"@sigstore/verify@npm:^4.1.0":
version: 4.1.0
resolution: "@sigstore/verify@npm:4.1.0"
dependencies:
"@sigstore/bundle": "npm:^5.0.0"
"@sigstore/core": "npm:^4.0.1"
"@sigstore/protobuf-specs": "npm:^0.5.0"
checksum: 10/a888502f3623e03a47939432ecd3ee441258aafbea2b952b32b872d73b5d14c437b49aee7979538c7b7c9673c7d7951d600a4b12b8242a3402fc83ace38bad12
checksum: 10/63d34a885d15fb37a111e6a85df61ba6a4247efa15d6989b83328043fe2c7be38b0b87b8e0c26cb906809920fde344eaab37fb34f0acd0d8b97c80bfdaa14f62
languageName: node
linkType: hard
@ -2443,12 +2433,12 @@ __metadata:
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.18
resolution: "brace-expansion@npm:1.1.18"
version: 1.1.13
resolution: "brace-expansion@npm:1.1.13"
dependencies:
balanced-match: "npm:^1.0.0"
concat-map: "npm:0.0.1"
checksum: 10/b55a3c03239b8d2127c7cbb3408c9ad3a556a8c303bf3064df78bfb7c093160fc8f6e0a32e42a850a78eba12f29ccf6ef997690b9acf945d242c56c61c4aa977
checksum: 10/b5f4329fdbe9d2e25fa250c8f866ebd054ba946179426e99b86dcccddabdb1d481f0e40ee5430032e62a7d0a6c2837605ace6783d015aa1d65d85ca72154d936
languageName: node
linkType: hard
@ -2784,10 +2774,10 @@ __metadata:
languageName: node
linkType: hard
"csv-parse@npm:^7.0.2":
version: 7.0.2
resolution: "csv-parse@npm:7.0.2"
checksum: 10/66158491d25b2070908c6d28130c1d439bec0e0d1ab3fad372973909e573bcc85a46ca317ae410f0178157f272112e3741b164aaf850d8241128c30ea2137670
"csv-parse@npm:^7.0.0":
version: 7.0.0
resolution: "csv-parse@npm:7.0.0"
checksum: 10/53c96e6b4ff80047713bb4d2967d06495890d4b628284a80271860be089fdb5a74cd97c76fd535a00ad26b11cc6e4fc5a243658e5377c0a6334ddd104620d169
languageName: node
linkType: hard
@ -2836,7 +2826,7 @@ __metadata:
resolution: "docker-setup-buildx@workspace:."
dependencies:
"@actions/core": "npm:^3.0.1"
"@docker/actions-toolkit": "npm:^0.100.0"
"@docker/actions-toolkit": "npm:^0.92.0"
"@eslint/js": "npm:^9.39.3"
"@types/js-yaml": "npm:^4.0.9"
"@types/node": "npm:^24.11.0"
@ -2850,7 +2840,7 @@ __metadata:
eslint-plugin-prettier: "npm:^5.5.5"
generate-license-file: "npm:^4.1.1"
globals: "npm:^17.3.0"
js-yaml: "npm:^5.4.2"
js-yaml: "npm:^5.2.0"
prettier: "npm:^3.8.1"
typescript: "npm:^5.9.3"
vitest: "npm:^4.0.18"
@ -4007,25 +3997,14 @@ __metadata:
languageName: node
linkType: hard
"js-yaml@npm:^5.4.1":
version: 5.4.1
resolution: "js-yaml@npm:5.4.1"
"js-yaml@npm:^5.2.0":
version: 5.2.0
resolution: "js-yaml@npm:5.2.0"
dependencies:
argparse: "npm:^2.0.1"
bin:
js-yaml: bin/js-yaml.mjs
checksum: 10/6fff9ee00bd59aeb7e1484b4281f5e927b117cbfbf3ffa6c0fef0c58519317eb61527e93c4aa70f417709229bc1eeed63cba773913577a64405975a72fba7180
languageName: node
linkType: hard
"js-yaml@npm:^5.4.2":
version: 5.4.2
resolution: "js-yaml@npm:5.4.2"
dependencies:
argparse: "npm:^2.0.1"
bin:
js-yaml: bin/js-yaml.mjs
checksum: 10/f2461abd1d6268fb226733f0a0e0aa48004bb824116e3dfa75f1a1279001936343b672066dfecdb852ac3ca883452706c383a760aa90430cb68ba395aa2cbc84
checksum: 10/8a5e55c5d0fcafae4ac02114a99dc070048b8e5a82a056089ce1f69f8a00fd8eb05b622e76ad50aac1f9d409010636c9616c6b2ed4e58dae138379a60d301220
languageName: node
linkType: hard
@ -4527,12 +4506,12 @@ __metadata:
languageName: node
linkType: hard
"nanoid@npm:^3.3.16":
version: 3.3.16
resolution: "nanoid@npm:3.3.16"
"nanoid@npm:^3.3.11":
version: 3.3.11
resolution: "nanoid@npm:3.3.11"
bin:
nanoid: bin/nanoid.cjs
checksum: 10/8004af92b5541af1dbd23b69845b5026f777d5b7ef07163cea1837aae86e052ced8b383cecbf8a4f1b5e77ae207df96dc45e16b9e0fa3c4b761d085f1e42851b
checksum: 10/73b5afe5975a307aaa3c95dfe3334c52cdf9ae71518176895229b8d65ab0d1c0417dd081426134eb7571c055720428ea5d57c645138161e7d10df80815527c48
languageName: node
linkType: hard
@ -4945,23 +4924,23 @@ __metadata:
linkType: hard
"postcss-selector-parser@npm:^7.0.0":
version: 7.1.5
resolution: "postcss-selector-parser@npm:7.1.5"
version: 7.1.1
resolution: "postcss-selector-parser@npm:7.1.1"
dependencies:
cssesc: "npm:^3.0.0"
util-deprecate: "npm:^1.0.2"
checksum: 10/ae66bbcb5d370a3f4b4660e23a208352a885c651f1b420f7b998faaa1034832b870066f49e295f73ee3da6a6c6312c56fea1b2039969f8d803438fa48232b307
checksum: 10/bb3c6455b20af26a556e3021e21101d8470252644e673c1612f7348ff8dd41b11321329f0694cf299b5b94863f823480b72d3e2f4bd3a89dc43e2d8c0dbad341
languageName: node
linkType: hard
"postcss@npm:^8.5.6":
version: 8.5.25
resolution: "postcss@npm:8.5.25"
version: 8.5.10
resolution: "postcss@npm:8.5.10"
dependencies:
nanoid: "npm:^3.3.16"
nanoid: "npm:^3.3.11"
picocolors: "npm:^1.1.1"
source-map-js: "npm:^1.2.1"
checksum: 10/68aaeb314a1b2407e11e926acc0462b01b3e911d3d9e755d06adc5b2ececdefe8432dc3c3c93eacc07138952e17997d4674529061b8e3a338a7ac4c1accfdf98
checksum: 10/7eac6169e535b63c8412e94d4f6047fc23efa3e9dde804b541940043c831b25f1cd867d83cd2c4371ad2450c8abcb42c208aa25668c1f0f3650d7f72faf711a8
languageName: node
linkType: hard
@ -5642,15 +5621,15 @@ __metadata:
languageName: node
linkType: hard
"tar-stream@npm:^3.2.1":
version: 3.2.1
resolution: "tar-stream@npm:3.2.1"
"tar-stream@npm:^3.2.0":
version: 3.2.0
resolution: "tar-stream@npm:3.2.0"
dependencies:
b4a: "npm:^1.6.4"
bare-fs: "npm:^4.5.5"
fast-fifo: "npm:^1.2.0"
streamx: "npm:^2.15.0"
checksum: 10/1a09f857e0789489476d99fb716fa6d209e7d19aa73b7a4b23f40eeba46792d5007ca62fde4fca8f643ed71ace1c526a293c655718a0409275a45a8aa86b562a
checksum: 10/ce57a81521de73ae7a3b7d55a08da50d6771427c249bfa89a208518e48faf5254c8fa7201a8f5419ab8bde9601a74e6dd512b31a13ec89774aec96178f99a8d3
languageName: node
linkType: hard
@ -5889,9 +5868,9 @@ __metadata:
linkType: hard
"undici@npm:^6.23.0, undici@npm:^6.25.0":
version: 6.28.0
resolution: "undici@npm:6.28.0"
checksum: 10/672a7a53bd1f6c80edb73b357ab36e98ef9e474024c442aab2b8ea2bc32f1103cab05525c78661ae724f3e1340e23d03efb9730fba28e76218ab0ec52e15d75a
version: 6.27.0
resolution: "undici@npm:6.27.0"
checksum: 10/30c18cdb235edf4dd36f8aa3ace1ffaf44060289a7d62ad44c33180d2d74a224015d25574812f62ce9c625b5beb1b0b766495b650fedf356aca11eed7ce2c816
languageName: node
linkType: hard