Merge pull request #325 from bwRavencl/dependabot/gradle/com.github.s… #404
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
on: | |
push: | |
branches: | |
- master | |
env: | |
JAVA_VERSION: 23.0.1+11 | |
GRADLE_OPTS: -Dorg.gradle.daemon=false | |
jobs: | |
release: | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [windows-latest, ubuntu-latest, ubuntu-24.04-arm] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Setup Platform Variables | |
id: platform_variables | |
shell: bash | |
run: | | |
case ${{ matrix.os }} in | |
windows-latest) | |
echo jdk_os=windows >> $GITHUB_OUTPUT | |
echo jdk_arch=x64 >> $GITHUB_OUTPUT | |
echo jdk_archive_type=zip >> $GITHUB_OUTPUT | |
echo dist_os=windows >> $GITHUB_OUTPUT | |
echo dist_arch=x86-64 >> $GITHUB_OUTPUT | |
echo dist_archive_extension=zip >> $GITHUB_OUTPUT | |
;; | |
ubuntu-latest) | |
echo jdk_os=linux-glibc >> $GITHUB_OUTPUT | |
echo jdk_arch=x64 >> $GITHUB_OUTPUT | |
echo jdk_archive_type=tar.gz >> $GITHUB_OUTPUT | |
echo dist_os=linux >> $GITHUB_OUTPUT | |
echo dist_arch=x86-64 >> $GITHUB_OUTPUT | |
echo dist_archive_extension=tgz >> $GITHUB_OUTPUT | |
;; | |
ubuntu-24.04-arm) | |
echo jdk_os=linux-glibc >> $GITHUB_OUTPUT | |
echo jdk_arch=aarch64 >> $GITHUB_OUTPUT | |
echo jdk_archive_type=tar.gz >> $GITHUB_OUTPUT | |
echo dist_os=linux >> $GITHUB_OUTPUT | |
echo dist_arch=aarch64 >> $GITHUB_OUTPUT | |
echo dist_archive_extension=tgz >> $GITHUB_OUTPUT | |
;; | |
*) | |
exit 1 | |
;; | |
esac | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
submodules: true | |
- name: Download Zulu (without CRaC) | |
id: download_zulu | |
shell: bash | |
run: | | |
cd $RUNNER_TEMP | |
jdk_archive_filename=$(curl -LOs -w '%{filename_effective}' "$(curl -s -X GET "https://api.azul.com/metadata/v1/zulu/packages/?os=${{ steps.platform_variables.outputs.jdk_os }}&arch=${{ steps.platform_variables.outputs.jdk_arch }}&archive_type=${{ steps.platform_variables.outputs.jdk_archive_type }}&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=CA&certifications=tck" --data-urlencode "java_version=$JAVA_VERSION" -H 'accept: application/json' | jq -r '.[0].download_url')") | |
echo "jdk_archive_filename=$jdk_archive_filename" >> $GITHUB_OUTPUT | |
- name: Install JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: jdkfile | |
jdkFile: ${{ runner.temp }}/${{ steps.download_zulu.outputs.jdk_archive_filename }} | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Build ZIP | |
if: runner.os == 'Windows' | |
run: ./gradlew distZip --info | |
- name: Build TGZ | |
if: runner.os == 'Linux' | |
run: ./gradlew distTar --info | |
- name: Extract Release Variables | |
id: release_variables | |
shell: bash | |
run: | | |
echo "tag_name=$(find build/distributions/ControllerBuddy-*.${{ steps.platform_variables.outputs.dist_archive_extension }} -maxdepth 1 -print0 | xargs -0 -I filename basename -s .${{ steps.platform_variables.outputs.dist_archive_extension }} filename | sed "s/^ControllerBuddy-//;s/${{ steps.platform_variables.outputs.dist_os }}-${{ steps.platform_variables.outputs.dist_arch }}-//")" >> $GITHUB_OUTPUT | |
echo "archive_path=$(find build/distributions/ControllerBuddy-*.${{ steps.platform_variables.outputs.dist_archive_extension }} -maxdepth 1 -print0)" >> $GITHUB_OUTPUT | |
- name: Check Tag | |
uses: action-pack/tag-exists@v1 | |
id: check_tag | |
with: | |
tag: ${{ steps.release_variables.outputs.tag_name }} | |
- name: Tag Commit | |
if: steps.check_tag.outputs.exists == 'false' | |
uses: tvdias/[email protected] | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ steps.release_variables.outputs.tag_name }} | |
- name: Import GPG Key | |
uses: crazy-max/ghaction-import-gpg@v6 | |
with: | |
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | |
passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }} | |
- name: Sign Archive | |
id: sign_archive | |
shell: bash | |
run: | | |
signature_path="${{ steps.release_variables.outputs.archive_path }}.sig" | |
gpg --local-user 8590BB74C0F559F8AC911C1D8058553A1FD36B23 --pinentry-mode loopback --passphrase ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }} --detach-sig --output "$signature_path" --yes ${{ steps.release_variables.outputs.archive_path }} | |
echo "signature_path=$signature_path" >> $GITHUB_OUTPUT | |
- name: Release | |
id: release | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: ControllerBuddy-${{ steps.release_variables.outputs.tag_name }} | |
tag_name: ${{ steps.release_variables.outputs.tag_name }} | |
draft: false | |
prerelease: false | |
files: | | |
${{ steps.release_variables.outputs.archive_path }} | |
${{ steps.sign_archive.outputs.signature_path }} |