mirror of
https://github.com/actions/setup-java
synced 2024-12-22 21:22:41 +00:00
Allow for alternate settings.xml file location
Use the m2-home to specify a new location for the settings.xml file
This commit is contained in:
parent
4757680fc9
commit
ae11e1a1b6
4 changed files with 36 additions and 4 deletions
|
@ -137,11 +137,11 @@ jobs:
|
||||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||||
username: ${{ github.actor }} # username for server authentication
|
username: ${{ github.actor }} # username for server authentication
|
||||||
password: ${{ github.token }} # password or token for authentication
|
password: ${{ github.token }} # password or token for authentication
|
||||||
m2-home: ${{ $GITHUB_WORKSPACE }} # location of the .m2 directory
|
m2-home: ${{ $GITHUB_WORKSPACE }} # location for the settings.xml file
|
||||||
- name: Build with Maven
|
- name: Build with Maven
|
||||||
run: mvn -B package --file pom.xml
|
run: mvn -B package --file pom.xml
|
||||||
- name: Publish to GitHub Packages Apache Maven
|
- name: Publish to GitHub Packages Apache Maven
|
||||||
run: mvn deploy
|
run: mvn deploy -s ${{ $GITHUB_WORKSPACE }}/settings.xml
|
||||||
```
|
```
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
|
@ -28,6 +28,31 @@ describe('auth tests', () => {
|
||||||
}
|
}
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
|
it('creates settings.xml in alternate locations', async () => {
|
||||||
|
const id = 'packages';
|
||||||
|
const username = 'bluebottle';
|
||||||
|
const password = 'SingleOrigin';
|
||||||
|
|
||||||
|
const altHome = path.join(__dirname, 'runner', 'settings');
|
||||||
|
const altSettingsFile = path.join(altHome, auth.SETTINGS_FILE);
|
||||||
|
process.env[`INPUT_M2-HOME`] = altHome;
|
||||||
|
await io.rmRF(altHome); // ensure it doesn't already exist
|
||||||
|
|
||||||
|
await auth.configAuthentication(id, username, password);
|
||||||
|
|
||||||
|
expect(fs.existsSync(m2Dir)).toBe(false);
|
||||||
|
expect(fs.existsSync(settingsFile)).toBe(false);
|
||||||
|
|
||||||
|
expect(fs.existsSync(altHome)).toBe(true);
|
||||||
|
expect(fs.existsSync(altSettingsFile)).toBe(true);
|
||||||
|
expect(fs.readFileSync(altSettingsFile, 'utf-8')).toEqual(
|
||||||
|
auth.generate(id, username, password)
|
||||||
|
);
|
||||||
|
|
||||||
|
delete process.env[`INPUT_M2-HOME`];
|
||||||
|
await io.rmRF(altHome);
|
||||||
|
}, 100000);
|
||||||
|
|
||||||
it('creates settings.xml with username and password', async () => {
|
it('creates settings.xml with username and password', async () => {
|
||||||
const id = 'packages';
|
const id = 'packages';
|
||||||
const username = 'bluebottle';
|
const username = 'bluebottle';
|
||||||
|
|
4
dist/index.js
generated
vendored
4
dist/index.js
generated
vendored
|
@ -4134,7 +4134,9 @@ function configAuthentication(id, username, password) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (id && username && password) {
|
if (id && username && password) {
|
||||||
console.log(`creating ${exports.SETTINGS_FILE} with server-id: ${id}, username: ${username}, and a password`);
|
console.log(`creating ${exports.SETTINGS_FILE} with server-id: ${id}, username: ${username}, and a password`);
|
||||||
const directory = path.join(os.homedir(), exports.M2_DIR);
|
// when an alternate m2 location is specified use only that location (no .m2 directory)
|
||||||
|
// otherwise use the home/.m2/ path
|
||||||
|
const directory = path.join(core.getInput('m2-home') || os.homedir(), core.getInput('m2-home') ? '' : exports.M2_DIR);
|
||||||
yield io.mkdirP(directory);
|
yield io.mkdirP(directory);
|
||||||
core.debug(`created directory ${directory}`);
|
core.debug(`created directory ${directory}`);
|
||||||
yield write(directory, generate(id, username, password));
|
yield write(directory, generate(id, username, password));
|
||||||
|
|
|
@ -16,7 +16,12 @@ export async function configAuthentication(
|
||||||
console.log(
|
console.log(
|
||||||
`creating ${SETTINGS_FILE} with server-id: ${id}, username: ${username}, and a password`
|
`creating ${SETTINGS_FILE} with server-id: ${id}, username: ${username}, and a password`
|
||||||
);
|
);
|
||||||
const directory: string = path.join(os.homedir(), M2_DIR);
|
// when an alternate m2 location is specified use only that location (no .m2 directory)
|
||||||
|
// otherwise use the home/.m2/ path
|
||||||
|
const directory: string = path.join(
|
||||||
|
core.getInput('m2-home') || os.homedir(),
|
||||||
|
core.getInput('m2-home') ? '' : M2_DIR
|
||||||
|
);
|
||||||
await io.mkdirP(directory);
|
await io.mkdirP(directory);
|
||||||
core.debug(`created directory ${directory}`);
|
core.debug(`created directory ${directory}`);
|
||||||
await write(directory, generate(id, username, password));
|
await write(directory, generate(id, username, password));
|
||||||
|
|
Loading…
Reference in a new issue