Skip to content

Deploy workflow

Deploy workflow #97

Workflow file for this run

name: Java CI with Maven
on:
push:
branches: [ "main", "deploy" ]
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: '23'
distribution: 'temurin'
cache: maven
- name: Cache jextract
id: cache-jextract
uses: actions/cache@v4
with:
path: jextract
key: 22-jextract+5-33
- name: Set up jextract
if: steps.cache-jextract.outputs.cache-hit != 'true'
run: ./prepare-jextract.sh
- name: Check sources with Maven
run: |
mvn -B -f jgpio/pom.xml license:check
# TODO check formatting
- name: Build with Maven
run: |
./prepare.sh
mvn -B -f jgpio/pom.xml install -Djextract.bin=../jextract/bin/jextract
mvn -B -f jgpio-it/pom.xml package
mvn -B -f examples/pom.xml package
- uses: actions/upload-artifact@v4
with:
name: jgpio-target
path: jgpio/target
test-it:
needs: build
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: '23'
distribution: 'temurin'
cache: maven
- uses: actions/download-artifact@v4
with:
name: jgpio-target
path: jgpio/target
- name: Test IT
run: |
mvn -B -f jgpio/pom.xml jar:jar install:install
mvn -B -f jgpio-it/pom.xml verify
deploy:
needs: [ build, test-it ]
if: startsWith(github.event.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: '23'
distribution: 'temurin'
cache: maven
- uses: s4u/[email protected]
with:
servers: |
[{
"id": "central",
"username": "${{ secrets.CENTRAL_USERNAME }}",
"password": "${{ secrets.CENTRAL_TOKEN }}"
}]
- name: Cache jextract
id: cache-jextract
uses: actions/cache@v4
with:
path: jextract
key: 22-jextract+5-33
- name: Set up jextract
if: steps.cache-jextract.outputs.cache-hit != 'true'
run: ./prepare-jextract.sh
- name: Deploy with Maven
env:
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }}
run: |
./prepare.sh
mvn -B -ntp -f jgpio/pom.xml -P release deploy -DskipTests -Dgpg.signer=bc -Djextract.bin=../jextract/bin/jextract