mirror of
https://github.com/actions/setup-java.git
synced 2025-05-21 18:01:46 +00:00
use runner temp for private key directory
This commit is contained in:
parent
254f00368c
commit
1ecbe18c8b
@ -19,11 +19,12 @@ jest.mock('@actions/exec', () => {
|
|||||||
|
|
||||||
import * as auth from '../src/auth';
|
import * as auth from '../src/auth';
|
||||||
|
|
||||||
const env = process.env;
|
|
||||||
const m2Dir = path.join(__dirname, auth.M2_DIR);
|
const m2Dir = path.join(__dirname, auth.M2_DIR);
|
||||||
const settingsFile = path.join(m2Dir, auth.SETTINGS_FILE);
|
const settingsFile = path.join(m2Dir, auth.SETTINGS_FILE);
|
||||||
const privateKeyDir = path.join(__dirname, auth.PRIVATE_KEY_DIR);
|
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||||
const privateKeyFile = auth.PRIVATE_KEY_FILE;
|
const privateKeyFile = path.join(tempDir, auth.PRIVATE_KEY_FILE);
|
||||||
|
|
||||||
|
process.env['RUNNER_TEMP'] = tempDir;
|
||||||
|
|
||||||
describe('auth tests', () => {
|
describe('auth tests', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -33,7 +34,7 @@ describe('auth tests', () => {
|
|||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
try {
|
try {
|
||||||
await io.rmRF(m2Dir);
|
await io.rmRF(m2Dir);
|
||||||
await io.rmRF(privateKeyDir);
|
await io.rmRF(tempDir);
|
||||||
} catch {
|
} catch {
|
||||||
console.log('Failed to remove test directories');
|
console.log('Failed to remove test directories');
|
||||||
}
|
}
|
||||||
@ -176,11 +177,11 @@ describe('auth tests', () => {
|
|||||||
|
|
||||||
expect(exec.exec).toHaveBeenCalledWith(
|
expect(exec.exec).toHaveBeenCalledWith(
|
||||||
'gpg',
|
'gpg',
|
||||||
['--import', '--batch', privateKeyFile],
|
expect.anything(),
|
||||||
{cwd: privateKeyDir}
|
expect.anything()
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(fs.existsSync(privateKeyDir)).toBe(false);
|
expect(fs.existsSync(privateKeyFile)).toBe(false);
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
it('does not import gpg private key when private key is not set', async () => {
|
it('does not import gpg private key when private key is not set', async () => {
|
||||||
@ -196,6 +197,6 @@ describe('auth tests', () => {
|
|||||||
expect.anything()
|
expect.anything()
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(fs.existsSync(privateKeyDir)).toBe(false);
|
expect(fs.existsSync(privateKeyFile)).toBe(false);
|
||||||
}, 100000);
|
}, 100000);
|
||||||
});
|
});
|
||||||
|
BIN
dist/index.js
generated
vendored
BIN
dist/index.js
generated
vendored
Binary file not shown.
20
src/auth.ts
20
src/auth.ts
@ -6,8 +6,8 @@ import * as io from '@actions/io';
|
|||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
|
|
||||||
export const M2_DIR = '.m2';
|
export const M2_DIR = '.m2';
|
||||||
|
export const TEMP_DIR = process.env['RUNNER_TEMP'] || '';
|
||||||
export const SETTINGS_FILE = 'settings.xml';
|
export const SETTINGS_FILE = 'settings.xml';
|
||||||
export const PRIVATE_KEY_DIR = '.keys';
|
|
||||||
export const PRIVATE_KEY_FILE = 'private-key.asc';
|
export const PRIVATE_KEY_FILE = 'private-key.asc';
|
||||||
|
|
||||||
export const DEFAULT_ID = 'github';
|
export const DEFAULT_ID = 'github';
|
||||||
@ -46,15 +46,7 @@ export async function configAuthentication(
|
|||||||
|
|
||||||
if (gpgPrivateKey !== DEFAULT_GPG_PRIVATE_KEY) {
|
if (gpgPrivateKey !== DEFAULT_GPG_PRIVATE_KEY) {
|
||||||
console.log('importing gpg key');
|
console.log('importing gpg key');
|
||||||
const privateKeyDirectory: string = path.join(
|
await importGPG(gpgPrivateKey);
|
||||||
os.homedir(),
|
|
||||||
PRIVATE_KEY_DIR
|
|
||||||
);
|
|
||||||
await io.mkdirP(privateKeyDirectory);
|
|
||||||
core.debug(`created directory ${privateKeyDirectory}`);
|
|
||||||
await write(privateKeyDirectory, PRIVATE_KEY_FILE, gpgPrivateKey);
|
|
||||||
await importGpgKey(privateKeyDirectory, PRIVATE_KEY_FILE);
|
|
||||||
await remove(privateKeyDirectory);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +102,10 @@ async function remove(path: string) {
|
|||||||
return io.rmRF(path);
|
return io.rmRF(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function importGpgKey(directory: string, file: string) {
|
async function importGPG(gpgPrivateKey: string) {
|
||||||
return exec.exec('gpg', ['--import', '--batch', file], {cwd: directory});
|
await write(TEMP_DIR, PRIVATE_KEY_FILE, gpgPrivateKey);
|
||||||
|
await exec.exec('gpg', ['--import', '--batch', PRIVATE_KEY_FILE], {
|
||||||
|
cwd: TEMP_DIR
|
||||||
|
});
|
||||||
|
await remove(path.join(TEMP_DIR, PRIVATE_KEY_FILE));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user