Skip to content

Version 2.4-20241204 #8

Version 2.4-20241204

Version 2.4-20241204 #8

Workflow file for this run

# 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-*