mirror of
https://gitea.com/actions/setup-java.git
synced 2026-06-24 16:53:39 +08:00
Compare commits
3 Commits
feature/ma
...
chore/upgr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
333d6eb795 | ||
|
|
e652f0a8fd | ||
|
|
af5f874769 |
@@ -1,6 +0,0 @@
|
||||
# Ignore list
|
||||
/*
|
||||
|
||||
# Do not ignore these folders:
|
||||
!__tests__/
|
||||
!src/
|
||||
51
.eslintrc.js
51
.eslintrc.js
@@ -1,51 +0,0 @@
|
||||
// This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update.
|
||||
module.exports = {
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:eslint-plugin-jest/recommended',
|
||||
'eslint-config-prettier'
|
||||
],
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['@typescript-eslint', 'eslint-plugin-node', 'eslint-plugin-jest'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-require-imports': 'error',
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'off',
|
||||
'@typescript-eslint/ban-ts-comment': [
|
||||
'error',
|
||||
{
|
||||
'ts-ignore': 'allow-with-description'
|
||||
}
|
||||
],
|
||||
'no-console': 'error',
|
||||
'yoda': 'error',
|
||||
'prefer-const': [
|
||||
'error',
|
||||
{
|
||||
destructuring: 'all'
|
||||
}
|
||||
],
|
||||
'no-control-regex': 'off',
|
||||
'no-constant-condition': ['error', {checkLoops: false}],
|
||||
'node/no-extraneous-import': 'error'
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['**/*{test,spec}.ts'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'jest/no-standalone-expect': 'off',
|
||||
'jest/no-conditional-expect': 'off',
|
||||
'no-console': 'off',
|
||||
|
||||
}
|
||||
}
|
||||
],
|
||||
env: {
|
||||
node: true,
|
||||
es6: true,
|
||||
'jest/globals': true
|
||||
}
|
||||
};
|
||||
@@ -1,104 +0,0 @@
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import {configureMavenArgs} from '../src/maven-args';
|
||||
import {
|
||||
INPUT_SHOW_DOWNLOAD_PROGRESS,
|
||||
MAVEN_ARGS_ENV,
|
||||
MAVEN_NO_TRANSFER_PROGRESS_FLAG
|
||||
} from '../src/constants';
|
||||
|
||||
describe('configureMavenArgs', () => {
|
||||
let inputs: Record<string, string>;
|
||||
let spyGetInput: jest.SpyInstance;
|
||||
let spyExportVariable: jest.SpyInstance;
|
||||
let spyInfo: jest.SpyInstance;
|
||||
let spyDebug: jest.SpyInstance;
|
||||
const originalMavenArgs = process.env[MAVEN_ARGS_ENV];
|
||||
|
||||
beforeEach(() => {
|
||||
inputs = {};
|
||||
|
||||
spyGetInput = jest.spyOn(core, 'getInput');
|
||||
spyGetInput.mockImplementation((name: string) => inputs[name] ?? '');
|
||||
|
||||
spyExportVariable = jest.spyOn(core, 'exportVariable');
|
||||
spyExportVariable.mockImplementation((name: string, value: string) => {
|
||||
process.env[name] = value;
|
||||
});
|
||||
|
||||
spyInfo = jest.spyOn(core, 'info');
|
||||
spyInfo.mockImplementation(() => undefined);
|
||||
|
||||
spyDebug = jest.spyOn(core, 'debug');
|
||||
spyDebug.mockImplementation(() => undefined);
|
||||
|
||||
delete process.env[MAVEN_ARGS_ENV];
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.restoreAllMocks();
|
||||
if (originalMavenArgs === undefined) {
|
||||
delete process.env[MAVEN_ARGS_ENV];
|
||||
} else {
|
||||
process.env[MAVEN_ARGS_ENV] = originalMavenArgs;
|
||||
}
|
||||
});
|
||||
|
||||
it('sets MAVEN_ARGS with -ntp by default', () => {
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).toHaveBeenCalledWith(
|
||||
MAVEN_ARGS_ENV,
|
||||
MAVEN_NO_TRANSFER_PROGRESS_FLAG
|
||||
);
|
||||
expect(process.env[MAVEN_ARGS_ENV]).toBe(MAVEN_NO_TRANSFER_PROGRESS_FLAG);
|
||||
});
|
||||
|
||||
it('does not modify MAVEN_ARGS when show-download-progress is true', () => {
|
||||
inputs[INPUT_SHOW_DOWNLOAD_PROGRESS] = 'true';
|
||||
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).not.toHaveBeenCalled();
|
||||
expect(process.env[MAVEN_ARGS_ENV]).toBeUndefined();
|
||||
});
|
||||
|
||||
it('preserves an existing MAVEN_ARGS value and appends -ntp', () => {
|
||||
process.env[MAVEN_ARGS_ENV] = '-B -Dstyle.color=always';
|
||||
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).toHaveBeenCalledWith(
|
||||
MAVEN_ARGS_ENV,
|
||||
`-B -Dstyle.color=always ${MAVEN_NO_TRANSFER_PROGRESS_FLAG}`
|
||||
);
|
||||
});
|
||||
|
||||
it('does not duplicate the flag when -ntp is already present', () => {
|
||||
process.env[MAVEN_ARGS_ENV] = '-B -ntp';
|
||||
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).not.toHaveBeenCalled();
|
||||
expect(process.env[MAVEN_ARGS_ENV]).toBe('-B -ntp');
|
||||
});
|
||||
|
||||
it('does not duplicate the flag when --no-transfer-progress is already present', () => {
|
||||
process.env[MAVEN_ARGS_ENV] = '--no-transfer-progress -B';
|
||||
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).not.toHaveBeenCalled();
|
||||
expect(process.env[MAVEN_ARGS_ENV]).toBe('--no-transfer-progress -B');
|
||||
});
|
||||
|
||||
it('keeps the existing MAVEN_ARGS when show-download-progress is true', () => {
|
||||
inputs[INPUT_SHOW_DOWNLOAD_PROGRESS] = 'true';
|
||||
process.env[MAVEN_ARGS_ENV] = '-B';
|
||||
|
||||
configureMavenArgs();
|
||||
|
||||
expect(spyExportVariable).not.toHaveBeenCalled();
|
||||
expect(process.env[MAVEN_ARGS_ENV]).toBe('-B');
|
||||
});
|
||||
});
|
||||
@@ -75,10 +75,6 @@ inputs:
|
||||
mvn-toolchain-vendor:
|
||||
description: 'Name of Maven Toolchain Vendor if the default name of "${distribution}" is not wanted. See examples of supported syntax in Advanced Usage file'
|
||||
required: false
|
||||
show-download-progress:
|
||||
description: 'Whether Maven should print artifact download/transfer progress to the build log. When "false" (default) the action sets "-ntp" (--no-transfer-progress) in MAVEN_ARGS to produce cleaner logs. Set to "true" to keep the progress output. Has no effect on non-Maven builds.'
|
||||
required: false
|
||||
default: false
|
||||
outputs:
|
||||
distribution:
|
||||
description: 'Distribution of Java that has been installed'
|
||||
|
||||
6
dist/cleanup/index.js
vendored
6
dist/cleanup/index.js
vendored
@@ -52241,7 +52241,7 @@ else {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG = exports.MAVEN_NO_TRANSFER_PROGRESS_FLAG = exports.MAVEN_ARGS_ENV = exports.INPUT_SHOW_DOWNLOAD_PROGRESS = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
|
||||
exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home';
|
||||
exports.INPUT_JAVA_VERSION = 'java-version';
|
||||
exports.INPUT_JAVA_VERSION_FILE = 'java-version-file';
|
||||
@@ -52268,10 +52268,6 @@ exports.MVN_SETTINGS_FILE = 'settings.xml';
|
||||
exports.MVN_TOOLCHAINS_FILE = 'toolchains.xml';
|
||||
exports.INPUT_MVN_TOOLCHAIN_ID = 'mvn-toolchain-id';
|
||||
exports.INPUT_MVN_TOOLCHAIN_VENDOR = 'mvn-toolchain-vendor';
|
||||
exports.INPUT_SHOW_DOWNLOAD_PROGRESS = 'show-download-progress';
|
||||
exports.MAVEN_ARGS_ENV = 'MAVEN_ARGS';
|
||||
exports.MAVEN_NO_TRANSFER_PROGRESS_FLAG = '-ntp';
|
||||
exports.MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG = '--no-transfer-progress';
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = ['corretto'];
|
||||
|
||||
|
||||
|
||||
89
dist/setup/index.js
vendored
89
dist/setup/index.js
vendored
@@ -78000,7 +78000,7 @@ function isProbablyGradleDaemonProblem(packageManager, error) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG = exports.MAVEN_NO_TRANSFER_PROGRESS_FLAG = exports.MAVEN_ARGS_ENV = exports.INPUT_SHOW_DOWNLOAD_PROGRESS = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
|
||||
exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home';
|
||||
exports.INPUT_JAVA_VERSION = 'java-version';
|
||||
exports.INPUT_JAVA_VERSION_FILE = 'java-version-file';
|
||||
@@ -78027,10 +78027,6 @@ exports.MVN_SETTINGS_FILE = 'settings.xml';
|
||||
exports.MVN_TOOLCHAINS_FILE = 'toolchains.xml';
|
||||
exports.INPUT_MVN_TOOLCHAIN_ID = 'mvn-toolchain-id';
|
||||
exports.INPUT_MVN_TOOLCHAIN_VENDOR = 'mvn-toolchain-vendor';
|
||||
exports.INPUT_SHOW_DOWNLOAD_PROGRESS = 'show-download-progress';
|
||||
exports.MAVEN_ARGS_ENV = 'MAVEN_ARGS';
|
||||
exports.MAVEN_NO_TRANSFER_PROGRESS_FLAG = '-ntp';
|
||||
exports.MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG = '--no-transfer-progress';
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = ['corretto'];
|
||||
|
||||
|
||||
@@ -81011,87 +81007,6 @@ function deleteKey(keyFingerprint) {
|
||||
exports.deleteKey = deleteKey;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 38172:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.configureMavenArgs = void 0;
|
||||
const core = __importStar(__nccwpck_require__(37484));
|
||||
const util_1 = __nccwpck_require__(54527);
|
||||
const constants_1 = __nccwpck_require__(27242);
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
function configureMavenArgs() {
|
||||
var _a;
|
||||
const showDownloadProgress = (0, util_1.getBooleanInput)(constants_1.INPUT_SHOW_DOWNLOAD_PROGRESS, false);
|
||||
if (showDownloadProgress) {
|
||||
core.debug(`${constants_1.INPUT_SHOW_DOWNLOAD_PROGRESS} is true; leaving ${constants_1.MAVEN_ARGS_ENV} unchanged`);
|
||||
return;
|
||||
}
|
||||
const existingArgs = ((_a = process.env[constants_1.MAVEN_ARGS_ENV]) !== null && _a !== void 0 ? _a : '').trim();
|
||||
const alreadyDisabled = existingArgs
|
||||
.split(/\s+/)
|
||||
.some(arg => arg === constants_1.MAVEN_NO_TRANSFER_PROGRESS_FLAG ||
|
||||
arg === constants_1.MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG);
|
||||
if (alreadyDisabled) {
|
||||
core.debug(`${constants_1.MAVEN_ARGS_ENV} already disables transfer progress; leaving it unchanged`);
|
||||
return;
|
||||
}
|
||||
const updatedArgs = existingArgs
|
||||
? `${existingArgs} ${constants_1.MAVEN_NO_TRANSFER_PROGRESS_FLAG}`
|
||||
: constants_1.MAVEN_NO_TRANSFER_PROGRESS_FLAG;
|
||||
core.exportVariable(constants_1.MAVEN_ARGS_ENV, updatedArgs);
|
||||
core.info(`Configured ${constants_1.MAVEN_ARGS_ENV} to include ${constants_1.MAVEN_NO_TRANSFER_PROGRESS_FLAG} to suppress Maven transfer progress logs. ` +
|
||||
`Set '${constants_1.INPUT_SHOW_DOWNLOAD_PROGRESS}: true' to keep the download progress output.`);
|
||||
}
|
||||
exports.configureMavenArgs = configureMavenArgs;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 90471:
|
||||
@@ -81144,7 +81059,6 @@ const constants = __importStar(__nccwpck_require__(27242));
|
||||
const cache_1 = __nccwpck_require__(97377);
|
||||
const path = __importStar(__nccwpck_require__(16928));
|
||||
const distribution_factory_1 = __nccwpck_require__(2970);
|
||||
const maven_args_1 = __nccwpck_require__(38172);
|
||||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
@@ -81192,7 +81106,6 @@ function run() {
|
||||
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
||||
yield auth.configureAuthentication();
|
||||
(0, maven_args_1.configureMavenArgs)();
|
||||
if (cache && (0, util_1.isCacheFeatureAvailable)()) {
|
||||
yield (0, cache_1.restore)(cache, cacheDependencyPath);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
- [Testing against different Java distributions](#Testing-against-different-Java-distributions)
|
||||
- [Testing against different platforms](#Testing-against-different-platforms)
|
||||
- [Publishing using Apache Maven](#Publishing-using-Apache-Maven)
|
||||
- [Maven transfer progress (download logs)](#Maven-transfer-progress-download-logs)
|
||||
- [Publishing using Gradle](#Publishing-using-Gradle)
|
||||
- [Hosted Tool Cache](#Hosted-Tool-Cache)
|
||||
- [Modifying Maven Toolchains](#Modifying-Maven-Toolchains)
|
||||
@@ -527,36 +526,6 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
```
|
||||
|
||||
## Maven transfer progress (download logs)
|
||||
|
||||
By default, Maven prints a line for every artifact it downloads, which can add hundreds of noisy lines to CI logs. To keep logs clean, `setup-java` sets the [`MAVEN_ARGS`](https://maven.apache.org/configure.html#maven_args-environment-variable) environment variable to include `-ntp` (`--no-transfer-progress`) so that subsequent Maven invocations in the job suppress this transfer progress output.
|
||||
|
||||
This is enabled by default. Any existing `MAVEN_ARGS` value is preserved (the flag is appended, not overwritten), and the flag is not added twice if you already set it yourself.
|
||||
|
||||
If you want to keep the download/transfer progress in your logs, set `show-download-progress: true`:
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: '<distribution>'
|
||||
java-version: '21'
|
||||
show-download-progress: true # keep Maven download/transfer progress in the logs
|
||||
|
||||
- name: Build with Maven
|
||||
run: mvn -B package --file pom.xml
|
||||
```
|
||||
|
||||
***NOTES***:
|
||||
- `MAVEN_ARGS` is honored by Maven 3.9.0+ and the Maven Wrapper (`mvnw`). Older Maven versions ignore it, so on those you can pass `--no-transfer-progress` on the command line instead.
|
||||
- This setting only affects Maven. It has no effect on Gradle, sbt, or other build tools.
|
||||
- `-ntp` only controls transfer/progress output; it does not change whether Maven runs in batch mode. Use `-B`/`--batch-mode` (or `<interactiveMode>false</interactiveMode>` in `settings.xml`) if you also want non-interactive runs.
|
||||
|
||||
## Publishing using Gradle
|
||||
```yaml
|
||||
jobs:
|
||||
|
||||
83
eslint.config.mjs
Normal file
83
eslint.config.mjs
Normal file
@@ -0,0 +1,83 @@
|
||||
import js from '@eslint/js';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import jestPlugin from 'eslint-plugin-jest';
|
||||
import nodePlugin from 'eslint-plugin-n';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
import globals from 'globals';
|
||||
|
||||
export default tseslint.config(
|
||||
{
|
||||
ignores: [
|
||||
'dist/',
|
||||
'lib/',
|
||||
'node_modules/',
|
||||
'coverage/',
|
||||
'**/*.js',
|
||||
'**/*.cjs',
|
||||
'**/*.mjs',
|
||||
'**/*.d.ts'
|
||||
]
|
||||
},
|
||||
{
|
||||
files: ['src/**/*.ts', '__tests__/**/*.ts'],
|
||||
extends: [
|
||||
js.configs.recommended,
|
||||
...tseslint.configs.recommended,
|
||||
jestPlugin.configs['flat/recommended'],
|
||||
eslintConfigPrettier
|
||||
],
|
||||
plugins: {
|
||||
n: nodePlugin
|
||||
},
|
||||
languageOptions: {
|
||||
ecmaVersion: 2021,
|
||||
sourceType: 'module',
|
||||
globals: {
|
||||
...globals.node,
|
||||
...globals.es2021
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
'@typescript-eslint/no-require-imports': 'error',
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'off',
|
||||
'@typescript-eslint/ban-ts-comment': [
|
||||
'error',
|
||||
{
|
||||
'ts-ignore': 'allow-with-description'
|
||||
}
|
||||
],
|
||||
'no-console': 'error',
|
||||
yoda: 'error',
|
||||
'prefer-const': [
|
||||
'error',
|
||||
{
|
||||
destructuring: 'all'
|
||||
}
|
||||
],
|
||||
'no-control-regex': 'off',
|
||||
'no-constant-condition': ['error', {checkLoops: false}],
|
||||
// ESLint 10's recommended set adds `preserve-caught-error`, which the
|
||||
// previous ESLint 8 recommended config did not enable. Keep it off to
|
||||
// preserve the prior lint behavior; adopting it would require attaching
|
||||
// an Error `cause` (ES2022) and is out of scope for this upgrade.
|
||||
'preserve-caught-error': 'off',
|
||||
'n/no-extraneous-import': 'error'
|
||||
}
|
||||
},
|
||||
{
|
||||
files: ['**/*{test,spec}.ts'],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.jest
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'jest/no-standalone-expect': 'off',
|
||||
'jest/no-conditional-expect': 'off',
|
||||
'no-console': 'off'
|
||||
}
|
||||
}
|
||||
);
|
||||
1321
package-lock.json
generated
1321
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
package.json
17
package.json
@@ -11,8 +11,8 @@
|
||||
"build": "ncc build -o dist/setup src/setup-java.ts && ncc build -o dist/cleanup src/cleanup-java.ts",
|
||||
"format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
|
||||
"format-check": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --check \"**/*.{ts,yml,yaml}\"",
|
||||
"lint": "eslint --config ./.eslintrc.js \"**/*.ts\"",
|
||||
"lint:fix": "eslint --config ./.eslintrc.js \"**/*.ts\" --fix",
|
||||
"lint": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\"",
|
||||
"lint:fix": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\" --fix",
|
||||
"prerelease": "npm run-script build",
|
||||
"release": "git add -f dist/setup/index.js dist/cleanup/index.js",
|
||||
"test": "jest"
|
||||
@@ -40,21 +40,22 @@
|
||||
"xmlbuilder2": "^4.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^26.0.0",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@typescript-eslint/eslint-plugin": "^8.48.0",
|
||||
"@typescript-eslint/parser": "^8.61.1",
|
||||
"@vercel/ncc": "^0.44.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint": "^10.5.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-jest": "^29.0.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-jest": "^29.15.2",
|
||||
"eslint-plugin-n": "^18.1.0",
|
||||
"globals": "^17.7.0",
|
||||
"jest": "^30.4.2",
|
||||
"jest-circus": "^30.4.2",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.4.11",
|
||||
"typescript": "^5.3.3"
|
||||
"typescript": "^5.3.3",
|
||||
"typescript-eslint": "^8.62.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/actions/setup-java/issues"
|
||||
|
||||
@@ -28,10 +28,5 @@ export const MVN_SETTINGS_FILE = 'settings.xml';
|
||||
export const MVN_TOOLCHAINS_FILE = 'toolchains.xml';
|
||||
export const INPUT_MVN_TOOLCHAIN_ID = 'mvn-toolchain-id';
|
||||
export const INPUT_MVN_TOOLCHAIN_VENDOR = 'mvn-toolchain-vendor';
|
||||
export const INPUT_SHOW_DOWNLOAD_PROGRESS = 'show-download-progress';
|
||||
|
||||
export const MAVEN_ARGS_ENV = 'MAVEN_ARGS';
|
||||
export const MAVEN_NO_TRANSFER_PROGRESS_FLAG = '-ntp';
|
||||
export const MAVEN_NO_TRANSFER_PROGRESS_LONG_FLAG = '--no-transfer-progress';
|
||||
|
||||
export const DISTRIBUTIONS_ONLY_MAJOR_VERSION = ['corretto'];
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
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.`
|
||||
);
|
||||
}
|
||||
@@ -12,7 +12,6 @@ import {restore} from './cache';
|
||||
import * as path from 'path';
|
||||
import {getJavaDistribution} from './distributions/distribution-factory';
|
||||
import {JavaInstallerOptions} from './distributions/base-models';
|
||||
import {configureMavenArgs} from './maven-args';
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
@@ -80,7 +79,6 @@ async function run() {
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
||||
|
||||
await auth.configureAuthentication();
|
||||
configureMavenArgs();
|
||||
if (cache && isCacheFeatureAvailable()) {
|
||||
await restore(cache, cacheDependencyPath);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user