Add runtime configuration and strict OS environment boundary enforcement #10
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| cpu-gates: | |
| name: CPU gates (mix trinity.gates --skip-dialyzer) | |
| runs-on: ubuntu-latest | |
| env: | |
| MIX_ENV: test | |
| ELIXIR_VERSION: "1.18.0" | |
| OTP_VERSION: "27.1.2" | |
| XLA_TARGET: cpu | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Erlang and Elixir | |
| uses: erlef/setup-beam@v1 | |
| with: | |
| elixir-version: ${{ env.ELIXIR_VERSION }} | |
| otp-version: ${{ env.OTP_VERSION }} | |
| - name: Cache deps | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| deps | |
| _build | |
| ~/.cache/xla | |
| key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}-${{ env.XLA_TARGET }} | |
| restore-keys: | | |
| ${{ runner.os }}-mix- | |
| - name: Install deps | |
| run: mix deps.get | |
| - name: trinity.env.check | |
| run: mix trinity.env.check --require cpu | |
| - name: trinity.gates --skip-dialyzer | |
| # Dialyzer's PLT build is very slow on cold cache; skip for fast CI feedback. | |
| # The dedicated cuda workflow runs the full matrix on the maintainer host. | |
| run: mix trinity.gates --skip-dialyzer --summary-out tmp/ci_gates_summary.json | |
| - name: Upload gates summary | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: trinity_gates_summary | |
| path: tmp/ci_gates_summary.json |