Skip to content

Increase default player highlight intensities #17

Increase default player highlight intensities

Increase default player highlight intensities #17

Workflow file for this run

name: release
permissions:
contents: read
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
FNQ3_LINUX_GLIBC_MAX: "2.31"
on:
push:
branches:
- main
workflow_dispatch:
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
build_number: ${{ steps.meta.outputs.build_number }}
build_date: ${{ steps.meta.outputs.build_date }}
base_version: ${{ steps.meta.outputs.base_version }}
version_string: ${{ steps.meta.outputs.version_string }}
head_commit: ${{ steps.meta.outputs.head_commit }}
head_commit_short: ${{ steps.meta.outputs.head_commit_short }}
previous_release_commit: ${{ steps.meta.outputs.previous_release_commit }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive
- name: Fetch tags
run: git fetch --force --tags origin
- name: Resolve release metadata
id: meta
run: |
python scripts/manual_release.py github-output --build-date "$(date -u +%F)" >> "$GITHUB_OUTPUT"
- name: Summarize
run: |
echo "Release build metadata resolved"
echo "Base version: ${{ steps.meta.outputs.base_version }}"
echo "Build version: ${{ steps.meta.outputs.version_string }}"
echo "Head commit: ${{ steps.meta.outputs.head_commit }}"
echo "Previous release commit: ${{ steps.meta.outputs.previous_release_commit }}"
windows-msys32:
needs: [prepare]
name: Build Windows-msys32 ${{ matrix.arch }}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
arch: [x86, x86_64]
include:
- arch: x86
msystem: MINGW32
- arch: x86_64
msystem: MINGW64
steps:
- name: Checkout current repo
uses: actions/checkout@v6
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
update: true
install: git
pacboy: >-
toolchain:p
meson:p
ninja:p
- name: Stamp release build version
shell: msys2 {0}
run: python scripts/manual_release.py stamp-version --build-number ${{ needs.prepare.outputs.build_number }}
- name: Build
shell: msys2 {0}
run: |
mkdir -p bin
meson setup meson/build-${{ matrix.arch }} \
--buildtype=release \
--prefix "$PWD/bin" \
-Dcurl=enabled \
-Dcurl-dlopen=false \
-Dsdl=disabled \
-Drenderer-dlopen=true \
-Drenderers=opengl,glx,vulkan \
-Drenderer-default=opengl \
-Daudio-tests=false \
-Dglx-tests=false \
-Dlibjpeg-turbo:simd=disabled
meson compile -C meson/build-${{ matrix.arch }}
meson install -C meson/build-${{ matrix.arch }} --no-rebuild
- uses: actions/upload-artifact@v7
with:
name: windows-mingw-${{ matrix.arch }}
path: bin
if-no-files-found: error
retention-days: 5
windows-msvc:
needs: [prepare]
name: Build Windows-MSVC ${{ matrix.arch }}
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
arch: [arm64, x86, x64]
include:
- arch: arm64
vs_arch: arm64
pkg_suffix: arm64
- arch: x86
vs_arch: x86
pkg_suffix: x86
- arch: x64
vs_arch: x64
pkg_suffix: x86_64
steps:
- uses: microsoft/setup-msbuild@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Stamp release build version
run: python scripts/manual_release.py stamp-version --build-number ${{ needs.prepare.outputs.build_number }}
- name: Install Meson
run: python -m pip install meson ninja
- name: Build
shell: cmd
run: |
if not exist bin mkdir bin
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set VSINSTALL=%%i
call "%VSINSTALL%\Common7\Tools\VsDevCmd.bat" -arch=${{ matrix.vs_arch }} -host_arch=x64 || exit /b
if /I "${{ matrix.arch }}"=="arm64" (
meson setup meson\build-${{ matrix.arch }} --cross-file scripts\windows-arm64-cross.ini --buildtype=release --prefix "%CD%\bin" -Dcurl=enabled -Dcurl-dlopen=false -Dsdl=disabled -Drenderer-dlopen=true -Drenderers=opengl,glx,vulkan -Drenderer-default=opengl -Daudio-tests=false -Dglx-tests=false -Dlibjpeg-turbo:simd=disabled || exit /b
) else (
meson setup meson\build-${{ matrix.arch }} --buildtype=release --prefix "%CD%\bin" -Dcurl=enabled -Dcurl-dlopen=false -Dsdl=disabled -Drenderer-dlopen=true -Drenderers=opengl,glx,vulkan -Drenderer-default=opengl -Daudio-tests=false -Dglx-tests=false -Dlibjpeg-turbo:simd=disabled || exit /b
)
meson compile -C meson\build-${{ matrix.arch }} || exit /b
meson install -C meson\build-${{ matrix.arch }} --no-rebuild || exit /b
- uses: actions/upload-artifact@v7
with:
name: windows-msvc-${{ matrix.pkg_suffix }}
path: bin
if-no-files-found: error
retention-days: 5
meson-validation:
needs: [prepare]
name: Meson build validation
runs-on: ubuntu-24.04
steps:
- name: Install tools
run: |
sudo apt-get -qq update
sudo apt-get -y install meson ninja-build gcc g++ libcurl4-openssl-dev libjpeg-dev libogg-dev libvorbis-dev mesa-common-dev libx11-dev libxext-dev libxxf86dga-dev libxrandr-dev libxxf86vm-dev libasound2-dev libopenal-dev
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Stamp release build version
run: python scripts/manual_release.py stamp-version --build-number "${{ needs.prepare.outputs.build_number }}"
- name: Configure Meson build
run: |
meson setup meson/build \
--buildtype=release \
-Dsdl=disabled \
-Dcurl=disabled \
-Drenderer-dlopen=true \
-Drenderers=opengl,glx,vulkan,opengl2 \
-Drenderer-default=opengl
- name: Build Meson targets
run: meson compile -C meson/build
- name: Run Meson tests
run: meson test -C meson/build --print-errorlogs
ubuntu-x86:
needs: [prepare]
name: Build Ubuntu ${{ matrix.arch }}
runs-on: ubuntu-24.04
container:
image: ubuntu:20.04
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
arch: [x86, x86_64]
include:
- arch: x86
rule: install
use_sdl: USE_SDL=0
- arch: x86_64
rule: install
use_sdl: USE_SDL=0
steps:
- name: Install tools
run: |
if [ "${{ matrix.arch }}" = "x86" ]; then
dpkg --add-architecture i386
apt-get -qq update
apt-get -y install git make python3 binutils gcc-multilib g++-multilib libcurl4-openssl-dev:i386 libjpeg-dev:i386 libogg-dev:i386 libvorbis-dev:i386 mesa-common-dev:i386 libxxf86dga-dev:i386 libxrandr-dev:i386 libxxf86vm-dev:i386 libasound2-dev:i386 libopenal-dev:i386
else
apt-get -qq update
apt-get -y install git make python3 binutils gcc g++ libcurl4-openssl-dev libjpeg-dev libogg-dev libvorbis-dev mesa-common-dev libxxf86dga-dev libxrandr-dev libxxf86vm-dev libasound2-dev libopenal-dev
fi
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Stamp release build version
run: python3 scripts/manual_release.py stamp-version --build-number "${{ needs.prepare.outputs.build_number }}"
- name: Build
run: |
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} COMPILE_ARCH=${{ matrix.arch }} CC=gcc DESTDIR=bin ${{ matrix.use_sdl }} USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_GLX=1 USE_VULKAN=1
- name: Check glibc baseline
run: python3 scripts/check_elf_glibc.py --max-glibc "$FNQ3_LINUX_GLIBC_MAX" --require-elf bin
- uses: actions/upload-artifact@v7
with:
name: linux-${{ matrix.arch }}
path: bin
if-no-files-found: error
retention-days: 5
ubuntu-arm64:
needs: [prepare]
name: Build Ubuntu arm64
runs-on: ubuntu-22.04-arm
container:
image: ubuntu:20.04
env:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Install tools
run: |
apt-get -qq update
apt-get install -y git make python3 binutils gcc g++
apt-get -y install libcurl4-openssl-dev libjpeg-dev libogg-dev libvorbis-dev mesa-common-dev libxxf86dga-dev libxrandr-dev libxxf86vm-dev libasound2-dev libopenal-dev
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Stamp release build version
run: python3 scripts/manual_release.py stamp-version --build-number "${{ needs.prepare.outputs.build_number }}"
- name: Build
run: |
make install -j$(nproc) ARCH=aarch64 COMPILE_ARCH=aarch64 CC=gcc DESTDIR=bin USE_SDL=0 USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_GLX=1 USE_VULKAN=1
- name: Check glibc baseline
run: python3 scripts/check_elf_glibc.py --max-glibc "$FNQ3_LINUX_GLIBC_MAX" --require-elf bin
- uses: actions/upload-artifact@v7
with:
name: linux-arm64
path: bin
if-no-files-found: error
retention-days: 5
macos-x86:
needs: [prepare]
name: Build macOS ${{ matrix.arch }}
runs-on: macos-14
strategy:
fail-fast: false
matrix:
arch: [x86_64, aarch64]
steps:
- name: Install tools
run: |
for pkg in coreutils jpeg libogg libvorbis make openal-soft pkg-config sdl3; do
brew list --versions "$pkg" >/dev/null 2>&1 || brew install "$pkg"
done
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Stamp release build version
run: python3 scripts/manual_release.py stamp-version --build-number "${{ needs.prepare.outputs.build_number }}"
- name: Build
run: |
BREW_PREFIX="$(brew --prefix)"
export PKG_CONFIG_PATH="${BREW_PREFIX}/lib/pkgconfig:${BREW_PREFIX}/share/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
OPENAL_CFLAGS="$(pkg-config --cflags openal)" \
SDL_INCLUDE="$(pkg-config --cflags-only-I sdl3)" \
SDL_LIBS="$(pkg-config --libs sdl3)" \
JPEG_CFLAGS="$(pkg-config --cflags libjpeg)" \
JPEG_LIBS="$(pkg-config --libs libjpeg)" \
OGG_CFLAGS="$(pkg-config --cflags ogg)" \
OGG_LIBS="$(pkg-config --libs ogg)" \
VORBIS_CFLAGS="$(pkg-config --cflags vorbisfile)" \
VORBIS_LIBS="$(pkg-config --libs vorbisfile)" \
gmake install -j$(sysctl -n hw.logicalcpu) ARCH=${{ matrix.arch }} CC=clang DESTDIR=bin INSTALL=ginstall USE_LOCAL_HEADERS=0 USE_SYSTEM_JPEG=1 USE_SYSTEM_OGG=1 USE_SYSTEM_VORBIS=1 USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_GLX=1 USE_VULKAN=1 STRIP=echo
- uses: actions/upload-artifact@v7
with:
name: macos-${{ matrix.arch }}
path: bin
if-no-files-found: error
retention-days: 5
push-build-validation:
if: github.event_name == 'push' && always()
needs: [prepare, windows-msys32, windows-msvc, meson-validation, ubuntu-x86, ubuntu-arm64, macos-x86]
runs-on: ubuntu-latest
steps:
- name: Check platform build results
env:
NEEDS_JSON: ${{ toJson(needs) }}
run: |
python - <<'PY'
import json
import os
import sys
needs = json.loads(os.environ["NEEDS_JSON"])
failed = {
name: data["result"]
for name, data in needs.items()
if data["result"] != "success"
}
if failed:
for name, result in failed.items():
print(f"{name}: {result}")
sys.exit(1)
print("All push build validations passed.")
PY
publish:
if: github.event_name == 'workflow_dispatch'
needs: [prepare, windows-msys32, windows-msvc, meson-validation, ubuntu-x86, ubuntu-arm64, macos-x86]
runs-on: ubuntu-latest
permissions:
contents: write
models: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive
- name: Fetch tags
run: git fetch --force --tags origin
- name: Stamp release build version
run: python scripts/manual_release.py stamp-version --build-number "${{ needs.prepare.outputs.build_number }}"
- name: Download artifacts
uses: actions/download-artifact@v8
with:
path: artifacts
- name: Resolve release version metadata
run: |
python scripts/version.py github-env --channel manual --build-number "${{ needs.prepare.outputs.build_number }}" --build-date "${{ needs.prepare.outputs.build_date }}" --commit "${{ needs.prepare.outputs.head_commit }}" >> "$GITHUB_ENV"
- name: Package release archives
run: |
python scripts/release.py --channel manual --artifact-root artifacts --build-number "${{ needs.prepare.outputs.build_number }}" --build-date "${{ needs.prepare.outputs.build_date }}" --commit "${{ needs.prepare.outputs.head_commit }}"
- name: Build release notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
FROM_ARGS=()
if [ -n "${{ needs.prepare.outputs.previous_release_commit }}" ]; then
FROM_ARGS+=(--from-commit "${{ needs.prepare.outputs.previous_release_commit }}")
fi
python scripts/manual_release.py release-notes \
--build-number "${{ needs.prepare.outputs.build_number }}" \
--build-date "${{ needs.prepare.outputs.build_date }}" \
--to-commit "${{ needs.prepare.outputs.head_commit }}" \
"${FROM_ARGS[@]}" \
--output .tmp/release-notes.md
- name: Create release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${FNQ3_RELEASE_TAG}" \
.install/packages/*.zip \
.install/release-manifest.json \
.install/SHA256SUMS.txt \
--target "${{ needs.prepare.outputs.head_commit }}" \
--title "${FNQ3_RELEASE_TITLE}" \
--notes-file .tmp/release-notes.md