diff --git a/__tests__/context.test.ts b/__tests__/context.test.ts index 74898bb2..8a2b3674 100644 --- a/__tests__/context.test.ts +++ b/__tests__/context.test.ts @@ -1,6 +1,7 @@ import {beforeEach, describe, expect, jest, test} from '@jest/globals'; import * as fs from 'fs'; import * as path from 'path'; +import * as uuid from 'uuid'; import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx'; import {Context} from '@docker/actions-toolkit/lib/context'; import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; @@ -25,7 +26,8 @@ jest.spyOn(Context, 'tmpName').mockImplementation((): string => { return tmpName; }); -jest.spyOn(crypto, 'randomUUID').mockReturnValue('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'); +jest.mock('uuid'); +jest.spyOn(uuid, 'v4').mockReturnValue('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'); jest.spyOn(Docker, 'context').mockImplementation((): Promise => { return Promise.resolve('default'); diff --git a/package.json b/package.json index d8c02366..bc0dfdd6 100644 --- a/package.json +++ b/package.json @@ -27,11 +27,13 @@ "dependencies": { "@actions/core": "^1.10.1", "@docker/actions-toolkit": "^0.39.0", - "js-yaml": "^4.1.0" + "js-yaml": "^4.1.0", + "uuid": "^10.0.0" }, "devDependencies": { "@types/js-yaml": "^4.0.9", "@types/node": "^20.12.12", + "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^7.9.0", "@typescript-eslint/parser": "^7.9.0", "@vercel/ncc": "^0.38.1", diff --git a/src/context.ts b/src/context.ts index 263cfb23..4fb8d47e 100644 --- a/src/context.ts +++ b/src/context.ts @@ -1,3 +1,4 @@ +import * as uuid from 'uuid'; import * as core from '@actions/core'; import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; @@ -46,7 +47,7 @@ export async function getInputs(): Promise { } export async function getBuilderName(driver: string): Promise { - return driver == 'docker' ? await Docker.context() : `builder-${crypto.randomUUID()}`; + return driver == 'docker' ? await Docker.context() : `builder-${uuid.v4()}`; } export async function getCreateArgs(inputs: Inputs, toolkit: Toolkit): Promise> { @@ -83,7 +84,7 @@ export async function getAppendArgs(inputs: Inputs, node: Node, toolkit: Toolkit if (node.name) { args.push('--node', node.name); } else if (inputs.driver == 'kubernetes' && (await toolkit.buildx.versionSatisfies('<0.11.0'))) { - args.push('--node', `node-${crypto.randomUUID()}`); + args.push('--node', `node-${uuid.v4()}`); } if (node['driver-opts'] && (await toolkit.buildx.versionSatisfies('>=0.3.0'))) { await Util.asyncForEach(node['driver-opts'], async (driverOpt: string) => { diff --git a/src/main.ts b/src/main.ts index ffc9a71a..e2149911 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,6 @@ import * as fs from 'fs'; import * as yaml from 'js-yaml'; +import * as uuid from 'uuid'; import * as core from '@actions/core'; import * as actionsToolkit from '@docker/actions-toolkit'; @@ -97,7 +98,7 @@ actionsToolkit.run( }); }); if (defaultContextWithTLS) { - const tmpDockerContext = `buildx-${crypto.randomUUID()}`; + const tmpDockerContext = `buildx-${uuid.v4()}`; await core.group(`Creating temp docker context (TLS data loaded in default one)`, async () => { await Docker.getExecOutput(['context', 'create', tmpDockerContext], { ignoreReturnCode: true diff --git a/yarn.lock b/yarn.lock index e63e748f..34f28f6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2134,6 +2134,13 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "@types/uuid@npm:10.0.0" + checksum: e3958f8b0fe551c86c14431f5940c3470127293280830684154b91dc7eb3514aeb79fe3216968833cf79d4d1c67f580f054b5be2cd562bebf4f728913e73e944 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 20.2.0 resolution: "@types/yargs-parser@npm:20.2.0" @@ -3174,6 +3181,7 @@ __metadata: "@docker/actions-toolkit": ^0.39.0 "@types/js-yaml": ^4.0.9 "@types/node": ^20.12.12 + "@types/uuid": ^10.0.0 "@typescript-eslint/eslint-plugin": ^7.9.0 "@typescript-eslint/parser": ^7.9.0 "@vercel/ncc": ^0.38.1 @@ -3187,6 +3195,7 @@ __metadata: ts-jest: ^29.1.2 ts-node: ^10.9.2 typescript: ^5.4.5 + uuid: ^10.0.0 languageName: unknown linkType: soft @@ -6671,6 +6680,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" + bin: + uuid: dist/bin/uuid + checksum: 4b81611ade2885d2313ddd8dc865d93d8dccc13ddf901745edca8f86d99bc46d7a330d678e7532e7ebf93ce616679fb19b2e3568873ac0c14c999032acb25869 + languageName: node + linkType: hard + "uuid@npm:^3.3.2, uuid@npm:^3.3.3": version: 3.4.0 resolution: "uuid@npm:3.4.0"