diff --git a/__tests__/buildx/buildx.test.ts b/__tests__/buildx/buildx.test.ts index d62e1a15..a8767802 100644 --- a/__tests__/buildx/buildx.test.ts +++ b/__tests__/buildx/buildx.test.ts @@ -288,6 +288,13 @@ describe('localState', () => { DockerfilePath: '' } as LocalState, ], + [ + 'default/default/dfsz8r57a98zf789pmlyzqp3n', + { + LocalPath: 'https://github.com/docker/actions-toolkit.git#:__tests__/fixtures', + DockerfilePath: 'hello.Dockerfile' + } as LocalState, + ], [ 'default/default/w38vcd5fo5cfvfyig77qjec0v', { @@ -296,7 +303,7 @@ describe('localState', () => { } as LocalState, ] ])('given %p', async (ref: string, expected: LocalState) => { - const localState = Buildx.localState(path.join(fixturesDir, 'buildx-refs'), ref); + const localState = Buildx.localState(ref, path.join(fixturesDir, 'buildx-refs')); expect(localState).toEqual(expected); }); }); @@ -306,14 +313,14 @@ describe('refs', () => { const refs = Buildx.refs({ dir: path.join(fixturesDir, 'buildx-refs') }); - expect(Object.keys(refs).length).toEqual(16); + expect(Object.keys(refs).length).toEqual(17); }); it('returns default builder refs', async () => { const refs = Buildx.refs({ dir: path.join(fixturesDir, 'buildx-refs'), builderName: 'default' }); - expect(Object.keys(refs).length).toEqual(13); + expect(Object.keys(refs).length).toEqual(14); }); it('returns foo builder refs', async () => { const refs = Buildx.refs({ @@ -332,6 +339,6 @@ describe('refs', () => { builderName: 'default', since: new Date('2024-01-10T00:00:00Z') }); - expect(Object.keys(refs).length).toEqual(10); + expect(Object.keys(refs).length).toEqual(11); }); }); diff --git a/__tests__/fixtures/buildx-refs/default/default/dfsz8r57a98zf789pmlyzqp3n b/__tests__/fixtures/buildx-refs/default/default/dfsz8r57a98zf789pmlyzqp3n new file mode 100644 index 00000000..1870ff01 --- /dev/null +++ b/__tests__/fixtures/buildx-refs/default/default/dfsz8r57a98zf789pmlyzqp3n @@ -0,0 +1 @@ +{"LocalPath":"https://github.com/docker/actions-toolkit.git#:__tests__/fixtures","DockerfilePath":"hello.Dockerfile"} diff --git a/src/buildx/buildx.ts b/src/buildx/buildx.ts index 728d9dd4..97eb4f81 100644 --- a/src/buildx/buildx.ts +++ b/src/buildx/buildx.ts @@ -177,12 +177,12 @@ export class Buildx { return driverOpts; } - public static localState(dir: string, ref: string): LocalState { + public static localState(ref: string, dir?: string): LocalState { const [builderName, nodeName, id] = ref.split('/'); if (!builderName || !nodeName || !id) { throw new Error(`Invalid build reference: ${ref}`); } - const lsPath = path.join(dir, builderName, nodeName, id); + const lsPath = path.join(dir || Buildx.refsDir, builderName, nodeName, id); if (!fs.existsSync(lsPath)) { throw new Error(`Local state not found in ${lsPath}`); }