Version 2.4-20241204 #8
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
# This workflow will build a Java project with Apache Ant and: | |
# - on release: upload the created files to the current release or tag | |
# - on workflow_dispatch: upload the created files as artifacts to the workflow | |
name: Java CD with Apache Ant | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
branches: [ "master", "devel" ] | |
permissions: | |
contents: write | |
jobs: | |
# Build and upload NearInfinity.jar | |
deploy-jar: | |
if: ${{ github.repository == 'Argent77/NearInfinity' }} | |
runs-on: ubuntu-latest | |
name: Build NearInfinity.jar | |
outputs: | |
ni_version: ${{ steps.ni-build.outputs.NI_VERSION }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '8' | |
distribution: 'temurin' | |
- name: Build with Ant | |
id: ni-build | |
run: | | |
ant -noinput -buildfile build.xml | |
echo "NI_VERSION=$(java -jar "NearInfinity.jar" -version 2>/dev/null | grep -Eo '[0-9]{8}')" >> "$GITHUB_OUTPUT" | |
# Required internally to build the installer packages | |
- name: Upload JAR artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: NearInfinity-${{ steps.ni-build.outputs.NI_VERSION }} | |
path: NearInfinity.jar | |
- name: Upload JAR asset to release | |
if: github.event_name == 'release' | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: NearInfinity.jar | |
tag: ${{ github.ref || github.event.release.tag_name }} | |
asset_name: NearInfinity-${{ steps.ni-build.outputs.NI_VERSION }}.jar | |
overwrite: true | |
# Build and upload installer versions for Windows, macOS-x86_64 and macOS-arm64 | |
deploy-installer: | |
if: ${{ github.repository == 'Argent77/NearInfinity' }} | |
needs: deploy-jar | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ windows-latest, macos-13, macos-14 ] | |
java: [ '21' ] | |
runs-on: ${{ matrix.os }} | |
name: Create installer for ${{ matrix.os }}, JDK ${{ matrix.java }} | |
steps: | |
# Initializations | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
- name: Set up JDK (windows) | |
if: startsWith(matrix.os, 'windows-') | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java }} | |
distribution: 'temurin' | |
- name: Set up JDK (macos) | |
if: startsWith(matrix.os, 'macos-') | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java }} | |
distribution: 'oracle' | |
- name: Echo JAVA_HOME (windows) | |
if: startsWith(matrix.os, 'windows-') | |
run: | | |
echo $env:JAVA_HOME | |
java -version | |
- name: Echo JAVA_HOME (macos) | |
if: startsWith(matrix.os, 'macos-') | |
run: | | |
echo $JAVA_HOME | |
java -version | |
# Preparations | |
- name: Download JAR artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: NearInfinity-${{ needs.deploy-jar.outputs.ni_version }} | |
path: jar | |
- name: Set up installer data | |
uses: actions/checkout@v4 | |
with: | |
repository: NearInfinityBrowser/NearInfinity-assets | |
path: assets | |
# Building | |
- name: Build portable archive and installer (windows) | |
if: startsWith(matrix.os, 'windows-') | |
run: | | |
move assets\redistributable\windows\package . | |
move assets\redistributable\windows\build-image.cmd . | |
move assets\redistributable\windows\build-installer.cmd . | |
.\build-image.cmd | |
.\build-installer.cmd | |
- name: Build installer (macos) | |
if: startsWith(matrix.os, 'macos-') | |
run: | | |
mv assets/redistributable/macos/package . | |
mv assets/redistributable/macos/build.command . | |
chmod +x build.command | |
./build.command | |
# Validation | |
- name: List built files (windows) | |
if: startsWith(matrix.os, 'windows-') | |
run: dir | |
- name: List built files (macos) | |
if: startsWith(matrix.os, 'macos-') | |
run: ls -l | |
# Uploading artifacts (workflow_dispatch) | |
- name: Upload portable artifact (windows) | |
if: startsWith(matrix.os, 'windows-') && github.event_name == 'workflow_dispatch' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: portable-windows | |
path: NearInfinity-*.zip | |
- name: Upload exe artifact (windows) | |
if: startsWith(matrix.os, 'windows-') && github.event_name == 'workflow_dispatch' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: installer-windows | |
path: NearInfinity-*.exe | |
- name: Upload pkg artifact (macos-x86_64) | |
if: (matrix.os == 'macos-13') && github.event_name == 'workflow_dispatch' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: installer-macos-x86_64 | |
path: NearInfinity-*.pkg | |
- name: Upload pkg artifact (macos-arm64) | |
if: (matrix.os == 'macos-14') && github.event_name == 'workflow_dispatch' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: installer-macos-arm64 | |
path: NearInfinity-*.pkg | |
# Uploading assets (release) | |
- name: Upload portable asset to release (windows) | |
if: startsWith(matrix.os, 'windows-') && github.event_name == 'release' | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file_glob: true | |
file: NearInfinity-*.zip | |
tag: ${{ github.ref || github.event.release.tag_name }} | |
overwrite: true | |
- name: Upload exe asset to release (windows) | |
if: startsWith(matrix.os, 'windows-') && github.event_name == 'release' | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file_glob: true | |
file: NearInfinity-*.exe | |
tag: ${{ github.ref || github.event.release.tag_name }} | |
overwrite: true | |
- name: Upload pkg asset to release (macos-x86_64) | |
if: (matrix.os == 'macos-13') && github.event_name == 'release' | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file_glob: true | |
file: NearInfinity-*.pkg | |
tag: ${{ github.ref || github.event.release.tag_name }} | |
overwrite: true | |
- name: Upload pkg asset to release (macos-arm64) | |
if: (matrix.os == 'macos-14') && github.event_name == 'release' | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file_glob: true | |
file: NearInfinity-*.pkg | |
tag: ${{ github.ref || github.event.release.tag_name }} | |
overwrite: true | |
# Remove JAR artifact (release) | |
cleanup: | |
if: ${{ github.repository == 'Argent77/NearInfinity' && github.event_name == 'release' }} | |
needs: [deploy-jar, deploy-installer] | |
runs-on: ubuntu-latest | |
name: Clean up artifacts | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove JAR artifact | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: NearInfinity-* |