Skip to content

Java CD with Apache Ant #6

Java CD with Apache Ant

Java CD with Apache Ant #6

Workflow file for this run

# This workflow will build a Java project with Apache Ant and upload the created artifacts
# on pushes to the master branch.
name: Java CD with Apache Ant
on:
push:
branches: [ "master" ]
workflow_dispatch:
branches: [ "master", "devel", "macos-deploy-test" ]
permissions:
contents: read
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"
- name: Upload JAR artifact
uses: actions/upload-artifact@v4
with:
name: NearInfinity-${{ steps.ni-build.outputs.NI_VERSION }}
path: NearInfinity.jar
# 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: [ macos-14 ]
java: [ '21' ]
distribution: [ 'temurin', 'corretto', 'oracle' ]
runs-on: ${{ matrix.os }}
name: Create installer for ${{ matrix.os }}, JDK ${{ matrix.java }} (${{ matrix.distribution }})
steps:
# Initializations
- name: Git checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: ${{ matrix.distribution }}
- name: Echo JAVA_HOME
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 installer
run: |
mv assets/redistributable/macos/package .
mv assets/redistributable/macos/build.command .
chmod +x build.command
./build.command
# Validation
- name: List built files (macos)
run: ls -l
# Uploading
- name: Upload pkg artifact (macos)
if: startsWith(matrix.os, 'macos-')
uses: actions/upload-artifact@v4
with:
name: installer-macos-arm64-${{ matrix.distribution }}
path: NearInfinity-*.pkg