This repository was archived by the owner on Jan 13, 2026. It is now read-only.
Auto-Build #84
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |