0.1.1 #20
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test and Deploy" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
release: | |
types: | |
- created | |
env: | |
JAVA_VERSION: '21' | |
JAVA_DISTRIBUTION: 'zulu' | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# 8 is the minimum version supported by the project | |
# but it's not tested here | |
# because the plugin requires Java 11 | |
java-version: [ 11, 17, 21 ] | |
java-distribution: [ 'zulu' ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK ${{ matrix.java-version }} | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: ${{ matrix.java-distribution }} | |
- name: Test | |
run: ./gradlew check | |
build: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ env.JAVA_VERSION }} | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
- name: Build | |
run: ./gradlew build | |
- name: Persist JAR Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: libs | |
path: build/libs/*.jar | |
javadoc: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ env.JAVA_VERSION }} | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
- name: Generate Documentation | |
run: ./gradlew dokkaHtml | |
- name: Persist Documentation | |
uses: actions/upload-artifact@v4 | |
with: | |
name: javadoc | |
path: ./build/dokka/html | |
deploy-gh-releases: | |
needs: [ build, javadoc ] | |
permissions: | |
contents: write | |
if: github.event_name == 'release' && github.event.action == 'created' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download JAR Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: libs | |
path: libs | |
- name: Download Java Documentation | |
uses: actions/download-artifact@v4 | |
with: | |
name: javadoc | |
path: javadoc | |
- name: Archive Documentation | |
run: tar -czf mnemonic4j-javadoc.tar.gz javadoc | |
- name: Upload artifacts to GitHub Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: | | |
libs/*.jar | |
mnemonic4j-javadoc.tar.gz | |
- name: Upload Documentation to GitHub Pages | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: javadoc | |
deploy-maven-central: | |
needs: [ build, javadoc ] | |
if: github.event_name == 'release' && github.event.action == 'created' | |
runs-on: ubuntu-latest | |
env: | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} | |
SIGNING_KEY: ${{ secrets.SIGNING_KEY }} | |
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ env.JAVA_VERSION }} | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
- name: Publish to Maven Central | |
run: ./gradlew publishAllPublicationsToCentralPortal |