mirror of
https://github.com/actions/setup-java.git
synced 2025-04-20 18:06:45 +00:00
add support for artifacts proxy repositories
This commit is contained in:
parent
06db6c25b8
commit
cec33d9d11
18 changed files with 497 additions and 23 deletions
5
dist/cleanup/index.js
vendored
5
dist/cleanup/index.js
vendored
|
@ -68480,7 +68480,7 @@ else {
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
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 = 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.DOWNLOAD_LINK_CONTEXT = exports.REPLACE_DOWNLOAD_LINK_BASE_URL = exports.REMOTE_REPOSITORY_BASE_URL = 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 = 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';
|
||||
|
@ -68507,6 +68507,9 @@ exports.MVN_TOOLCHAINS_FILE = 'toolchains.xml';
|
|||
exports.INPUT_MVN_TOOLCHAIN_ID = 'mvn-toolchain-id';
|
||||
exports.INPUT_MVN_TOOLCHAIN_VENDOR = 'mvn-toolchain-vendor';
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = ['corretto'];
|
||||
exports.REMOTE_REPOSITORY_BASE_URL = 'remote-repository-base-url';
|
||||
exports.REPLACE_DOWNLOAD_LINK_BASE_URL = 'replace-download-link-base-url';
|
||||
exports.DOWNLOAD_LINK_CONTEXT = 'download-link-context';
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
|
72
dist/setup/index.js
vendored
72
dist/setup/index.js
vendored
|
@ -103582,7 +103582,7 @@ function isProbablyGradleDaemonProblem(packageManager, error) {
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
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 = 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.DOWNLOAD_LINK_CONTEXT = exports.REPLACE_DOWNLOAD_LINK_BASE_URL = exports.REMOTE_REPOSITORY_BASE_URL = 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 = 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';
|
||||
|
@ -103609,6 +103609,9 @@ exports.MVN_TOOLCHAINS_FILE = 'toolchains.xml';
|
|||
exports.INPUT_MVN_TOOLCHAIN_ID = 'mvn-toolchain-id';
|
||||
exports.INPUT_MVN_TOOLCHAIN_VENDOR = 'mvn-toolchain-vendor';
|
||||
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = ['corretto'];
|
||||
exports.REMOTE_REPOSITORY_BASE_URL = 'remote-repository-base-url';
|
||||
exports.REPLACE_DOWNLOAD_LINK_BASE_URL = 'replace-download-link-base-url';
|
||||
exports.DOWNLOAD_LINK_CONTEXT = 'download-link-context';
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
@ -103667,6 +103670,7 @@ class AdoptDistribution extends base_installer_1.JavaBase {
|
|||
constructor(installerOptions, jvmImpl) {
|
||||
super(`Adopt-${jvmImpl}`, installerOptions);
|
||||
this.jvmImpl = jvmImpl;
|
||||
this.remoteMetadataBaseUrl = 'https://api.adoptopenjdk.net';
|
||||
}
|
||||
findPackageForDownload(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -103676,7 +103680,7 @@ class AdoptDistribution extends base_installer_1.JavaBase {
|
|||
.map(item => {
|
||||
return {
|
||||
version: item.version_data.semver,
|
||||
url: item.binaries[0].package.link
|
||||
url: this.buildDownloadLink(item.binaries[0].package.link)
|
||||
};
|
||||
});
|
||||
const satisfiedVersions = availableVersionsWithBinaries
|
||||
|
@ -103747,7 +103751,7 @@ class AdoptDistribution extends base_installer_1.JavaBase {
|
|||
const availableVersions = [];
|
||||
while (true) {
|
||||
const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`;
|
||||
const availableVersionsUrl = `https://api.adoptopenjdk.net/v3/assets/version/${versionRange}?${requestArguments}`;
|
||||
const availableVersionsUrl = `${this.baseUrl()}/v3/assets/version/${versionRange}?${requestArguments}`;
|
||||
if (core.isDebug() && page_index === 0) {
|
||||
// url is identical except page_index so print it once for debug
|
||||
core.debug(`Gathering available versions from '${availableVersionsUrl}'`);
|
||||
|
@ -103845,6 +103849,9 @@ class JavaBase {
|
|||
this.architecture = installerOptions.architecture || os_1.default.arch();
|
||||
this.packageType = installerOptions.packageType;
|
||||
this.checkLatest = installerOptions.checkLatest;
|
||||
this.remoteRepositoryBaseUrl = installerOptions.remoteRepositoryBaseUrl;
|
||||
this.replaceDownloadLinkBaseUrl = installerOptions.replaceDownloadLinkBaseUrl;
|
||||
this.downloadLinkContext = installerOptions.downloadLinkContext;
|
||||
}
|
||||
setupJava() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -103971,6 +103978,28 @@ class JavaBase {
|
|||
return this.architecture;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* This is a method used to generate a proper URL which is used to fetch the metadata.json file
|
||||
* which contains all the information about all supported versions and the location where to download the binary.
|
||||
*
|
||||
* @returns the remoteRepositoryBaseUrl specified in the action.yml or the hardcoded remoteMetadataBaseUrl in each concret implementation.
|
||||
*/
|
||||
// return
|
||||
baseUrl() {
|
||||
return this.remoteRepositoryBaseUrl || this.remoteMetadataBaseUrl;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param url The download link which is specified in the metdata.json file pointing to the location accessible via internet.
|
||||
* @returns An updated download link which uses the private artifacts proxy to download the binnaries.
|
||||
*/
|
||||
buildDownloadLink(url) {
|
||||
// means that the user wants to use the prox repository
|
||||
if (this.remoteRepositoryBaseUrl && this.replaceDownloadLinkBaseUrl) {
|
||||
return url.replace(this.replaceDownloadLinkBaseUrl, `${this.remoteRepositoryBaseUrl}${this.downloadLinkContext || ''}`);
|
||||
}
|
||||
return url;
|
||||
}
|
||||
}
|
||||
exports.JavaBase = JavaBase;
|
||||
|
||||
|
@ -104024,6 +104053,7 @@ const base_installer_1 = __nccwpck_require__(9741);
|
|||
class CorrettoDistribution extends base_installer_1.JavaBase {
|
||||
constructor(installerOptions) {
|
||||
super('Corretto', installerOptions);
|
||||
this.remoteMetadataBaseUrl = 'https://corretto.github.io';
|
||||
}
|
||||
downloadTool(javaRelease) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104075,7 +104105,7 @@ class CorrettoDistribution extends base_installer_1.JavaBase {
|
|||
if (core.isDebug()) {
|
||||
console.time('corretto-retrieve-available-versions');
|
||||
}
|
||||
const availableVersionsUrl = 'https://corretto.github.io/corretto-downloads/latest_links/indexmap_with_checksum.json';
|
||||
const availableVersionsUrl = `${this.baseUrl}/corretto-downloads/latest_links/indexmap_with_checksum.json`;
|
||||
const fetchCurrentVersions = yield this.http.getJson(availableVersionsUrl);
|
||||
const fetchedCurrentVersions = fetchCurrentVersions.result;
|
||||
if (!fetchedCurrentVersions) {
|
||||
|
@ -104249,6 +104279,7 @@ const supportedArchitectures = `'x86', 'x64', 'armv7', 'aarch64', 'ppc64le'`;
|
|||
class LibericaDistributions extends base_installer_1.JavaBase {
|
||||
constructor(installerOptions) {
|
||||
super('Liberica', installerOptions);
|
||||
this.remoteMetadataBaseUrl = 'https://api.bell-sw.com';
|
||||
}
|
||||
downloadTool(javaRelease) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104307,7 +104338,7 @@ class LibericaDistributions extends base_installer_1.JavaBase {
|
|||
prepareAvailableVersionsUrl() {
|
||||
const urlOptions = Object.assign(Object.assign({ os: this.getPlatformOption(), 'bundle-type': this.getBundleType() }, this.getArchitectureOptions()), { 'build-type': this.stable ? 'all' : 'ea', 'installation-type': 'archive', fields: 'downloadUrl,version,featureVersion,interimVersion,updateVersion,buildVersion' });
|
||||
const searchParams = new URLSearchParams(urlOptions).toString();
|
||||
return `https://api.bell-sw.com/v1/liberica/releases?${searchParams}`;
|
||||
return `${this.baseUrl()}/v1/liberica/releases?${searchParams}`;
|
||||
}
|
||||
getBundleType() {
|
||||
const [bundleType, feature] = this.packageType.split('+');
|
||||
|
@ -104420,6 +104451,7 @@ class LocalDistribution extends base_installer_1.JavaBase {
|
|||
constructor(installerOptions, jdkFile) {
|
||||
super('jdkfile', installerOptions);
|
||||
this.jdkFile = jdkFile;
|
||||
this.remoteMetadataBaseUrl = 'MUST STAY EMPTY';
|
||||
}
|
||||
setupJava() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104463,6 +104495,9 @@ class LocalDistribution extends base_installer_1.JavaBase {
|
|||
throw new Error('This method should not be implemented in local file provider');
|
||||
});
|
||||
}
|
||||
baseUrl() {
|
||||
throw new Error('This method should not be implemented in local file provider');
|
||||
}
|
||||
downloadTool(javaRelease) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
throw new Error('This method should not be implemented in local file provider');
|
||||
|
@ -104521,6 +104556,7 @@ const path_1 = __importDefault(__nccwpck_require__(1017));
|
|||
class MicrosoftDistributions extends base_installer_1.JavaBase {
|
||||
constructor(installerOptions) {
|
||||
super('Microsoft', installerOptions);
|
||||
this.remoteMetadataBaseUrl = 'https://api.github.com';
|
||||
}
|
||||
downloadTool(javaRelease) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104571,7 +104607,7 @@ class MicrosoftDistributions extends base_installer_1.JavaBase {
|
|||
const branch = 'main';
|
||||
const filePath = 'src/distributions/microsoft/microsoft-openjdk-versions.json';
|
||||
let releases = null;
|
||||
const fileUrl = `https://api.github.com/repos/${owner}/${repository}/contents/${filePath}?ref=${branch}`;
|
||||
const fileUrl = `${this.baseUrl()}/repos/${owner}/${repository}/contents/${filePath}?ref=${branch}`;
|
||||
const headers = {
|
||||
authorization: auth,
|
||||
accept: 'application/vnd.github.VERSION.raw'
|
||||
|
@ -104652,6 +104688,7 @@ class TemurinDistribution extends base_installer_1.JavaBase {
|
|||
constructor(installerOptions, jvmImpl) {
|
||||
super(`Temurin-${jvmImpl}`, installerOptions);
|
||||
this.jvmImpl = jvmImpl;
|
||||
this.remoteMetadataBaseUrl = 'https://api.adoptium.net';
|
||||
}
|
||||
findPackageForDownload(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104731,7 +104768,7 @@ class TemurinDistribution extends base_installer_1.JavaBase {
|
|||
const availableVersions = [];
|
||||
while (true) {
|
||||
const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`;
|
||||
const availableVersionsUrl = `https://api.adoptium.net/v3/assets/version/${versionRange}?${requestArguments}`;
|
||||
const availableVersionsUrl = `${this.baseUrl()}/v3/assets/version/${versionRange}?${requestArguments}`;
|
||||
if (core.isDebug() && page_index === 0) {
|
||||
// url is identical except page_index so print it once for debug
|
||||
core.debug(`Gathering available versions from '${availableVersionsUrl}'`);
|
||||
|
@ -104819,6 +104856,7 @@ const util_1 = __nccwpck_require__(2629);
|
|||
class ZuluDistribution extends base_installer_1.JavaBase {
|
||||
constructor(installerOptions) {
|
||||
super('Zulu', installerOptions);
|
||||
this.remoteMetadataBaseUrl = 'https://api.azul.com';
|
||||
}
|
||||
findPackageForDownload(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
@ -104894,7 +104932,7 @@ class ZuluDistribution extends base_installer_1.JavaBase {
|
|||
]
|
||||
.filter(Boolean)
|
||||
.join('&');
|
||||
const availableVersionsUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?${requestArguments}`;
|
||||
const availableVersionsUrl = `${this.baseUrl()}/zulu/download/community/v1.0/bundles/?${requestArguments}`;
|
||||
if (core.isDebug()) {
|
||||
core.debug(`Gathering available versions from '${availableVersionsUrl}'`);
|
||||
}
|
||||
|
@ -105083,6 +105121,9 @@ function run() {
|
|||
const cache = core.getInput(constants.INPUT_CACHE);
|
||||
const checkLatest = util_1.getBooleanInput(constants.INPUT_CHECK_LATEST, false);
|
||||
let toolchainIds = core.getMultilineInput(constants.INPUT_MVN_TOOLCHAIN_ID);
|
||||
let remoteRepositoryBaseUrl = core.getInput(constants.REMOTE_REPOSITORY_BASE_URL);
|
||||
let replaceDownloadLinkBaseUrl = core.getInput(constants.REPLACE_DOWNLOAD_LINK_BASE_URL);
|
||||
let downloadLinkContext = core.getInput(constants.DOWNLOAD_LINK_CONTEXT);
|
||||
core.startGroup('Installed distributions');
|
||||
if (versions.length !== toolchainIds.length) {
|
||||
toolchainIds = [];
|
||||
|
@ -105090,13 +105131,19 @@ function run() {
|
|||
if (!versions.length && !versionFile) {
|
||||
throw new Error('java-version or java-version-file input expected');
|
||||
}
|
||||
if (remoteRepositoryBaseUrl && !replaceDownloadLinkBaseUrl) {
|
||||
throw new Error("You are trying to download binaries through an artifacts proxy. You must set the 'replace-download-link-base-url'. PS: Check if it is necessary to specify 'download-link-context' to generate a valid download link.");
|
||||
}
|
||||
const installerInputsOptions = {
|
||||
architecture,
|
||||
packageType,
|
||||
checkLatest,
|
||||
distributionName,
|
||||
jdkFile,
|
||||
toolchainIds
|
||||
toolchainIds,
|
||||
remoteRepositoryBaseUrl,
|
||||
replaceDownloadLinkBaseUrl,
|
||||
downloadLinkContext
|
||||
};
|
||||
if (!versions.length) {
|
||||
core.debug('java-version input is empty, looking for java-version-file input');
|
||||
|
@ -105130,12 +105177,15 @@ function run() {
|
|||
run();
|
||||
function installVersion(version, options, toolchainId = 0) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const { distributionName, jdkFile, architecture, packageType, checkLatest, toolchainIds } = options;
|
||||
const { distributionName, jdkFile, architecture, packageType, checkLatest, toolchainIds, remoteRepositoryBaseUrl, replaceDownloadLinkBaseUrl, downloadLinkContext } = options;
|
||||
const installerOptions = {
|
||||
architecture,
|
||||
packageType,
|
||||
checkLatest,
|
||||
version
|
||||
version,
|
||||
remoteRepositoryBaseUrl,
|
||||
replaceDownloadLinkBaseUrl,
|
||||
downloadLinkContext
|
||||
};
|
||||
const distribution = distribution_factory_1.getJavaDistribution(distributionName, installerOptions, jdkFile);
|
||||
if (!distribution) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue