diff --git a/__tests__/context.test.ts b/__tests__/context.test.ts index 868b17e..2ef65fb 100644 --- a/__tests__/context.test.ts +++ b/__tests__/context.test.ts @@ -1,4 +1,6 @@ import {beforeEach, describe, expect, test} from '@jest/globals'; +import * as os from 'os'; +import * as path from 'path'; import * as context from '../src/context'; @@ -30,7 +32,8 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, - setHost: false + setHost: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -52,7 +55,8 @@ describe('getInputs', () => { context: 'foo', daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`, rootless: false, - setHost: false + setHost: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -70,7 +74,8 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, - setHost: true + setHost: true, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -90,7 +95,8 @@ describe('getInputs', () => { context: 'foo', daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`, rootless: false, - setHost: false + setHost: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -108,7 +114,8 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, - setHost: false + setHost: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -128,6 +135,7 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -147,6 +155,7 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -165,6 +174,7 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -183,6 +193,7 @@ describe('getInputs', () => { context: '', daemonConfig: '', rootless: true, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], [ @@ -203,7 +214,8 @@ describe('getInputs', () => { daemonConfig: '', tcpPort: 2378, rootless: false, - setHost: false + setHost: false, + runtimeBasedir: path.join(os.homedir(), `setup-docker-action`), } as context.Inputs ], ])( diff --git a/src/context.ts b/src/context.ts index c46cb45..201b384 100644 --- a/src/context.ts +++ b/src/context.ts @@ -1,3 +1,5 @@ +import os from 'os'; +import path from 'path'; import * as core from '@actions/core'; import {parse} from 'csv-parse/sync'; @@ -11,7 +13,7 @@ export interface Inputs { context: string; setHost: boolean; rootless: boolean; - runtimeBasedir?: string; + runtimeBasedir: string; } export function getInputs(): Inputs { @@ -29,7 +31,7 @@ export function getInputs(): Inputs { context: core.getInput('context'), setHost: core.getBooleanInput('set-host'), rootless: core.getBooleanInput('rootless'), - runtimeBasedir: core.getInput('runtime-basedir') + runtimeBasedir: core.getInput('runtime-basedir') || path.join(os.homedir(), `setup-docker-action`) }; } diff --git a/src/main.ts b/src/main.ts index 2231c7b..5a3017e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,4 @@ import * as crypto from 'crypto'; -import os from 'os'; import path from 'path'; import * as core from '@actions/core'; import * as actionsToolkit from '@docker/actions-toolkit'; @@ -18,8 +17,7 @@ actionsToolkit.run( // main async () => { const input: context.Inputs = context.getInputs(); - const runBasedir = input.runtimeBasedir || path.join(os.homedir(), `setup-docker-action`); - const runDir = path.join(runBasedir, `run-${crypto.randomUUID().slice(0, 8)}`); + const runDir = path.join(input.runtimeBasedir, `run-${crypto.randomUUID().slice(0, 8)}`); if (input.context == 'default') { throw new Error(`'default' context cannot be used.`);