# # .gitea/workflows/gitea-build.yaml # # Checks, tests and builds (Linux, plus a Windows cross-build) on every push and # pull request to main and develop. # name: "Build and Test" on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Toolchain uses: ./.gitea/actions/setup - name: Check run: | odin version just check - name: Test run: just test - name: Build run: just release # Cross-compiles for Windows so link breakages show up before a release. # Runs after `build`: both jobs land on the same self-hosted runner, and the # first run segfaulted `odin test` in `build` while `windows` was doing its # (uncached) SDK download/splat at the same time - resource contention, not # a code or toolchain bug (odin check passed; the test suite reproduces fine # in isolation). Sequencing avoids that contention at the cost of a longer # total run. windows: needs: build runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Toolchain uses: ./.gitea/actions/setup with: packages: lld zip - name: Cache Windows SDK uses: actions/cache@v4 with: path: | build/xwin build/xwin-sdk build/raylib-windows key: windows-sdk-${{ hashFiles('justfile') }} - name: Windows Build run: | # Debian/Ubuntu may only ship a versioned lld-link LLD_LINK="$(command -v lld-link || ls /usr/lib/llvm-*/bin/lld-link | sort -V | tail -1)" export LLD_LINK just windows-deps just windows