Mac build #29
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: Package and deploy versions | |
on: | |
push: | |
branches: ["main"] | |
jobs: | |
maven-build: | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:latest | |
outputs: | |
PROJECT_ARTIFACT: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }} | |
PROJECT_VERSION: ${{ steps.projectInfo.outputs.PROJECT_VERSION }} | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Install tools | |
run: | | |
apt-get update | |
apt-get install -y jq git libxml2-utils nsis curl zip unzip tar gzip gcc zlib1g-dev | |
- name: Store Project Information | |
id: projectInfo | |
run: | | |
PROJECT_VERSION=$(xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml | sed 's/-SNAPSHOT/.${{github.run_number}}'/) | |
echo "PROJECT_VERSION=${PROJECT_VERSION}" | |
echo "PROJECT_VERSION=${PROJECT_VERSION}" >> $GITHUB_OUTPUT | |
PROJECT_ARTIFACT=$(xmllint --xpath '/*[local-name()="project"]/*[local-name()="artifactId"]/text()' pom.xml) | |
echo "PROJECT_ARTIFACT=${PROJECT_ARTIFACT}" | |
echo "PROJECT_ARTIFACT=${PROJECT_ARTIFACT}" >> $GITHUB_OUTPUT | |
git config --global --add safe.directory `pwd` | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '22' | |
distribution: 'graalvm' | |
github-token: ${{ github.token }} | |
- run: which java && java -version | |
- name: Set Version | |
run: | | |
./mvnw -U --batch-mode versions:set dependency:tree -DnewVersion=${{ steps.projectInfo.outputs.PROJECT_VERSION }} | |
- name: Build | |
run: ./mvnw --batch-mode -Pnative -Dagent=true -Dosname.short=Linux clean install | |
- name: release | |
uses: actions/create-release@v1 | |
id: create_release | |
with: | |
draft: false | |
prerelease: false | |
release_name: ${{ steps.projectInfo.outputs.PROJECT_VERSION }} | |
tag_name: ${{ steps.projectInfo.outputs.PROJECT_VERSION }} | |
body_path: README.md | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: Upload JAR | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}.jar | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}.jar | |
asset_content_type: application/java-archive | |
- name: Upload Shaded JAR | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-shaded.jar | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-shaded.jar | |
asset_content_type: application/java-archive | |
- name: Upload Zip | |
id: upload-zip | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-anyos.zip | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-anyos.zip | |
asset_content_type: application/zip | |
- name: Upload TGZ | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-anyos.tar.gz | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-anyos.tar.gz | |
asset_content_type: application/tar+gzip | |
- name: Upload EXE | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-installer.exe | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-installer.exe | |
asset_content_type: application/tar+gzip | |
- name: Upload Bin | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-Linux-amd64 | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-Linux-amd64.bin | |
asset_content_type: application/octet-stream | |
- name: Upload Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target/${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-hashes.txt | |
asset_name: ${{ steps.projectInfo.outputs.PROJECT_ARTIFACT }}-${{ steps.projectInfo.outputs.PROJECT_VERSION }}-hashes.txt | |
asset_content_type: text/plain | |
windows-build: | |
needs: maven-build | |
runs-on: windows-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '22' | |
distribution: 'graalvm' | |
github-token: ${{ github.token }} | |
- run: java -version | |
- name: Build | |
run: ./mvnw --batch-mode -Pnative -Dagent=true "-Dosname.short=Windows" clean package && ls target | |
- name: Upload Bin | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{needs.maven-build.outputs.upload_url }} | |
asset_path: ./target/${{ needs.maven-build.outputs.PROJECT_ARTIFACT }}-Windows-amd64.exe | |
asset_name: ${{ needs.maven-build.outputs.PROJECT_ARTIFACT }}-${{ needs.maven-build.outputs.PROJECT_VERSION }}-Windows-amd64.exe | |
asset_content_type: application/octet-stream | |
mac-build: | |
needs: maven-build | |
runs-on: macos-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '22' | |
distribution: 'graalvm' | |
github-token: ${{ github.token }} | |
- run: java -version | |
- name: Build | |
run: ./mvnw --batch-mode -Pnative -Dagent=true "-Dosname.short=Windows" clean package && ls target | |
- name: Upload Bin | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{needs.maven-build.outputs.upload_url }} | |
asset_path: ./target/${{ needs.maven-build.outputs.PROJECT_ARTIFACT }}-Mac>-amd64 | |
asset_name: ${{ needs.maven-build.outputs.PROJECT_ARTIFACT }}-${{ needs.maven-build.outputs.PROJECT_VERSION }}-Mac-amd64 | |
asset_content_type: application/octet-stream |