Skip to content

Build Ion Fury

Build Ion Fury #245

Workflow file for this run

name: "Build Ion Fury"
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 🛒 Checkout repository
id: checkout
uses: actions/checkout@v4
with:
# We need this for the 'check_tag' step.
fetch-depth: 0
- name: 🔍 Determine latest EDuke32 "Synthesis" version
id: versions
run: |
EDUKE32_VERSION="$(curl -sL https://dukeworld.com/eduke32/synthesis/latest | grep -o '[^"]*.tar.xz' | head -n 1)"
SYNTHESIS_VERSION=${EDUKE32_VERSION#"eduke32_src_"}; SYNTHESIS_VERSION=${SYNTHESIS_VERSION%".tar.xz"}
echo "synthesis=$SYNTHESIS_VERSION" >> $GITHUB_OUTPUT
shell: bash
- name: ❓ Check if we already built this version
id: check_tag
run: |
if git rev-parse --verify --quiet "refs/tags/fury-${{ steps.versions.outputs.synthesis }}"; then
echo "Tag already exists, we can exit early!"; echo "tag_exists=true" >> $GITHUB_OUTPUT
else
echo "Tag does not exist, let's get cracking!"; echo "tag_exists=false" >> $GITHUB_OUTPUT
fi
shell: bash
- name: 🗃️ Fetch the source code
if: steps.check_tag.outputs.tag_exists == 'false'
run: |
wget -O 'eduke32_src.tar.xz' "https://dukeworld.duke4.net/eduke32/synthesis/${{ steps.versions.outputs.synthesis }}/eduke32_src_${{ steps.versions.outputs.synthesis }}.tar.xz"
tar -xf 'eduke32_src.tar.xz' --strip-components=1 && rm 'eduke32_src.tar.xz'
shell: bash
- name: 🏗️ Build
if: steps.check_tag.outputs.tag_exists == 'false'
uses: ./.github/actions/scout
with:
variant: FURY
- name: 📦️ Archive package
if: steps.check_tag.outputs.tag_exists == 'false'
run: |
7z a \
-t7z \
-m0=lzma \
-mx=9 \
-mfb=64 \
-md=32m \
-ms=on \
"Fury.LinuxPortable_${{ steps.versions.outputs.synthesis }}.7z" ./out/*
shell: bash
- name: 🚚 Ship
if: steps.check_tag.outputs.tag_exists == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: fury-${{ steps.versions.outputs.synthesis }}
name: "Ion Fury | ${{ steps.versions.outputs.synthesis }}"
body: |
![Ion Fury](https://github.com/AvinashReddy3108/EDuke32.LinuxPortable/assets/27774996/f61bf3bc-5629-4b2a-90cb-ab192bfb410d)
Read the changelog: https://dukeworld.com/eduke32/synthesis/${{ steps.versions.outputs.synthesis }}/ChangeLog.txt
# Notes
- The "startup screen"/GUI has been stripped out (flags: `STARTUP_WINDOW=0`, `HAVE_GTK2=0`) in favor of using shell scripts (or maybe a third party launcher in the future?) to launch the games. You will need to use the CLI for launching your games (see `./fury --help`).
- While the game should work on the latest compiled binaries here, it has not been tested thoroughly. If issues do arise, please use the binary that came with the game files (or the compiled binary of the same revision, can be found this on the lower right in the game's main menu)
files: Fury.LinuxPortable_${{ steps.versions.outputs.synthesis }}.7z