mirror of
https://github.com/actions/setup-java.git
synced 2025-04-20 09:56:46 +00:00
Add "overwrite-settings" input parameter (#136)
* add overwrite-settings parameter * fix e2e tests * print debug * fix e2e tests * add comment * remove comment
This commit is contained in:
parent
7c88894700
commit
804a60faf9
10 changed files with 184 additions and 37 deletions
37
src/auth.ts
37
src/auth.ts
|
@ -8,6 +8,7 @@ import * as os from 'os';
|
|||
import { create as xmlCreate } from 'xmlbuilder2';
|
||||
import * as constants from './constants';
|
||||
import * as gpg from './gpg';
|
||||
import { getBooleanInput } from './util';
|
||||
|
||||
export const M2_DIR = '.m2';
|
||||
export const SETTINGS_FILE = 'settings.xml';
|
||||
|
@ -16,6 +17,9 @@ export async function configureAuthentication() {
|
|||
const id = core.getInput(constants.INPUT_SERVER_ID);
|
||||
const username = core.getInput(constants.INPUT_SERVER_USERNAME);
|
||||
const password = core.getInput(constants.INPUT_SERVER_PASSWORD);
|
||||
const settingsDirectory =
|
||||
core.getInput(constants.INPUT_SETTINGS_PATH) || path.join(os.homedir(), M2_DIR);
|
||||
const overwriteSettings = getBooleanInput(constants.INPUT_OVERWRITE_SETTINGS, true);
|
||||
const gpgPrivateKey =
|
||||
core.getInput(constants.INPUT_GPG_PRIVATE_KEY) || constants.INPUT_DEFAULT_GPG_PRIVATE_KEY;
|
||||
const gpgPassphrase =
|
||||
|
@ -26,7 +30,14 @@ export async function configureAuthentication() {
|
|||
core.setSecret(gpgPrivateKey);
|
||||
}
|
||||
|
||||
await createAuthenticationSettings(id, username, password, gpgPassphrase);
|
||||
await createAuthenticationSettings(
|
||||
id,
|
||||
username,
|
||||
password,
|
||||
settingsDirectory,
|
||||
overwriteSettings,
|
||||
gpgPassphrase
|
||||
);
|
||||
|
||||
if (gpgPrivateKey) {
|
||||
core.info('Importing private gpg key');
|
||||
|
@ -39,17 +50,19 @@ export async function createAuthenticationSettings(
|
|||
id: string,
|
||||
username: string,
|
||||
password: string,
|
||||
settingsDirectory: string,
|
||||
overwriteSettings: boolean,
|
||||
gpgPassphrase: string | undefined = undefined
|
||||
) {
|
||||
core.info(`Creating ${SETTINGS_FILE} with server-id: ${id}`);
|
||||
// when an alternate m2 location is specified use only that location (no .m2 directory)
|
||||
// otherwise use the home/.m2/ path
|
||||
const settingsDirectory: string = path.join(
|
||||
core.getInput(constants.INPUT_SETTINGS_PATH) || os.homedir(),
|
||||
core.getInput(constants.INPUT_SETTINGS_PATH) ? '' : M2_DIR
|
||||
);
|
||||
await io.mkdirP(settingsDirectory);
|
||||
await write(settingsDirectory, generate(id, username, password, gpgPassphrase));
|
||||
await write(
|
||||
settingsDirectory,
|
||||
generate(id, username, password, gpgPassphrase),
|
||||
overwriteSettings
|
||||
);
|
||||
}
|
||||
|
||||
// only exported for testing purposes
|
||||
|
@ -92,12 +105,18 @@ export function generate(
|
|||
});
|
||||
}
|
||||
|
||||
async function write(directory: string, settings: string) {
|
||||
async function write(directory: string, settings: string, overwriteSettings: boolean) {
|
||||
const location = path.join(directory, SETTINGS_FILE);
|
||||
if (fs.existsSync(location)) {
|
||||
const settingsExists = fs.existsSync(location);
|
||||
if (settingsExists && overwriteSettings) {
|
||||
core.info(`Overwriting existing file ${location}`);
|
||||
} else if (!settingsExists) {
|
||||
core.info(`Writing to ${location}`);
|
||||
} else {
|
||||
core.info(`Writing ${location}`);
|
||||
core.info(
|
||||
`Skipping generation ${location} because file already exists and overwriting is not required`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
return fs.writeFileSync(location, settings, {
|
||||
|
|
|
@ -8,6 +8,7 @@ export const INPUT_SERVER_ID = 'server-id';
|
|||
export const INPUT_SERVER_USERNAME = 'server-username';
|
||||
export const INPUT_SERVER_PASSWORD = 'server-password';
|
||||
export const INPUT_SETTINGS_PATH = 'settings-path';
|
||||
export const INPUT_OVERWRITE_SETTINGS = 'overwrite-settings';
|
||||
export const INPUT_GPG_PRIVATE_KEY = 'gpg-private-key';
|
||||
export const INPUT_GPG_PASSPHRASE = 'gpg-passphrase';
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ import os from 'os';
|
|||
import path from 'path';
|
||||
import * as fs from 'fs';
|
||||
import * as semver from 'semver';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import * as tc from '@actions/tool-cache';
|
||||
export function getTempDir() {
|
||||
|
@ -10,6 +11,10 @@ export function getTempDir() {
|
|||
return tempDirectory;
|
||||
}
|
||||
|
||||
export function getBooleanInput(inputName: string, defaultValue: boolean = false) {
|
||||
return (core.getInput(inputName) || String(defaultValue)).toUpperCase() === 'TRUE';
|
||||
}
|
||||
|
||||
export function getVersionFromToolcachePath(toolPath: string) {
|
||||
if (toolPath) {
|
||||
return path.basename(path.dirname(toolPath));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue