name: Build on: push: pull_request: jobs: build: # This is a *private* build container. # See docs/github_actions.md for more information. container: ghcr.io/zeldaret/ss-build:main runs-on: ubuntu-latest strategy: fail-fast: false matrix: # Add game versions here version: [SOUE01] steps: # Checkout the repository - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive # Set Git config - name: Git config run: git config --global --add safe.directory "$GITHUB_WORKSPACE" # Normalize file mod times - name: Restore timestamps run: | uv run https://raw.githubusercontent.com/MestreLion/git-tools/refs/tags/v2022.12/git-restore-mtime \ --merge --commit-time # Copy the original files to the workspace - name: Prepare run: cp -a /orig . # Restore cached files - name: Cache build uses: actions/cache@v4 with: path: | build .ninja_deps .ninja_log key: ${{ runner.os }}-${{ matrix.version }}-${{ github.sha }} restore-keys: ${{ runner.os }}-${{ matrix.version }}- # Build the project - name: Build run: | python configure.py --map --version ${{ matrix.version }} \ --binutils /binutils --compilers /compilers ninja all_source progress build/${{ matrix.version }}/report.json # Upload map files - name: Upload map uses: actions/upload-artifact@v4 with: name: ${{ matrix.version }}_maps path: build/${{ matrix.version }}/**/*.MAP # Upload progress report - name: Upload report uses: actions/upload-artifact@v4 with: name: ${{ matrix.version }}_report path: build/${{ matrix.version }}/report.json