mirror of
https://github.com/actions/setup-java.git
synced 2025-04-20 01:46:46 +00:00
Add functionality to setup maven binary
Add functionality to setup maven in order to use for project building
This commit is contained in:
parent
104660f1cc
commit
c45a722262
10 changed files with 150 additions and 60 deletions
|
@ -156,4 +156,32 @@ describe('installer tests', () => {
|
||||||
expect(thrown).toBe(true);
|
expect(thrown).toBe(true);
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('wrong maven version of Maven has to throw error', async () => {
|
||||||
|
let thrown = false;
|
||||||
|
try {
|
||||||
|
await installer.getMaven('2-3-4');
|
||||||
|
} catch (e) {
|
||||||
|
thrown = true;
|
||||||
|
}
|
||||||
|
expect(thrown).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Installs version of Maven and stores it to cache', async () => {
|
||||||
|
await installer.getMaven('3.6.3');
|
||||||
|
const mvnDir = path.join(toolDir, 'mvn', '3.6.3', 'x64');
|
||||||
|
|
||||||
|
expect(fs.existsSync(`${mvnDir}.complete`)).toBe(true);
|
||||||
|
expect(fs.existsSync(path.join(mvnDir))).toBe(true);
|
||||||
|
}, 100000);
|
||||||
|
|
||||||
|
it('Uses version of Maven installed in cache', async () => {
|
||||||
|
const mvnDir: string = path.join(toolDir, 'mvn', '3.6.3', 'x64');
|
||||||
|
console.log(mvnDir);
|
||||||
|
await io.mkdirP(mvnDir);
|
||||||
|
fs.writeFileSync(`${mvnDir}.complete`, 'hello');
|
||||||
|
// This will throw if it doesn't find it in the cache (because no such version exists)
|
||||||
|
await installer.getMaven('3.6.3');
|
||||||
|
return;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,6 +9,9 @@ inputs:
|
||||||
Early access versions can be specified in the form of e.g. 14-ea,
|
Early access versions can be specified in the form of e.g. 14-ea,
|
||||||
14.0.0-ea, or 14.0.0-ea.28'
|
14.0.0-ea, or 14.0.0-ea.28'
|
||||||
required: true
|
required: true
|
||||||
|
maven-version:
|
||||||
|
description: 'Version of maven, does not setup maven if version is not provided.
|
||||||
|
check available versions here https://downloads.apache.org/maven/'
|
||||||
maven-ca-cert-b64:
|
maven-ca-cert-b64:
|
||||||
description: 'CA cert in the format of a base64 blob used to connect to private
|
description: 'CA cert in the format of a base64 blob used to connect to private
|
||||||
maven repo protected by MTLS'
|
maven repo protected by MTLS'
|
||||||
|
|
3
dist/cleanup/index.js
vendored
3
dist/cleanup/index.js
vendored
|
@ -1029,7 +1029,7 @@ module.exports = require("child_process");
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = exports.INPUT_MAVEN_SETTINGS_B64 = exports.INPUT_MAVEN_KEYSTORE_PASSWORD = exports.INPUT_MAVEN_KEYSTORE_P12_B64 = exports.INPUT_MAVEN_CA_CERT_B64 = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_JDK_FILE = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.INPUT_VERSION = void 0;
|
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_MAVEN_VERSION = exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = exports.INPUT_MAVEN_SETTINGS_B64 = exports.INPUT_MAVEN_KEYSTORE_PASSWORD = exports.INPUT_MAVEN_KEYSTORE_P12_B64 = exports.INPUT_MAVEN_CA_CERT_B64 = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_JDK_FILE = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.INPUT_VERSION = void 0;
|
||||||
exports.INPUT_VERSION = 'version';
|
exports.INPUT_VERSION = 'version';
|
||||||
exports.INPUT_JAVA_VERSION = 'java-version';
|
exports.INPUT_JAVA_VERSION = 'java-version';
|
||||||
exports.INPUT_ARCHITECTURE = 'architecture';
|
exports.INPUT_ARCHITECTURE = 'architecture';
|
||||||
|
@ -1046,6 +1046,7 @@ exports.INPUT_MAVEN_KEYSTORE_P12_B64 = 'maven-keystore-p12-b64';
|
||||||
exports.INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
exports.INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
||||||
exports.INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
exports.INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
||||||
exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
||||||
|
exports.INPUT_MAVEN_VERSION = 'maven-version';
|
||||||
exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
||||||
exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
||||||
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint';
|
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint';
|
||||||
|
|
59
dist/setup/index.js
vendored
59
dist/setup/index.js
vendored
|
@ -11056,7 +11056,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.setupMaven = exports.validateOptions = void 0;
|
exports.setupMaven = exports.isValidOptions = exports.validateOptions = void 0;
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const fs = __importStar(__webpack_require__(747));
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const path = __importStar(__webpack_require__(622));
|
const path = __importStar(__webpack_require__(622));
|
||||||
|
@ -11064,17 +11064,29 @@ const constants = __importStar(__webpack_require__(694));
|
||||||
const os = __importStar(__webpack_require__(87));
|
const os = __importStar(__webpack_require__(87));
|
||||||
const io = __importStar(__webpack_require__(1));
|
const io = __importStar(__webpack_require__(1));
|
||||||
function validateOptions(opts) {
|
function validateOptions(opts) {
|
||||||
if ((opts.caCert === '' ||
|
if (opts.caCert === '' ||
|
||||||
opts.keystore === '' ||
|
opts.keystore === '' ||
|
||||||
opts.password === '' ||
|
opts.password === '' ||
|
||||||
opts.securitySettings === '',
|
opts.securitySettings === '' ||
|
||||||
opts.settings === '')) {
|
opts.settings === '') {
|
||||||
core.debug('maven options set is not valid: some field is empty');
|
core.debug('maven options set is not valid: some field is empty');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
exports.validateOptions = validateOptions;
|
exports.validateOptions = validateOptions;
|
||||||
|
function isValidOptions(mvnOpts) {
|
||||||
|
if ((mvnOpts.caCert !== '' ||
|
||||||
|
mvnOpts.keystore !== '' ||
|
||||||
|
mvnOpts.password !== '' ||
|
||||||
|
mvnOpts.securitySettings !== '',
|
||||||
|
mvnOpts.settings !== '') &&
|
||||||
|
!validateOptions(mvnOpts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
exports.isValidOptions = isValidOptions;
|
||||||
function setupMaven(opts) {
|
function setupMaven(opts) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const settingsDir = path.join(core.getInput(constants.INPUT_SETTINGS_PATH) || os.homedir(), core.getInput(constants.INPUT_SETTINGS_PATH) ? '' : '.m2');
|
const settingsDir = path.join(core.getInput(constants.INPUT_SETTINGS_PATH) || os.homedir(), core.getInput(constants.INPUT_SETTINGS_PATH) ? '' : '.m2');
|
||||||
|
@ -30166,7 +30178,7 @@ exports.StaticRangeImpl = StaticRangeImpl;
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = exports.INPUT_MAVEN_SETTINGS_B64 = exports.INPUT_MAVEN_KEYSTORE_PASSWORD = exports.INPUT_MAVEN_KEYSTORE_P12_B64 = exports.INPUT_MAVEN_CA_CERT_B64 = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_JDK_FILE = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.INPUT_VERSION = void 0;
|
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_MAVEN_VERSION = exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = exports.INPUT_MAVEN_SETTINGS_B64 = exports.INPUT_MAVEN_KEYSTORE_PASSWORD = exports.INPUT_MAVEN_KEYSTORE_P12_B64 = exports.INPUT_MAVEN_CA_CERT_B64 = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_JDK_FILE = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.INPUT_VERSION = void 0;
|
||||||
exports.INPUT_VERSION = 'version';
|
exports.INPUT_VERSION = 'version';
|
||||||
exports.INPUT_JAVA_VERSION = 'java-version';
|
exports.INPUT_JAVA_VERSION = 'java-version';
|
||||||
exports.INPUT_ARCHITECTURE = 'architecture';
|
exports.INPUT_ARCHITECTURE = 'architecture';
|
||||||
|
@ -30183,6 +30195,7 @@ exports.INPUT_MAVEN_KEYSTORE_P12_B64 = 'maven-keystore-p12-b64';
|
||||||
exports.INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
exports.INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
||||||
exports.INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
exports.INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
||||||
exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
exports.INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
||||||
|
exports.INPUT_MAVEN_VERSION = 'maven-version';
|
||||||
exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
||||||
exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
||||||
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint';
|
exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint';
|
||||||
|
@ -33363,12 +33376,8 @@ function run() {
|
||||||
settings: core.getInput(constants.INPUT_MAVEN_SETTINGS_B64),
|
settings: core.getInput(constants.INPUT_MAVEN_SETTINGS_B64),
|
||||||
securitySettings: core.getInput(constants.INPUT_MAVEN_SECURITY_SETTINGS_B64)
|
securitySettings: core.getInput(constants.INPUT_MAVEN_SECURITY_SETTINGS_B64)
|
||||||
};
|
};
|
||||||
if ((mvnOpts.caCert !== '' ||
|
const mvnVersion = core.getInput(constants.INPUT_MAVEN_VERSION);
|
||||||
mvnOpts.keystore !== '' ||
|
if (!maven_1.isValidOptions(mvnOpts)) {
|
||||||
mvnOpts.password !== '' ||
|
|
||||||
mvnOpts.securitySettings !== '',
|
|
||||||
mvnOpts.settings !== '') &&
|
|
||||||
!maven_1.validateOptions(mvnOpts)) {
|
|
||||||
throw new Error('Some of the Maven options is empty: please check maven-* parameters');
|
throw new Error('Some of the Maven options is empty: please check maven-* parameters');
|
||||||
}
|
}
|
||||||
const arch = core.getInput(constants.INPUT_ARCHITECTURE, { required: true });
|
const arch = core.getInput(constants.INPUT_ARCHITECTURE, { required: true });
|
||||||
|
@ -33380,6 +33389,7 @@ function run() {
|
||||||
});
|
});
|
||||||
const jdkFile = core.getInput(constants.INPUT_JDK_FILE, { required: false });
|
const jdkFile = core.getInput(constants.INPUT_JDK_FILE, { required: false });
|
||||||
yield installer.getJava(version, arch, jdkFile, javaPackage);
|
yield installer.getJava(version, arch, jdkFile, javaPackage);
|
||||||
|
yield installer.getMaven(mvnVersion);
|
||||||
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
||||||
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
||||||
const id = core.getInput(constants.INPUT_SERVER_ID, { required: false });
|
const id = core.getInput(constants.INPUT_SERVER_ID, { required: false });
|
||||||
|
@ -38708,7 +38718,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.getJava = void 0;
|
exports.getJava = exports.getMaven = void 0;
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const io = __importStar(__webpack_require__(1));
|
const io = __importStar(__webpack_require__(1));
|
||||||
const exec = __importStar(__webpack_require__(986));
|
const exec = __importStar(__webpack_require__(986));
|
||||||
|
@ -38720,6 +38730,31 @@ const semver = __importStar(__webpack_require__(280));
|
||||||
const util = __importStar(__webpack_require__(322));
|
const util = __importStar(__webpack_require__(322));
|
||||||
const tempDirectory = util.getTempDir();
|
const tempDirectory = util.getTempDir();
|
||||||
const IS_WINDOWS = util.isWindows();
|
const IS_WINDOWS = util.isWindows();
|
||||||
|
function getMaven(version) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const tmpVersions = version.split('.');
|
||||||
|
if (tmpVersions.length < 2) {
|
||||||
|
throw new Error(`wrong version is set(${version}): supported version template: major.minor.patch`);
|
||||||
|
}
|
||||||
|
const majorVersion = tmpVersions[0];
|
||||||
|
let toolPath = tc.find('mvn', version);
|
||||||
|
if (toolPath) {
|
||||||
|
core.debug(`Tool found in cache ${toolPath}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.debug(`Downloading Maven from https://downloads.apache.org/maven/maven-${majorVersion}`);
|
||||||
|
const url = path.join(`https:///downloads.apache.org/maven/maven-${majorVersion}`, version, `binaries/apache-maven-${version}-bin.tar.gz`);
|
||||||
|
console.log(url);
|
||||||
|
const mvnTarFile = yield tc.downloadTool(url);
|
||||||
|
let tempDir = path.join(tempDirectory, 'temp_' + Math.floor(Math.random() * 2000000000));
|
||||||
|
yield extractFiles(mvnTarFile, '.tar.gz', tempDir);
|
||||||
|
core.debug(`maven extracted to ${tempDir}`);
|
||||||
|
toolPath = yield tc.cacheDir(path.join(tempDir, `apache-maven-${version}`), 'mvn', version, 'x64');
|
||||||
|
}
|
||||||
|
core.exportVariable('MAVEN_HOME', toolPath);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.getMaven = getMaven;
|
||||||
function getJava(version, arch, jdkFile, javaPackage) {
|
function getJava(version, arch, jdkFile, javaPackage) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let toolPath = tc.find(javaPackage, version);
|
let toolPath = tc.find(javaPackage, version);
|
||||||
|
|
54
package-lock.json
generated
54
package-lock.json
generated
|
@ -5,6 +5,7 @@
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
|
"name": "setup-java",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -13,7 +14,7 @@
|
||||||
"@actions/http-client": "^1.0.9",
|
"@actions/http-client": "^1.0.9",
|
||||||
"@actions/io": "^1.0.0",
|
"@actions/io": "^1.0.0",
|
||||||
"@actions/tool-cache": "^1.6.1",
|
"@actions/tool-cache": "^1.6.1",
|
||||||
"@tradeshift/actions-credentials-yaml": "^0.7.0",
|
"jtest": "^0.0.1",
|
||||||
"semver": "^6.1.1",
|
"semver": "^6.1.1",
|
||||||
"xmlbuilder2": "^2.4.0"
|
"xmlbuilder2": "^2.4.0"
|
||||||
},
|
},
|
||||||
|
@ -603,15 +604,6 @@
|
||||||
"node": ">=8.0"
|
"node": ">=8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tradeshift/actions-credentials-yaml": {
|
|
||||||
"version": "0.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@tradeshift/actions-credentials-yaml/-/actions-credentials-yaml-0.7.0.tgz",
|
|
||||||
"integrity": "sha512-FBHqPvlnqL71DQJJB8aV0WUR/hDoeL3Mf+wpTD1DoxgoPH93LvwiChyNa2NybqENJB9nm85ylK+4pgUxwUoRBw==",
|
|
||||||
"dependencies": {
|
|
||||||
"js-base64": "^3.6.0",
|
|
||||||
"yaml": "^1.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@types/babel__core": {
|
"node_modules/@types/babel__core": {
|
||||||
"version": "7.1.12",
|
"version": "7.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
||||||
|
@ -3425,11 +3417,6 @@
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/js-base64": {
|
|
||||||
"version": "3.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz",
|
|
||||||
"integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg=="
|
|
||||||
},
|
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
@ -3554,6 +3541,11 @@
|
||||||
"verror": "1.10.0"
|
"verror": "1.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jtest": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jtest/-/jtest-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-oNwTkRpH+bK3ldg/kc07Po14D8k="
|
||||||
|
},
|
||||||
"node_modules/kind-of": {
|
"node_modules/kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
|
@ -5872,14 +5864,6 @@
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
|
||||||
"version": "1.10.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
|
|
||||||
"integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yargs": {
|
"node_modules/yargs": {
|
||||||
"version": "13.3.2",
|
"version": "13.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
||||||
|
@ -6434,15 +6418,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
|
||||||
"integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ=="
|
"integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ=="
|
||||||
},
|
},
|
||||||
"@tradeshift/actions-credentials-yaml": {
|
|
||||||
"version": "0.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@tradeshift/actions-credentials-yaml/-/actions-credentials-yaml-0.7.0.tgz",
|
|
||||||
"integrity": "sha512-FBHqPvlnqL71DQJJB8aV0WUR/hDoeL3Mf+wpTD1DoxgoPH93LvwiChyNa2NybqENJB9nm85ylK+4pgUxwUoRBw==",
|
|
||||||
"requires": {
|
|
||||||
"js-base64": "^3.6.0",
|
|
||||||
"yaml": "^1.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@types/babel__core": {
|
"@types/babel__core": {
|
||||||
"version": "7.1.12",
|
"version": "7.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
||||||
|
@ -8701,11 +8676,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"js-base64": {
|
|
||||||
"version": "3.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz",
|
|
||||||
"integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg=="
|
|
||||||
},
|
|
||||||
"js-tokens": {
|
"js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
@ -8812,6 +8782,11 @@
|
||||||
"verror": "1.10.0"
|
"verror": "1.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jtest": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jtest/-/jtest-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-oNwTkRpH+bK3ldg/kc07Po14D8k="
|
||||||
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
|
@ -10683,11 +10658,6 @@
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"yaml": {
|
|
||||||
"version": "1.10.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
|
|
||||||
"integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg=="
|
|
||||||
},
|
|
||||||
"yargs": {
|
"yargs": {
|
||||||
"version": "13.3.2",
|
"version": "13.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"@actions/http-client": "^1.0.9",
|
"@actions/http-client": "^1.0.9",
|
||||||
"@actions/io": "^1.0.0",
|
"@actions/io": "^1.0.0",
|
||||||
"@actions/tool-cache": "^1.6.1",
|
"@actions/tool-cache": "^1.6.1",
|
||||||
|
"jtest": "^0.0.1",
|
||||||
"semver": "^6.1.1",
|
"semver": "^6.1.1",
|
||||||
"xmlbuilder2": "^2.4.0"
|
"xmlbuilder2": "^2.4.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,11 +9,13 @@ export const INPUT_SERVER_PASSWORD = 'server-password';
|
||||||
export const INPUT_SETTINGS_PATH = 'settings-path';
|
export const INPUT_SETTINGS_PATH = 'settings-path';
|
||||||
export const INPUT_GPG_PRIVATE_KEY = 'gpg-private-key';
|
export const INPUT_GPG_PRIVATE_KEY = 'gpg-private-key';
|
||||||
export const INPUT_GPG_PASSPHRASE = 'gpg-passphrase';
|
export const INPUT_GPG_PASSPHRASE = 'gpg-passphrase';
|
||||||
|
|
||||||
export const INPUT_MAVEN_CA_CERT_B64 = 'maven-ca-cert-b64';
|
export const INPUT_MAVEN_CA_CERT_B64 = 'maven-ca-cert-b64';
|
||||||
export const INPUT_MAVEN_KEYSTORE_P12_B64 = 'maven-keystore-p12-b64';
|
export const INPUT_MAVEN_KEYSTORE_P12_B64 = 'maven-keystore-p12-b64';
|
||||||
export const INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
export const INPUT_MAVEN_KEYSTORE_PASSWORD = 'maven-keystore-password';
|
||||||
export const INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
export const INPUT_MAVEN_SETTINGS_B64 = 'maven-settings-b64';
|
||||||
export const INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
export const INPUT_MAVEN_SECURITY_SETTINGS_B64 = 'maven-security-settings-b64';
|
||||||
|
export const INPUT_MAVEN_VERSION = 'maven-version';
|
||||||
|
|
||||||
export const INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
export const INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
|
||||||
export const INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
export const INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';
|
||||||
|
|
|
@ -11,6 +11,51 @@ import * as util from './util';
|
||||||
const tempDirectory = util.getTempDir();
|
const tempDirectory = util.getTempDir();
|
||||||
const IS_WINDOWS = util.isWindows();
|
const IS_WINDOWS = util.isWindows();
|
||||||
|
|
||||||
|
export async function getMaven(version: string): Promise<void> {
|
||||||
|
const tmpVersions = version.split('.');
|
||||||
|
if (tmpVersions.length < 2) {
|
||||||
|
throw new Error(
|
||||||
|
`wrong version is set(${version}): supported version template: major.minor.patch`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const majorVersion = tmpVersions[0];
|
||||||
|
|
||||||
|
let toolPath = tc.find('mvn', version);
|
||||||
|
|
||||||
|
if (toolPath) {
|
||||||
|
core.debug(`Tool found in cache ${toolPath}`);
|
||||||
|
} else {
|
||||||
|
core.debug(
|
||||||
|
`Downloading Maven from https://downloads.apache.org/maven/maven-${majorVersion}`
|
||||||
|
);
|
||||||
|
|
||||||
|
const url = path.join(
|
||||||
|
`https:///downloads.apache.org/maven/maven-${majorVersion}`,
|
||||||
|
version,
|
||||||
|
`binaries/apache-maven-${version}-bin.tar.gz`
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log(url);
|
||||||
|
const mvnTarFile = await tc.downloadTool(url);
|
||||||
|
|
||||||
|
let tempDir: string = path.join(
|
||||||
|
tempDirectory,
|
||||||
|
'temp_' + Math.floor(Math.random() * 2000000000)
|
||||||
|
);
|
||||||
|
await extractFiles(mvnTarFile, '.tar.gz', tempDir);
|
||||||
|
|
||||||
|
core.debug(`maven extracted to ${tempDir}`);
|
||||||
|
toolPath = await tc.cacheDir(
|
||||||
|
path.join(tempDir, `apache-maven-${version}`),
|
||||||
|
'mvn',
|
||||||
|
version,
|
||||||
|
'x64'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
core.exportVariable('MAVEN_HOME', toolPath);
|
||||||
|
}
|
||||||
|
|
||||||
export async function getJava(
|
export async function getJava(
|
||||||
version: string,
|
version: string,
|
||||||
arch: string,
|
arch: string,
|
||||||
|
|
|
@ -15,11 +15,11 @@ export interface MavenOpts {
|
||||||
|
|
||||||
export function validateOptions(opts: MavenOpts): boolean {
|
export function validateOptions(opts: MavenOpts): boolean {
|
||||||
if (
|
if (
|
||||||
(opts.caCert === '' ||
|
opts.caCert === '' ||
|
||||||
opts.keystore === '' ||
|
opts.keystore === '' ||
|
||||||
opts.password === '' ||
|
opts.password === '' ||
|
||||||
opts.securitySettings === '',
|
opts.securitySettings === '' ||
|
||||||
opts.settings === '')
|
opts.settings === ''
|
||||||
) {
|
) {
|
||||||
core.debug('maven options set is not valid: some field is empty');
|
core.debug('maven options set is not valid: some field is empty');
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -23,6 +23,8 @@ async function run() {
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const mvnVersion = core.getInput(constants.INPUT_MAVEN_VERSION);
|
||||||
|
|
||||||
if (!isValidOptions(mvnOpts)) {
|
if (!isValidOptions(mvnOpts)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'Some of the Maven options is empty: please check maven-* parameters'
|
'Some of the Maven options is empty: please check maven-* parameters'
|
||||||
|
@ -40,6 +42,9 @@ async function run() {
|
||||||
const jdkFile = core.getInput(constants.INPUT_JDK_FILE, {required: false});
|
const jdkFile = core.getInput(constants.INPUT_JDK_FILE, {required: false});
|
||||||
|
|
||||||
await installer.getJava(version, arch, jdkFile, javaPackage);
|
await installer.getJava(version, arch, jdkFile, javaPackage);
|
||||||
|
if (mvnVersion) {
|
||||||
|
await installer.getMaven(mvnVersion);
|
||||||
|
}
|
||||||
|
|
||||||
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
||||||
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue