Set up your GitHub Actions workflow with a specific version of Java
Find a file
Bryan Clark 8ccac94e40
README Small spelling fix. Also some rewording
Co-Authored-By: Konrad Pabjan <konradpabjan@github.com>
2019-12-09 12:16:15 -05:00
.github Create lint-yaml.yml 2019-11-25 12:16:39 -05:00
__tests__ Add test for overwrite 2019-12-06 14:46:35 -05:00
dist build release 2019-12-06 14:46:43 -05:00
docs Update contributors.md 2019-11-25 11:36:48 -05:00
src Format auth 2019-12-06 14:32:51 -05:00
.gitattributes Update gitattributes and remove lib files 2019-11-28 13:35:47 -08:00
.gitignore ignore vscode directory 2019-11-28 13:35:47 -08:00
.prettierrc.json Populate repo 2019-07-10 10:54:25 -04:00
action.yml Apply suggestions from code review 2019-12-06 15:31:28 -05:00
jest.config.js Populate repo 2019-07-10 10:54:25 -04:00
LICENSE Populate repo 2019-07-10 10:54:25 -04:00
package-lock.json Cleanup 2019-11-25 10:12:17 -05:00
package.json direct ncc to setup-java 2019-11-28 14:48:36 -08:00
README.md README Small spelling fix. Also some rewording 2019-12-09 12:16:15 -05:00
tsconfig.json Populate repo 2019-07-10 10:54:25 -04:00
yaml-lint-config.yml Create yaml-lint-config.yml 2019-11-25 12:15:12 -05:00

setup-java

GitHub Actions status

This action sets up a java environment for use in actions by:

  • optionally downloading and caching a requested version of java by version and adding to PATH. Default downloads are populated from the Zulu Community distribution of OpenJDK
  • registering problem matchers for error output

Usage

See action.yml

Basic:

steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
  with:
    java-version: '9.0.4' # The JDK version to make available on the path. Takes a whole or semver JDK version, or 1.x syntax (e.g. 1.8 => Jdk 8.x). To specify a specific version for JDK 8 or older use the following pattern (8.0.x)
    java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
    architecture: x64 # (x64 or x86) - defaults to x64
- run: java -cp java HelloWorldApp

From local file:

steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
  with:
    java-version: '4.0.0'
    architecture: x64
    jdkFile: <path to jdkFile> # Optional - jdkFile to install java from. Useful for versions not found on Zulu Community CDN
- run: java -cp java HelloWorldApp

Matrix Testing:

jobs:
  build:
    runs-on: ubuntu-16.04
    strategy:
      matrix:
        # test against latest update of each major Java version, as well as specific updates of LTS versions:
        java: [ 1.6, 6.0.83, 7, 7.0.181, 8, 8.0.192, 9.0,x, 10, 11.0.x, 11.0.3, 12, 13 ]
    name: Java ${{ matrix.java }} sample
    steps:
      - uses: actions/checkout@master
      - name: Setup java
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}
      - run: java -cp java HelloWorldApp

Publishing using Apache Maven:

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      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
    - 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
    - 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

See the help docs on Publishing a Package for more information on the pom.xml file.

Publishing using Gradle:

jobs:

  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1

    - name: Set up JDK 1.8
      uses: actions/setup-java@v1

    - name: Build with Gradle
      run: gradle build

    - name: Publish to GitHub Packages
      run: gradle publish
      env:
        USERNAME: ${{ github.actor }}
        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..

See the help docs on Publishing a Package with Gradle for more information on the build.gradle configuration file.

License

The scripts and documentation in this project are released under the MIT License

Contributions

Contributions are welcome! See Contributor's Guide