70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
|
|
import * as core from '@actions/core';
|
||
|
|
import {getBooleanInput} from './util';
|
||
|
|
import {
|
||
|
|
INPUT_SHOW_DOWNLOAD_PROGRESS,
|
||
|
|
MAVEN_ARGS_ENV,
|
||
|
|
MAVEN_NO_TRANSFER_PROGRESS_FLAG,
|
||
|
|
MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG
|
||
|
|
} from './constants';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Configures the MAVEN_ARGS environment variable so that Maven suppresses
|
||
|
|
* artifact transfer/download progress output by default, producing cleaner
|
||
|
|
* CI logs.
|
||
|
|
*
|
||
|
|
* Behavior:
|
||
|
|
* - When `show-download-progress` is `false` (the default), `-ntp`
|
||
|
|
* (`--no-transfer-progress`) is appended to any existing MAVEN_ARGS value.
|
||
|
|
* - When `show-download-progress` is `true`, MAVEN_ARGS is left untouched so
|
||
|
|
* the user's own configuration (and Maven's default progress output) is
|
||
|
|
* preserved.
|
||
|
|
*
|
||
|
|
* The change is idempotent: if MAVEN_ARGS already disables transfer progress
|
||
|
|
* (via `-ntp` or `--no-transfer-progress`) nothing is added. Any pre-existing
|
||
|
|
* MAVEN_ARGS value is preserved.
|
||
|
|
*
|
||
|
|
* MAVEN_ARGS is honored by Maven 3.9.0+ and the Maven Wrapper; older Maven
|
||
|
|
* versions ignore it, so this is a no-op there. It has no effect on non-Maven
|
||
|
|
* builds such as Gradle or sbt.
|
||
|
|
*/
|
||
|
|
export function configureMavenArgs(): void {
|
||
|
|
const showDownloadProgress = getBooleanInput(
|
||
|
|
INPUT_SHOW_DOWNLOAD_PROGRESS,
|
||
|
|
false
|
||
|
|
);
|
||
|
|
|
||
|
|
if (showDownloadProgress) {
|
||
|
|
core.debug(
|
||
|
|
`${INPUT_SHOW_DOWNLOAD_PROGRESS} is true; leaving ${MAVEN_ARGS_ENV} unchanged`
|
||
|
|
);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
const existingArgs = (process.env[MAVEN_ARGS_ENV] ?? '').trim();
|
||
|
|
|
||
|
|
const alreadyDisabled = existingArgs
|
||
|
|
.split(/\s+/)
|
||
|
|
.some(
|
||
|
|
arg =>
|
||
|
|
arg === MAVEN_NO_TRANSFER_PROGRESS_FLAG ||
|
||
|
|
arg === MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG
|
||
|
|
);
|
||
|
|
|
||
|
|
if (alreadyDisabled) {
|
||
|
|
core.debug(
|
||
|
|
`${MAVEN_ARGS_ENV} already disables transfer progress; leaving it unchanged`
|
||
|
|
);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
const updatedArgs = existingArgs
|
||
|
|
? `${existingArgs} ${MAVEN_NO_TRANSFER_PROGRESS_FLAG}`
|
||
|
|
: MAVEN_NO_TRANSFER_PROGRESS_FLAG;
|
||
|
|
|
||
|
|
core.exportVariable(MAVEN_ARGS_ENV, updatedArgs);
|
||
|
|
core.info(
|
||
|
|
`Configured ${MAVEN_ARGS_ENV} to include ${MAVEN_NO_TRANSFER_PROGRESS_FLAG} to suppress Maven transfer progress logs. ` +
|
||
|
|
`Set '${INPUT_SHOW_DOWNLOAD_PROGRESS}: true' to keep the download progress output.`
|
||
|
|
);
|
||
|
|
}
|