Address latest review feedback

This commit is contained in:
Bryan Clark 2019-12-19 08:52:26 -08:00
parent 998be8d08f
commit 6924f73ee0
6 changed files with 30 additions and 25 deletions

View File

@ -72,22 +72,26 @@ jobs:
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
username: ${{ github.actor }} # username for server authentication
password: ${{ github.token }} # password or token for authentication
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Publish to GitHub Packages Apache Maven
run: mvn deploy
- name: Set up Apache Maven Central
uses: actions/setup-java@v1
with: # running setup-java again overwrites the settings.xml
java-version: 1.8
server-id: maven
username: maven_username
password: ${{ secrets.MAVEN_CENTRAL_TOKEN }} # password from secrets store
server-username: maven_username
server-password: ${{ secrets.MAVEN_CENTRAL_TOKEN }} # password from secrets store
- name: Publish to Apache Maven Central
run: mvn deploy
```
***NOTE: The `settings.xml` file is created in the Actions $HOME directory. If you have an existing `settings.xml` file at that location, it will be overwritten***
***NOTE: The `settings.xml` file is created in the Actions $HOME directory. If you have an existing `settings.xml` file at that location, it will be overwritten. See below for using the `settings-path` to change your `settings.xml` file location.***
See the help docs on [Publishing a Package](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#publishing-a-package) for more information on the `pom.xml` file.
@ -114,7 +118,7 @@ jobs:
PASSWORD: ${{ secrets.GITHUB_TOKEN }}
```
***NOTE: The `USERNAME` and `PASSWORD` need to correspond to the credentials environment variables used in the publishing section of your `build.gradle`..***
***NOTE: The `USERNAME` and `PASSWORD` need to correspond to the credentials environment variables used in the publishing section of your `build.gradle`.***
See the help docs on [Publishing a Package with Gradle](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages#example-using-gradle-groovy-for-a-single-package-in-a-repository) for more information on the `build.gradle` configuration file.
@ -135,11 +139,13 @@ jobs:
with:
java-version: 1.8
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
username: ${{ github.actor }} # username for server authentication
password: ${{ github.token }} # password or token for authentication
server-username: ${{ github.actor }} # username for server authentication
server-password: ${{ github.token }} # password or token for authentication
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Publish to GitHub Packages Apache Maven
run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
```

View File

@ -23,10 +23,10 @@ inputs:
description: 'ID of the distributionManagement repository in the pom.xml
file.'
required: false
username:
server-username:
description: 'Username for authentication to the Apache Maven repository.'
required: false
password:
server-password:
description: 'Password or token for authentication to the Apache Maven
repository.'
required: false

BIN
dist/index.js generated vendored

Binary file not shown.

View File

@ -5,10 +5,11 @@
"description": "setup java action",
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"build": "ncc build src/setup-java.ts",
"format": "prettier --write **/*.ts",
"format-check": "prettier --check **/*.ts",
"release": "ncc build lib/setup-java.js && git add -f dist/index.js",
"prerelease": "npm run-script build",
"release": "git add -f dist/index.js",
"test": "jest"
},
"repository": {

View File

@ -57,19 +57,15 @@ export function generate(id: string, username: string, password: string) {
}
async function write(directory: string, settings: string) {
const options = {encoding: 'utf-8', flag: 'wx'}; // 'wx': Like 'w' but fails if path exists
const location = path.join(directory, SETTINGS_FILE);
console.log(`writing ${location}`);
try {
return fs.writeFileSync(location, settings, options);
} catch (e) {
if (e.code == 'EEXIST') {
console.warn(`overwriting existing file ${location}`);
return fs.writeFileSync(location, settings, {
encoding: 'utf-8',
flag: 'w'
});
}
throw e;
if (fs.existsSync(location)) {
console.warn(`overwriting existing file ${location}`);
} else {
console.log(`writing ${location}`);
}
return fs.writeFileSync(location, settings, {
encoding: 'utf-8',
flag: 'w'
});
}

View File

@ -19,11 +19,13 @@ async function run() {
console.log(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
const id = core.getInput('server-id', {required: false});
const username = core.getInput('username', {required: false});
const password = core.getInput('password', {required: false});
const username = core.getInput('server-username', {required: false});
const password = core.getInput('server-password', {required: false});
if (id && username && password) {
await auth.configAuthentication(id, username, password);
} else if (id || username || password) {
console.warn('All 3 server-(id, username, and password) are required.');
}
} catch (error) {
core.setFailed(error.message);