2026-07-29 17:53:33 -04:00
export const id = 220 ;
export const ids = [ 220 ];
export const modules = {
/***/ 3220 :
/***/ (( __unused_webpack_module , __webpack_exports__ , __webpack_require__ ) => {
// EXPORTS
__webpack_require__ . d ( __webpack_exports__ , {
MicrosoftDistributions : () => ( /* binding */ MicrosoftDistributions )
});
// UNUSED EXPORTS: MICROSOFT_PUBLIC_KEY
// EXTERNAL MODULE: ./src/distributions/base-installer.ts + 2 modules
var base_installer = __webpack_require__ ( 6242 );
// EXTERNAL MODULE: ./src/util.ts
var util = __webpack_require__ ( 4527 );
// EXTERNAL MODULE: ./src/gpg.ts
var gpg = __webpack_require__ ( 8343 );
; // CONCATENATED MODULE: ./src/distributions/microsoft/microsoft-key.ts
// Microsoft Build of OpenJDK GPG signing key
// Retrieved from: https://download.visualstudio.microsoft.com/download/pr/b90071e2-e0cf-4411-98be-dbeb09d67bf0/8622862bcd54206e158c5abca0582c9b/464279_464280_aoc_20210208.asc
const MICROSOFT_PUBLIC_KEY = `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BSN Pgp v1.1.0.0
mQENBGAhlWcBCADCQjj6huLTenvZSLej35e9YKEHm4lix2uvPOONexMaU8V2v7KL
RGdoXF7jwHci7efnPZ+9zpS2+g3rhvv8M7yWy9E/1psEtGzvmp1IL/qIabMEQqi+
UlhPGh7MQ/BkXAlic8Dyl3XYqr0EXS11iCiTr6Zkxs9Ee4V54gxL4gogRn4wk9sl
/nrjgDzMsUwla0pynoQQvYpqCdiAr3gKKllT1skCDqgVOMMyZxsx9HjZxg/3AJz6
r5i512L2R+3Hkv+XmxT+mnGBCFcny0DM7PjNXEmIK3ZSkro1tQML90zx3Fyh5esx
fpVvuIXGFV75o35VVCBZoiD3hcfOnIJsPQ9nABEBAAG0OE1pY3Jvc29mdCBKYXZh
IEVuZ2luZWVyaW5nIDxqYXZhcGxhdGluZnJhQG1pY3Jvc29mdC5jb20+iQE4BBMB
CAAiBQJgIZVnAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRA1Ux0xWyHB
icwTCACJO2FGNocNvdUtAb+eDKuGwt0chAJdCES2ZtgBScwrwDyWpxpRznoXWBHL
MJeLyxJoKsCG3vVlY4uh48psCzVm3OKvi7MCPT955t8W6TzfSBxTpjR8zRgJkjPJ
EGhHTlusUfz7TtM5etJF0qscSJH1grcNsgtee97mk4QyEzT8Di83NQmYxKcBrliq
yK/SWWt8VkTyYAEO6L5PoB4L9r8ka27uQs+jgCw+/Z0JMtNmmhyNGY3+a1YtPeoy
JdQaI9LphfKGbVaz6SK2aol7vj+c2TG3TLUYdOYGMH1OZlri2GTkCVjwna2GC7p4
Fa133tP85xzJEq1XeXm8WeLFo2wV
=rHCS
-----END PGP PUBLIC KEY BLOCK-----` ;
// EXTERNAL MODULE: ./node_modules/@actions/core/lib/core.js + 7 modules
var core = __webpack_require__ ( 3838 );
// EXTERNAL MODULE: ./node_modules/@actions/tool-cache/lib/tool-cache.js + 2 modules
var tool_cache = __webpack_require__ ( 9805 );
// EXTERNAL MODULE: external "fs"
var external_fs_ = __webpack_require__ ( 9896 );
var external_fs_default = /*#__PURE__*/ __webpack_require__ . n ( external_fs_ );
// EXTERNAL MODULE: external "path"
var external_path_ = __webpack_require__ ( 6928 );
var external_path_default = /*#__PURE__*/ __webpack_require__ . n ( external_path_ );
; // CONCATENATED MODULE: ./src/distributions/microsoft/installer.ts
class MicrosoftDistributions extends base_installer /* JavaBase */ . O {
constructor ( installerOptions ) {
super ( 'Microsoft' , installerOptions );
}
async downloadTool ( javaRelease ) {
core /* info */ . pq ( `Downloading Java ${ javaRelease . version } ( ${ this . distribution } ) from ${ javaRelease . url } ...` );
let javaArchivePath = await this . downloadAndVerify ( javaRelease );
if ( this . verifySignature ) {
if ( ! javaRelease . signatureUrl ) {
throw new Error ( `Input 'verify-signature' is enabled, but no signature URL was found for Microsoft Build of OpenJDK version ${ javaRelease . version } .` );
}
core /* info */ . pq ( `Verifying Java package signature...` );
try {
await gpg /* verifyPackageSignature */ . Yi ( javaArchivePath , javaRelease . signatureUrl , this . verifySignaturePublicKey ?? MICROSOFT_PUBLIC_KEY );
}
catch ( error ) {
throw new Error ( `Failed to verify signature for Microsoft Build of OpenJDK version ${ javaRelease . version } . Signature URL: ${ javaRelease . signatureUrl } . Error: ${ error . message } ` , { cause : error });
}
}
core /* info */ . pq ( `Extracting Java archive...` );
const extension = ( 0 , util /* getDownloadArchiveExtension */ . ag )();
if ( process . platform === 'win32' ) {
javaArchivePath = ( 0 , util /* renameWinArchive */ . n2 )( javaArchivePath );
}
const extractedJavaPath = await ( 0 , util /* extractJdkFile */ . PE )( javaArchivePath , extension );
const archiveName = external_fs_default (). readdirSync ( extractedJavaPath )[ 0 ];
const archivePath = external_path_default (). join ( extractedJavaPath , archiveName );
2026-08-04 23:05:06 -04:00
const javaPath = await ( 0 , util /* cacheJdkDir */ . Vj )( archivePath , this . toolcacheFolderName , this . getToolcacheVersionName ( javaRelease . version ), this . architecture );
2026-07-29 17:53:33 -04:00
return { version : javaRelease . version , path : javaPath };
}
async findPackageForDownload ( range ) {
const arch = this . distributionArchitecture ();
if ( arch !== 'x64' && arch !== 'aarch64' ) {
throw new Error ( `Unsupported architecture: ${ this . architecture } ` );
}
if ( ! this . stable ) {
throw new Error ( 'Early access versions are not supported' );
}
if ( this . packageType !== 'jdk' ) {
throw new Error ( 'Microsoft Build of OpenJDK provides only the `jdk` package type' );
}
const manifest = await this . getAvailableVersions ();
if ( ! manifest ) {
throw new Error ( 'Could not load manifest for Microsoft Build of OpenJDK' );
}
const foundRelease = await tool_cache /* findFromManifest */ . DC ( range , true , manifest , arch );
if ( ! foundRelease ) {
const availableVersionStrings = manifest . map ( item => item . version );
throw this . createVersionNotFoundError ( range , availableVersionStrings );
}
const file = foundRelease . files [ 0 ];
const signatureUrl = file . signature_url ?? ` ${ file . download_url } .sig` ;
return {
url : file . download_url ,
signatureUrl ,
version : foundRelease . version ,
checksum : await this . fetchChecksum ( ` ${ file . download_url } .sha256sum.txt` , 'sha256' )
};
}
supportsSignatureVerification () {
return true ;
}
async getAvailableVersions () {
let releases = null ;
2026-08-13 22:10:57 -07:00
const fileUrl = `https://aka.ms/download-jdk/microsoft-openjdk-versions.json` ;
// Avoid leaking the GitHub token to a non-GitHub host (aka.ms redirects to a CDN).
const headers = { accept : 'application/json' };
2026-07-29 17:53:33 -04:00
let response = null ;
if ( core /* isDebug */ . _o ()) {
console . time ( 'Retrieving available versions for Microsoft took' ); // eslint-disable-line no-console
}
try {
response = await this . http . getJson ( fileUrl , headers );
if ( ! response . result ) {
return null ;
}
}
catch ( err ) {
core /* debug */ . Yz ( `Http request for microsoft-openjdk-versions.json failed with status code: ${ response ? . statusCode } . Error: ${ err } ` );
return null ;
}
if ( response . result ) {
releases = response . result ;
}
if ( core /* isDebug */ . _o () && releases ) {
core /* startGroup */ . Oh ( 'Print information about available versions' );
console . timeEnd ( 'Retrieving available versions for Microsoft took' ); // eslint-disable-line no-console
core /* debug */ . Yz ( `Available versions: [ ${ releases . length } ]` );
core /* debug */ . Yz ( releases . map ( item => item . version ). join ( ', ' ));
core /* endGroup */ . N4 ();
}
return releases ;
}
}
2026-07-30 15:09:35 -04:00
/***/ }),
/***/ 8343 :
/***/ (( __unused_webpack_module , __webpack_exports__ , __webpack_require__ ) => {
/* harmony export */ __webpack_require__ . d ( __webpack_exports__ , {
/* harmony export */ Fh : () => ( /* binding */ importKey ),
2026-08-05 18:05:36 +02:00
/* harmony export */ Yi : () => ( /* binding */ verifyPackageSignature ),
/* harmony export */ mS : () => ( /* binding */ removeGpgHome ),
/* harmony export */ nY : () => ( /* binding */ toGpgPath )
2026-07-30 15:09:35 -04:00
/* harmony export */ });
2026-08-05 18:05:36 +02:00
/* unused harmony export GPG_HOME_PREFIX */
2026-07-30 15:09:35 -04:00
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__ ( 9896 );
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__ . n ( fs__WEBPACK_IMPORTED_MODULE_0__ );
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__ ( 6928 );
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__ . n ( path__WEBPACK_IMPORTED_MODULE_1__ );
2026-08-05 18:05:36 +02:00
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__ ( 6982 );
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/ __webpack_require__ . n ( crypto__WEBPACK_IMPORTED_MODULE_2__ );
/* harmony import */ var _actions_io__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__ ( 8701 );
/* harmony import */ var _actions_exec__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__ ( 5260 );
/* harmony import */ var _actions_tool_cache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__ ( 9805 );
/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__ ( 4527 );
2026-07-30 15:09:35 -04:00
2026-08-05 18:05:36 +02:00
const GPG_HOME_PREFIX = 'setup-java-gpg-' ;
const VERIFY_GPG_HOME_PREFIX = 'verify-signature-gpg-home-' ;
2026-07-30 15:09:35 -04:00
// Convert a Windows path (D:\a\_temp\...) to a POSIX path (/d/a/_temp/...).
// The Git-bundled GPG on Windows (MSYS2-based) uses POSIX path conventions
// internally. Passing Windows paths with backslashes can cause fatal GPG errors
// (exit code 2), so all paths passed to GPG must be in POSIX format on Windows.
function toGpgPath ( p ) {
if ( process . platform !== 'win32' )
return p ;
return p
. replace ( /\\/g , '/' )
. replace ( /^([A-Za-z]):\// , ( _ , drive ) => `/ ${ drive . toLowerCase () } /` );
}
2026-08-05 18:05:36 +02:00
function createGpgHome ( prefix ) {
const gpgHome = fs__WEBPACK_IMPORTED_MODULE_0__ . mkdtempSync ( path__WEBPACK_IMPORTED_MODULE_1__ . join ( _util_js__WEBPACK_IMPORTED_MODULE_6__ /* .getTempDir */ . G4 (), prefix ));
if ( process . platform !== 'win32' ) {
fs__WEBPACK_IMPORTED_MODULE_0__ . chmodSync ( gpgHome , 0o700 );
}
return gpgHome ;
2026-07-30 15:09:35 -04:00
}
2026-08-05 18:05:36 +02:00
async function importKey ( privateKey ) {
const gpgHome = createGpgHome ( GPG_HOME_PREFIX );
const privateKeyFile = path__WEBPACK_IMPORTED_MODULE_1__ . join ( gpgHome , `private-key- ${ ( 0 , crypto__WEBPACK_IMPORTED_MODULE_2__ . randomUUID )() } .asc` );
try {
fs__WEBPACK_IMPORTED_MODULE_0__ . writeFileSync ( privateKeyFile , privateKey , {
encoding : 'utf-8' ,
flag : 'wx' ,
mode : 0o600
});
try {
await _actions_exec__WEBPACK_IMPORTED_MODULE_4__ /* .exec */ . m ( 'gpg' , [
'--homedir' ,
toGpgPath ( gpgHome ),
'--batch' ,
'--import' ,
toGpgPath ( privateKeyFile )
], { silent : true });
}
finally {
fs__WEBPACK_IMPORTED_MODULE_0__ . rmSync ( privateKeyFile , { force : true });
}
return gpgHome ;
}
catch ( error ) {
await removeGpgHome ( gpgHome );
throw error ;
}
}
async function removeGpgHome ( gpgHome ) {
if ( ! gpgHome ) {
return ;
}
const resolvedGpgHome = path__WEBPACK_IMPORTED_MODULE_1__ . resolve ( gpgHome );
const resolvedTempDir = path__WEBPACK_IMPORTED_MODULE_1__ . resolve ( _util_js__WEBPACK_IMPORTED_MODULE_6__ /* .getTempDir */ . G4 ());
if ( path__WEBPACK_IMPORTED_MODULE_1__ . dirname ( resolvedGpgHome ) !== resolvedTempDir ||
! path__WEBPACK_IMPORTED_MODULE_1__ . basename ( resolvedGpgHome ). startsWith ( GPG_HOME_PREFIX )) {
throw new Error ( `Refusing to remove unexpected GPG home: ${ gpgHome } ` );
}
if ( ! fs__WEBPACK_IMPORTED_MODULE_0__ . existsSync ( resolvedGpgHome )) {
return ;
}
try {
await _actions_exec__WEBPACK_IMPORTED_MODULE_4__ /* .exec */ . m ( 'gpgconf' , [ '--homedir' , toGpgPath ( resolvedGpgHome ), '--kill' , 'gpg-agent' ], { silent : true , ignoreReturnCode : true });
}
catch {
// gpgconf may be unavailable, but directory removal must still be attempted.
}
await _actions_io__WEBPACK_IMPORTED_MODULE_3__ /* .rmRF */ . Yz ( resolvedGpgHome );
2026-07-30 15:09:35 -04:00
}
async function verifyPackageSignature ( archivePath , signatureUrl , publicKeyContent ) {
2026-08-05 18:05:36 +02:00
const signaturePath = await _actions_tool_cache__WEBPACK_IMPORTED_MODULE_5__ /* .downloadTool */ . bq ( signatureUrl );
2026-07-30 15:09:35 -04:00
let gpgHome ;
try {
2026-08-05 18:05:36 +02:00
gpgHome = createGpgHome ( VERIFY_GPG_HOME_PREFIX );
2026-07-30 15:09:35 -04:00
}
catch ( error ) {
try {
2026-08-05 18:05:36 +02:00
await _actions_io__WEBPACK_IMPORTED_MODULE_3__ /* .rmRF */ . Yz ( signaturePath );
2026-07-30 15:09:35 -04:00
}
catch {
// ignore cleanup failures
}
throw new Error ( `Failed to create temporary GPG home directory for signature verification: ${ error . message } ` , { cause : error });
}
try {
const publicKeyFile = path__WEBPACK_IMPORTED_MODULE_1__ . join ( gpgHome , 'public-key.asc' );
fs__WEBPACK_IMPORTED_MODULE_0__ . writeFileSync ( publicKeyFile , publicKeyContent , { encoding : 'utf-8' });
const options = { silent : true };
2026-08-05 18:05:36 +02:00
await _actions_exec__WEBPACK_IMPORTED_MODULE_4__ /* .exec */ . m ( 'gpg' , [
2026-07-30 15:09:35 -04:00
'--homedir' ,
toGpgPath ( gpgHome ),
'--batch' ,
'--import' ,
toGpgPath ( publicKeyFile )
], options );
2026-08-05 18:05:36 +02:00
await _actions_exec__WEBPACK_IMPORTED_MODULE_4__ /* .exec */ . m ( 'gpg' , [
2026-07-30 15:09:35 -04:00
'--homedir' ,
toGpgPath ( gpgHome ),
'--batch' ,
'--verify' ,
toGpgPath ( signaturePath ),
toGpgPath ( archivePath )
], options );
}
finally {
2026-08-05 18:05:36 +02:00
await _actions_io__WEBPACK_IMPORTED_MODULE_3__ /* .rmRF */ . Yz ( signaturePath );
await _actions_io__WEBPACK_IMPORTED_MODULE_3__ /* .rmRF */ . Yz ( gpgHome );
2026-07-30 15:09:35 -04:00
}
}
2026-07-29 17:53:33 -04:00
/***/ })
};