build: only release on push to master #25
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: Build and Release JAR | |
on: | |
push: | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
include: | |
- os: ubuntu-latest | |
os-name: linux | |
- os: windows-latest | |
os-name: windows | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up JDK 21 (Zulu) | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
- name: Build with Maven | |
run: mvn package -B -DskipTests=true -f pom.xml | |
- name: Find JAR file | |
id: find-jar | |
uses: actions/github-script@v5 | |
with: | |
script: | | |
const fs = require('fs'); | |
const files = fs.readdirSync('./target').filter(fn => fn.endsWith('.jar')); | |
if (files.length > 0) { | |
core.setOutput('jar_name', files[0]); | |
} else { | |
core.setFailed('No JAR file found'); | |
} | |
- name: Rename JAR file | |
run: | | |
mv ./target/${{ steps.find-jar.outputs.jar_name }} ./target/${{ matrix.os-name }}-viro.jar | |
shell: bash | |
- name: Upload JAR Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.os-name }} | |
path: ./target/${{ matrix.os-name }}-viro.jar | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
path: target/ | |
- name: Get short SHA | |
id: short-sha | |
run: echo "SHORT_SHA=${GITHUB_SHA:0:7}" >> $GITHUB_ENV | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: nightly-${{ env.SHORT_SHA }} | |
release_name: nightly-${{ env.SHORT_SHA }} | |
draft: false | |
prerelease: true | |
- name: Upload Linux JAR to Release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/linux/linux-viro.jar | |
asset_name: viro-linux-${{ env.SHORT_SHA }}.jar | |
asset_content_type: application/java-archive | |
- name: Upload Windows JAR to Release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/windows/windows-viro.jar | |
asset_name: viro-windows-${{ env.SHORT_SHA }}.jar | |
asset_content_type: application/java-archive | |