Skip to content

Release

Release #39

Workflow file for this run

name: Release
on:
workflow_dispatch: # Manual trigger
inputs:
version:
type: string
description: Version to release
required: true
env:
JAVA_VERSION: 21
VERSION: ${{ inputs.version }}
jobs:
buildJava:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'microsoft'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Grant execute permission for Gradle wrapper
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew build --rerun-tasks --stacktrace
- name: Create native artifact
run: ./gradlew copyForNative --rerun-tasks --stacktrace
- name: Store native artifact
uses: actions/upload-artifact@v4
with:
name: native-quilt-installer-jar-${{ github.sha }}
path: build/native-quilt-installer.jar
- name: Publish to releases maven
run: ./gradlew publish --rerun-tasks --stacktrace
env:
MAVEN_URL: ${{ secrets.MAVEN_URL }}
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
- name: Publish to snapshots maven
continue-on-error: true
run: ./gradlew publish --rerun-tasks --stacktrace
env:
SNAPSHOTS_URL: ${{ secrets.SNAPSHOTS_URL }}
SNAPSHOTS_USERNAME: ${{ secrets.SNAPSHOTS_USERNAME }}
SNAPSHOTS_PASSWORD: ${{ secrets.SNAPSHOTS_PASSWORD }}
buildNatives:
needs: buildJava
strategy:
matrix:
include:
- name: Windows x64
publish_target: windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
file_extension: .exe
- name: Windows x86
publish_target: windows-i686
os: windows-latest
target: i686-pc-windows-msvc
file_extension: .exe
- name: Windows arm64
publish_target: windows-aarch64
os: windows-latest
target: aarch64-pc-windows-msvc
file_extension: .exe
env:
QUILT_INSTALLER_JAR_PATH: jars/native-quilt-installer.jar
# for publishing
NATIVE_TARGET: ${{ matrix.target }}
NATIVE_TARGET_ARTIFACT_ID: ${{ matrix.publish_target }}
NATIVE_TARGET_EXT: ${{ matrix.file_extension }}
runs-on: ${{ matrix.os }}
steps:
# TODO: Fix macOS in future
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'microsoft'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Grant execute permission for Gradle wrapper
run: chmod +x ./gradlew
- run: rustup target add ${{ matrix.target }}
- name: download native jar
uses: actions/download-artifact@v4
with:
name: native-quilt-installer-jar-${{ github.sha }}
path: native/jars
- name: Run Cargo
run: cargo build --release --target ${{ matrix.target }}
working-directory: ./native
- uses: actions/upload-artifact@v4
with:
name: Quilt Native Installer ${{ env.VERSION }} (${{ matrix.name }})
path: native/target/${{ matrix.target }}/release/quilt-installer${{ matrix.file_extension }}
- name: Publish native installer ${{ matrix.publish_target }} to releases maven
run: ./gradlew publish --rerun-tasks --stacktrace
env:
MAVEN_URL: ${{ secrets.MAVEN_URL }}
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
- name: Publish native installer ${{ matrix.publish_target }} to snapshots maven
run: ./gradlew publish --rerun-tasks --stacktrace
env:
SNAPSHOTS_URL: ${{ secrets.SNAPSHOTS_URL }}
SNAPSHOTS_USERNAME: ${{ secrets.SNAPSHOTS_USERNAME }}
SNAPSHOTS_PASSWORD: ${{ secrets.SNAPSHOTS_PASSWORD }}