Nightly Build #2
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: Nightly Build | |
on: | |
workflow_dispatch | |
jobs: | |
# Builds documentation pdf file in cli/target/package and uploads artifact to docs | |
build-documentation: | |
name: Build documentation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '17' | |
- name: Make documentation available | |
run: | | |
cd documentation | |
mvn -B -ntp -Dstyle.color=always -DskipTests=true package | |
- name: Upload documentation | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs | |
path: documentation/target/generated-docs/*.pdf | |
# Downloads documentation docs artifact, builds all native images, archives native image for each os with documentation pdf file and uploads artifacts to f.e. natives-windows-latest | |
build-natives: | |
name: Build native images | |
needs: build-documentation | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ windows-latest, ubuntu-latest, macos-latest, macos-13 ] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '21.0.2' | |
distribution: 'graalvm' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
native-image-job-reports: 'true' | |
- name: Download documentation | |
uses: actions/download-artifact@v4 | |
with: | |
name: docs | |
path: ./cli/target/package | |
- name: Build native image | |
shell: bash | |
run: | | |
cd cli | |
mvn -B -ntp -Dideasy.assembly.id=${{ matrix.os }} -Pnative -DskipTests=true package | |
- name: Upload native image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: natives-${{ matrix.os }} | |
path: cli/target/*.tar.gz | |
# Downloads all native image artifacts to cli/target and builds the project for deployment to OSSRH Nexus | |
deploy: | |
name: Build Project and Deploy | |
needs: [ build-documentation, build-natives ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '17' | |
- name: Download natives and build project | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: natives-* | |
path: ./cli/target/ | |
merge-multiple: true | |
- run: | | |
mvn -B -ntp -Dstyle.color=always install | |
- name: Deploy to OSSRH nexus | |
env: | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
run: mvn --settings .mvn/settings.xml -DskipTests=true -Darchetype.test.skip=true -Dmaven.install.skip=true -Dgpg.skip=true -Dstyle.color=always -B -ntp -Pdeploy deploy |