mirror of
				https://github.com/actions/setup-java.git
				synced 2025-10-31 22:40:54 +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
				
					
						6fa8ff8bf6
					
				
			
		
					 12 changed files with 222 additions and 127 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,2 @@ | ||||||
| dist/index.js    -diff -merge |  | ||||||
| dist/index.js    linguist-generated=true |  | ||||||
| .licenses/** -diff linguist-generated=true | .licenses/** -diff linguist-generated=true | ||||||
|  | dist/** -diff linguist-generated=true | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
										
									
									
									
								
							|  | @ -13,6 +13,25 @@ This action sets up a java environment for use in actions by: | ||||||
| 
 | 
 | ||||||
| See [action.yml](action.yml) | See [action.yml](action.yml) | ||||||
| 
 | 
 | ||||||
|  | ## MTLS Basic  | ||||||
|  | ```yaml | ||||||
|  | steps: | ||||||
|  | - uses: tradeshift/actions-setup-java@master | ||||||
|  |   with: | ||||||
|  |     # standard github actions parameters | ||||||
|  |     # possible values explained in sections below  | ||||||
|  |     java-version: 11 | ||||||
|  |     # mvn and MTLS related parameters | ||||||
|  |     maven-version: "3.6.3"  | ||||||
|  |     maven-ca-cert-b64: ${{ secrets.MTLS_CACERT }} | ||||||
|  |     maven-keystore-p12-b64: ${{ secrets.MAVEN_P12 }} | ||||||
|  |     maven-keystore-password: ${{ secrets.MAVEN_P12_PASSWORD }} | ||||||
|  |     maven-settings-b64: ${{ secrets.MAVEN_SETTINGS }} | ||||||
|  |     maven-security-settings-b64: ${{ secrets.MAVEN_SECURITY }}  | ||||||
|  | - run: | | ||||||
|  |     mvn -B compile | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## Basic | ## Basic | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|  |  | ||||||
|  | @ -156,4 +156,24 @@ describe('installer tests', () => { | ||||||
|     expect(thrown).toBe(true); |     expect(thrown).toBe(true); | ||||||
|     return; |     return; | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   it('throws error when given invalid maven version', async () => { | ||||||
|  |     expect(installer.getMaven('2-3-4')).rejects.toThrow(); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   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'); | ||||||
|  |     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'); | ||||||
|  |   }); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -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. You have to provide version in order to setup maven. | ||||||
|  |         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
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/cleanup/index.js
									
										
									
										generated
									
									
										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'; | ||||||
|  |  | ||||||
							
								
								
									
										108
									
								
								dist/setup/index.js
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										108
									
								
								dist/setup/index.js
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -11056,29 +11056,25 @@ 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 = 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)); | ||||||
| const constants = __importStar(__webpack_require__(694)); | const constants = __importStar(__webpack_require__(694)); | ||||||
| const os = __importStar(__webpack_require__(87)); | const os = __importStar(__webpack_require__(87)); | ||||||
|  | const exec = __importStar(__webpack_require__(986)); | ||||||
| const io = __importStar(__webpack_require__(1)); | const io = __importStar(__webpack_require__(1)); | ||||||
| function validateOptions(opts) { | function isValidOptions(mvnOpts) { | ||||||
|     if ((opts.caCert === '' || |     return (mvnOpts.caCert !== '' && | ||||||
|         opts.keystore === '' || |         mvnOpts.keystore !== '' && | ||||||
|         opts.password === '' || |         mvnOpts.password !== '' && | ||||||
|         opts.securitySettings === '', |         mvnOpts.securitySettings !== '' && | ||||||
|         opts.settings === '')) { |         mvnOpts.settings !== ''); | ||||||
|         core.debug('maven options set is not valid: some field is empty'); |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|     return true; |  | ||||||
| } | } | ||||||
| exports.validateOptions = validateOptions; | 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'); | ||||||
|         const certDir = path.join(os.homedir(), 'certs'); |  | ||||||
|         fs.writeFileSync(path.join(settingsDir, 'settings.xml'), btoa(opts.settings), { |         fs.writeFileSync(path.join(settingsDir, 'settings.xml'), btoa(opts.settings), { | ||||||
|             encoding: 'utf-8', |             encoding: 'utf-8', | ||||||
|             flag: 'w' |             flag: 'w' | ||||||
|  | @ -11087,26 +11083,35 @@ function setupMaven(opts) { | ||||||
|             encoding: 'utf-8', |             encoding: 'utf-8', | ||||||
|             flag: 'w' |             flag: 'w' | ||||||
|         }); |         }); | ||||||
|  |         const certDir = path.join(os.homedir(), 'certs'); | ||||||
|  |         const rooCaPath = path.join(certDir, 'rootca.crt'); | ||||||
|         yield io.mkdirP(certDir); |         yield io.mkdirP(certDir); | ||||||
|         fs.writeFileSync(path.join(certDir, 'rootca.crt'), btoa(opts.caCert), { |         fs.writeFileSync(rooCaPath, btoa(opts.caCert), { | ||||||
|             encoding: 'utf-8', |             encoding: 'utf-8', | ||||||
|             flag: 'w' |             flag: 'w' | ||||||
|         }); |         }); | ||||||
|         const p12Path = path.join(certDir, 'certificate.p12'); |         const p12Path = path.join(certDir, 'certificate.p12'); | ||||||
|         fs.writeFileSync(p12Path, btoa(opts.keystore), { |         fs.writeFileSync(p12Path, Buffer.from(opts.keystore, 'base64')); | ||||||
|             encoding: 'utf-8', |         core.exportVariable('MAVEN_OPTS', `-Djavax.net.ssl.keyStore=${p12Path} -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=${opts.password}`); | ||||||
|             flag: 'w' |         yield exec.exec(path.join(opts.javaPath, 'bin/keytool'), [ | ||||||
|         }); |             '-importcert', | ||||||
|         const password = btoa(opts.password); |             '-cacerts', | ||||||
|         core.exportVariable('MAVEN_OPTS', `-Djavax.net.ssl.keyStore=${p12Path} -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=${password}`); |             '-storepass', | ||||||
|  |             'changeit', | ||||||
|  |             '-noprompt', | ||||||
|  |             '-alias', | ||||||
|  |             'mycert', | ||||||
|  |             '-file', | ||||||
|  |             rooCaPath | ||||||
|  |         ]); | ||||||
|         core.debug(`added maven opts for MTLS access`); |         core.debug(`added maven opts for MTLS access`); | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.setupMaven = setupMaven; | exports.setupMaven = setupMaven; | ||||||
| const btoa = function (str) { | const atob = function (str) { | ||||||
|     return Buffer.from(str, 'binary').toString('base64'); |     return Buffer.from(str, 'binary').toString('base64'); | ||||||
| }; | }; | ||||||
| const atob = function (str) { | const btoa = function (str) { | ||||||
|     return Buffer.from(str, 'base64').toString('binary'); |     return Buffer.from(str, 'base64').toString('binary'); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | @ -30166,7 +30171,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 +30188,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'; | ||||||
|  | @ -33356,21 +33362,15 @@ function run() { | ||||||
|             if (!version) { |             if (!version) { | ||||||
|                 version = core.getInput(constants.INPUT_JAVA_VERSION, { required: true }); |                 version = core.getInput(constants.INPUT_JAVA_VERSION, { required: true }); | ||||||
|             } |             } | ||||||
|             const mvnOpts = { |             let mvnOpts = { | ||||||
|                 caCert: core.getInput(constants.INPUT_MAVEN_CA_CERT_B64), |                 caCert: core.getInput(constants.INPUT_MAVEN_CA_CERT_B64), | ||||||
|                 keystore: core.getInput(constants.INPUT_MAVEN_KEYSTORE_P12_B64), |                 keystore: core.getInput(constants.INPUT_MAVEN_KEYSTORE_P12_B64), | ||||||
|                 password: core.getInput(constants.INPUT_MAVEN_KEYSTORE_PASSWORD), |                 password: core.getInput(constants.INPUT_MAVEN_KEYSTORE_PASSWORD), | ||||||
|                 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), | ||||||
|  |                 javaPath: '' | ||||||
|             }; |             }; | ||||||
|             if ((mvnOpts.caCert !== '' || |             const mvnVersion = core.getInput(constants.INPUT_MAVEN_VERSION); | ||||||
|                 mvnOpts.keystore !== '' || |  | ||||||
|                 mvnOpts.password !== '' || |  | ||||||
|                 mvnOpts.securitySettings !== '', |  | ||||||
|                 mvnOpts.settings !== '') && |  | ||||||
|                 !maven_1.validateOptions(mvnOpts)) { |  | ||||||
|                 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 }); | ||||||
|             if (!['x86', 'x64'].includes(arch)) { |             if (!['x86', 'x64'].includes(arch)) { | ||||||
|                 throw new Error(`architecture "${arch}" is not in [x86 | x64]`); |                 throw new Error(`architecture "${arch}" is not in [x86 | x64]`); | ||||||
|  | @ -33379,7 +33379,17 @@ function run() { | ||||||
|                 required: true |                 required: true | ||||||
|             }); |             }); | ||||||
|             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); |             const javaPath = yield installer.getJava(version, arch, jdkFile, javaPackage); | ||||||
|  |             if (mvnVersion !== '') { | ||||||
|  |                 if (!maven_1.isValidOptions(mvnOpts)) { | ||||||
|  |                     throw new Error('Some of the Maven options is empty: please check maven-* parameters'); | ||||||
|  |                 } | ||||||
|  |                 mvnOpts.javaPath = javaPath; | ||||||
|  |                 yield installer.getMaven(mvnVersion); | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 mvnOpts = undefined; | ||||||
|  |             } | ||||||
|             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,33 @@ 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* () { | ||||||
|  |         if (semver.valid(version) === null) { | ||||||
|  |             throw new Error(`wrong version is set(${version}): supported version template: major.minor.patch`); | ||||||
|  |         } | ||||||
|  |         const majorVersion = semver.major(version); | ||||||
|  |         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); | ||||||
|  |         core.addPath(path.join(toolPath, 'bin')); | ||||||
|  |         core.setOutput('path', toolPath); | ||||||
|  |         core.setOutput('version', version); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | 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); | ||||||
|  | @ -38776,6 +38813,7 @@ function getJava(version, arch, jdkFile, javaPackage) { | ||||||
|         core.addPath(path.join(toolPath, 'bin')); |         core.addPath(path.join(toolPath, 'bin')); | ||||||
|         core.setOutput('path', toolPath); |         core.setOutput('path', toolPath); | ||||||
|         core.setOutput('version', version); |         core.setOutput('version', version); | ||||||
|  |         return toolPath; | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.getJava = getJava; | exports.getJava = getJava; | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										45
									
								
								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,8 +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", |         "semver": "^6.3.0", | ||||||
|         "semver": "^6.1.1", |  | ||||||
|         "xmlbuilder2": "^2.4.0" |         "xmlbuilder2": "^2.4.0" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|  | @ -603,15 +603,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 +3416,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", | ||||||
|  | @ -5872,14 +5858,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 +6412,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 +8670,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", | ||||||
|  | @ -10683,11 +10647,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,7 +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", | ||||||
|     "semver": "^6.1.1", |     "semver": "^6.3.0", | ||||||
|     "xmlbuilder2": "^2.4.0" |     "xmlbuilder2": "^2.4.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  |  | ||||||
|  | @ -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,12 +11,58 @@ 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> { | ||||||
|  |   if (semver.valid(version) === null) { | ||||||
|  |     throw new Error( | ||||||
|  |       `wrong version is set(${version}): supported version template: major.minor.patch` | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|  |   const majorVersion = semver.major(version); | ||||||
|  |   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); | ||||||
|  |   core.addPath(path.join(toolPath, 'bin')); | ||||||
|  |   core.setOutput('path', toolPath); | ||||||
|  |   core.setOutput('version', version); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| export async function getJava( | export async function getJava( | ||||||
|   version: string, |   version: string, | ||||||
|   arch: string, |   arch: string, | ||||||
|   jdkFile: string, |   jdkFile: string, | ||||||
|   javaPackage: string |   javaPackage: string | ||||||
| ): Promise<void> { | ): Promise<string> { | ||||||
|   let toolPath = tc.find(javaPackage, version); |   let toolPath = tc.find(javaPackage, version); | ||||||
| 
 | 
 | ||||||
|   if (toolPath) { |   if (toolPath) { | ||||||
|  | @ -83,6 +129,8 @@ export async function getJava( | ||||||
|   core.addPath(path.join(toolPath, 'bin')); |   core.addPath(path.join(toolPath, 'bin')); | ||||||
|   core.setOutput('path', toolPath); |   core.setOutput('path', toolPath); | ||||||
|   core.setOutput('version', version); |   core.setOutput('version', version); | ||||||
|  | 
 | ||||||
|  |   return toolPath; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function getCacheVersionString(version: string) { | function getCacheVersionString(version: string) { | ||||||
|  |  | ||||||
							
								
								
									
										64
									
								
								src/maven.ts
									
										
									
									
									
								
							
							
						
						
									
										64
									
								
								src/maven.ts
									
										
									
									
									
								
							|  | @ -3,6 +3,7 @@ import * as fs from 'fs'; | ||||||
| import * as path from 'path'; | import * as path from 'path'; | ||||||
| import * as constants from './constants'; | import * as constants from './constants'; | ||||||
| import * as os from 'os'; | import * as os from 'os'; | ||||||
|  | import * as exec from '@actions/exec'; | ||||||
| import * as io from '@actions/io'; | import * as io from '@actions/io'; | ||||||
| 
 | 
 | ||||||
| export interface MavenOpts { | export interface MavenOpts { | ||||||
|  | @ -11,35 +12,17 @@ export interface MavenOpts { | ||||||
|   password: string; |   password: string; | ||||||
|   settings: string; |   settings: string; | ||||||
|   securitySettings: string; |   securitySettings: string; | ||||||
| } |   javaPath: string; | ||||||
| 
 |  | ||||||
| export function validateOptions(opts: MavenOpts): boolean { |  | ||||||
|   if ( |  | ||||||
|     (opts.caCert === '' || |  | ||||||
|       opts.keystore === '' || |  | ||||||
|       opts.password === '' || |  | ||||||
|       opts.securitySettings === '', |  | ||||||
|     opts.settings === '') |  | ||||||
|   ) { |  | ||||||
|     core.debug('maven options set is not valid: some field is empty'); |  | ||||||
|     return false; |  | ||||||
|   } |  | ||||||
|   return true; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function isValidOptions(mvnOpts: MavenOpts): boolean { | export function isValidOptions(mvnOpts: MavenOpts): boolean { | ||||||
|   if ( |   return ( | ||||||
|     (mvnOpts.caCert !== '' || |     mvnOpts.caCert !== '' && | ||||||
|       mvnOpts.keystore !== '' || |     mvnOpts.keystore !== '' && | ||||||
|       mvnOpts.password !== '' || |     mvnOpts.password !== '' && | ||||||
|       mvnOpts.securitySettings !== '', |     mvnOpts.securitySettings !== '' && | ||||||
|     mvnOpts.settings !== '') && |     mvnOpts.settings !== '' | ||||||
|     !validateOptions(mvnOpts) |   ); | ||||||
|   ) { |  | ||||||
|     return false; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   return true; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function setupMaven(opts: MavenOpts): Promise<void> { | export async function setupMaven(opts: MavenOpts): Promise<void> { | ||||||
|  | @ -47,7 +30,6 @@ export async function setupMaven(opts: MavenOpts): Promise<void> { | ||||||
|     core.getInput(constants.INPUT_SETTINGS_PATH) || os.homedir(), |     core.getInput(constants.INPUT_SETTINGS_PATH) || os.homedir(), | ||||||
|     core.getInput(constants.INPUT_SETTINGS_PATH) ? '' : '.m2' |     core.getInput(constants.INPUT_SETTINGS_PATH) ? '' : '.m2' | ||||||
|   ); |   ); | ||||||
|   const certDir = path.join(os.homedir(), 'certs'); |  | ||||||
| 
 | 
 | ||||||
|   fs.writeFileSync( |   fs.writeFileSync( | ||||||
|     path.join(settingsDir, 'settings.xml'), |     path.join(settingsDir, 'settings.xml'), | ||||||
|  | @ -67,31 +49,41 @@ export async function setupMaven(opts: MavenOpts): Promise<void> { | ||||||
|     } |     } | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|  |   const certDir = path.join(os.homedir(), 'certs'); | ||||||
|  |   const rooCaPath = path.join(certDir, 'rootca.crt'); | ||||||
|   await io.mkdirP(certDir); |   await io.mkdirP(certDir); | ||||||
|   fs.writeFileSync(path.join(certDir, 'rootca.crt'), btoa(opts.caCert), { |   fs.writeFileSync(rooCaPath, btoa(opts.caCert), { | ||||||
|     encoding: 'utf-8', |     encoding: 'utf-8', | ||||||
|     flag: 'w' |     flag: 'w' | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   const p12Path = path.join(certDir, 'certificate.p12'); |   const p12Path = path.join(certDir, 'certificate.p12'); | ||||||
|   fs.writeFileSync(p12Path, btoa(opts.keystore), { |   fs.writeFileSync(p12Path, Buffer.from(opts.keystore, 'base64')); | ||||||
|     encoding: 'utf-8', |  | ||||||
|     flag: 'w' |  | ||||||
|   }); |  | ||||||
| 
 | 
 | ||||||
|   const password = btoa(opts.password); |  | ||||||
|   core.exportVariable( |   core.exportVariable( | ||||||
|     'MAVEN_OPTS', |     'MAVEN_OPTS', | ||||||
|     `-Djavax.net.ssl.keyStore=${p12Path} -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=${password}` |     `-Djavax.net.ssl.keyStore=${p12Path} -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=${opts.password}` | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|  |   await exec.exec(path.join(opts.javaPath, 'bin/keytool'), [ | ||||||
|  |     '-importcert', | ||||||
|  |     '-cacerts', | ||||||
|  |     '-storepass', | ||||||
|  |     'changeit', | ||||||
|  |     '-noprompt', | ||||||
|  |     '-alias', | ||||||
|  |     'mycert', | ||||||
|  |     '-file', | ||||||
|  |     rooCaPath | ||||||
|  |   ]); | ||||||
|  | 
 | ||||||
|   core.debug(`added maven opts for MTLS access`); |   core.debug(`added maven opts for MTLS access`); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const btoa = function(str: string) { | const atob = function(str: string) { | ||||||
|   return Buffer.from(str, 'binary').toString('base64'); |   return Buffer.from(str, 'binary').toString('base64'); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const atob = function(str: string) { | const btoa = function(str: string) { | ||||||
|   return Buffer.from(str, 'base64').toString('binary'); |   return Buffer.from(str, 'base64').toString('binary'); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -13,21 +13,18 @@ async function run() { | ||||||
|       version = core.getInput(constants.INPUT_JAVA_VERSION, {required: true}); |       version = core.getInput(constants.INPUT_JAVA_VERSION, {required: true}); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const mvnOpts: MavenOpts = { |     let mvnOpts: MavenOpts | undefined = { | ||||||
|       caCert: core.getInput(constants.INPUT_MAVEN_CA_CERT_B64), |       caCert: core.getInput(constants.INPUT_MAVEN_CA_CERT_B64), | ||||||
|       keystore: core.getInput(constants.INPUT_MAVEN_KEYSTORE_P12_B64), |       keystore: core.getInput(constants.INPUT_MAVEN_KEYSTORE_P12_B64), | ||||||
|       password: core.getInput(constants.INPUT_MAVEN_KEYSTORE_PASSWORD), |       password: core.getInput(constants.INPUT_MAVEN_KEYSTORE_PASSWORD), | ||||||
|       settings: core.getInput(constants.INPUT_MAVEN_SETTINGS_B64), |       settings: core.getInput(constants.INPUT_MAVEN_SETTINGS_B64), | ||||||
|       securitySettings: core.getInput( |       securitySettings: core.getInput( | ||||||
|         constants.INPUT_MAVEN_SECURITY_SETTINGS_B64 |         constants.INPUT_MAVEN_SECURITY_SETTINGS_B64 | ||||||
|       ) |       ), | ||||||
|  |       javaPath: '' | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     if (!isValidOptions(mvnOpts)) { |     const mvnVersion = core.getInput(constants.INPUT_MAVEN_VERSION); | ||||||
|       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}); | ||||||
|     if (!['x86', 'x64'].includes(arch)) { |     if (!['x86', 'x64'].includes(arch)) { | ||||||
|  | @ -39,7 +36,24 @@ 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); |     const javaPath = await installer.getJava( | ||||||
|  |       version, | ||||||
|  |       arch, | ||||||
|  |       jdkFile, | ||||||
|  |       javaPackage | ||||||
|  |     ); | ||||||
|  |     if (mvnVersion !== '') { | ||||||
|  |       if (!isValidOptions(mvnOpts)) { | ||||||
|  |         throw new Error( | ||||||
|  |           'Some of the Maven options is empty: please check maven-* parameters' | ||||||
|  |         ); | ||||||
|  |       } | ||||||
|  |       mvnOpts.javaPath = javaPath; | ||||||
|  | 
 | ||||||
|  |       await installer.getMaven(mvnVersion); | ||||||
|  |     } else { | ||||||
|  |       mvnOpts = undefined; | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     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