Skip to content
This repository was archived by the owner on Jan 13, 2026. It is now read-only.

Auto-Build

Auto-Build #84

Workflow file for this run

name: Auto-Build
on: [workflow_dispatch]
jobs:
build_linux:
name: Ubuntu Build and Test
runs-on: ubuntu-22.04
steps:
- name: Grab Spall Dependencies
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-18 main'
sudo apt-get update
sudo apt install libxcursor-dev libegl-dev clang-18 llvm-18 llvm-18-dev
- name: Checkout Spall
uses: actions/checkout@v4
- name: Checkout Odin
uses: actions/checkout@v4
with:
repository: Odin-lang/odin
path: odin
- name: Build Odin
run: |
cd odin
./build_odin.sh
make -C vendor/stb/src
echo $PWD >> $GITHUB_PATH
- name: Build Spall
run: |
./build.sh release
strip bin/spall
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: spall_linux
path: bin/spall
build_osx_x86:
name: OSX x86 Build and Test
runs-on: macos-13
steps:
- name: Grab Spall Dependencies
run: |
brew install sdl2 llvm@18
echo "/usr/local/opt/llvm@18/bin" >> $GITHUB_PATH
- name: Checkout Spall
uses: actions/checkout@v4
- name: Checkout Odin
uses: actions/checkout@v4
with:
repository: Odin-lang/odin
path: odin
- name: Build Odin
run: |
cd odin
./build_odin.sh
echo $PWD >> $GITHUB_PATH
- name: Build Spall
run: |
./build.sh release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: spall_osx_x86
path: bin/spall
build_osx_arm:
name: OSX ARM Build and Test
runs-on: macos-14
steps:
- name: Grab Spall Dependencies
run: |
brew install sdl2 llvm@18
echo "/opt/homebrew/opt/llvm@18/bin" >> $GITHUB_PATH
- name: Checkout Spall
uses: actions/checkout@v4
- name: Checkout Odin
uses: actions/checkout@v4
with:
repository: Odin-lang/odin
path: odin
- name: Build Odin
run: |
cd odin
./build_odin.sh
echo $PWD >> $GITHUB_PATH
- name: Build Spall
run: |
./build.sh release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: spall_osx_arm
path: bin/spall
build_windows:
name: Windows Build and Test
runs-on: windows-2022
steps:
- name: Checkout Spall
uses: actions/checkout@v4
- name: Checkout Odin
uses: actions/checkout@v4
with:
repository: Odin-lang/odin
path: odin
- name: Build Odin
run: |
cd odin
& "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
& ./build.bat
$CUR_PATH = (Get-Item .).FullName
Add-Content $env:GITHUB_PATH $CUR_PATH
- name: Build Spall
run: |
./build.bat release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: spall_windows
path: bin/spall.exe
collect_results:
name: Collect Results
runs-on: ubuntu-latest
needs: [build_linux, build_windows, build_osx_arm, build_osx_x86]
steps:
- name: Checkout Spall-Native
uses: actions/checkout@v4
- name: Checkout Spall-Web
uses: actions/checkout@v4
with:
repository: colrdavidson/spall-web
path: spall_web
- name: Grab Windows artifacts
uses: actions/download-artifact@v4
with:
name: spall_windows
path: spall_windows
- name: Grab Linux artifacts
uses: actions/download-artifact@v4
with:
name: spall_linux
path: spall_linux
- name: Grab OSX ARM artifacts
uses: actions/download-artifact@v4
with:
name: spall_osx_arm
path: spall_osx_arm
- name: Grab OSX X86 artifacts
uses: actions/download-artifact@v4
with:
name: spall_osx_x86
path: spall_osx_x86
- name: Package artifacts
run: |
mkdir spall_pkg
curl -L -o lipo https://github.com/konoui/lipo/releases/latest/download/lipo_Linux_amd64
chmod +x lipo
./lipo -create -output spall spall_osx_arm/spall spall_osx_x86/spall
chmod +x spall
./package_osx.sh spall_pkg/spall.app spall
cp resources/FiraCode_LICENSE.txt spall_pkg/.
cp resources/LICENSE.txt spall_pkg/.
cp resources/README.txt spall_pkg/.
cp resources/SDL2.dll spall_pkg/.
cp resources/demo_trace.json spall_pkg/.
cp spall_native_auto.h spall_pkg/.
cp spall_web/spall.h spall_pkg/.
mkdir spall_pkg/examples
cp -r spall_web/examples/* spall_pkg/examples/.
cp -r examples/* spall_pkg/examples/.
cp spall_linux/spall spall_pkg/spall_linux
cp spall_windows/spall.exe spall_pkg/spall_windows.exe
chmod +x spall_pkg/spall_linux
DATE=$(date '+%Y_%m_%d')
echo "DATE=$DATE" >> $GITHUB_ENV
mv spall_pkg spall_native_$DATE
zip -r spall_native_$DATE.zip spall_native_$DATE
- name: Upload Release Build
uses: actions/upload-artifact@v4
with:
name: spall_native_${{ env.DATE }}
path: spall_native_${{ env.DATE }}.zip