| 1 | name: Standalone Bootstrap |
| 2 | |
| 3 | on: |
| 4 | push: |
| 5 | branches: |
| 6 | - trunk |
| 7 | - "codex/**" |
| 8 | pull_request: |
| 9 | |
| 10 | jobs: |
| 11 | bootstrap-linked-armfortas: |
| 12 | runs-on: macos-latest |
| 13 | |
| 14 | steps: |
| 15 | - name: Check out bencch |
| 16 | uses: actions/checkout@v4 |
| 17 | |
| 18 | - name: Check out armfortas |
| 19 | uses: actions/checkout@v4 |
| 20 | with: |
| 21 | repository: FortranGoingOnForty/armfortas |
| 22 | path: external-armfortas |
| 23 | submodules: recursive |
| 24 | |
| 25 | - name: Set up Rust |
| 26 | uses: dtolnay/rust-toolchain@stable |
| 27 | |
| 28 | - name: Generate linked bootstrap workspace |
| 29 | run: scripts/bootstrap-linked-armfortas.sh external-armfortas |
| 30 | |
| 31 | - name: Verify bootstrap doctor |
| 32 | run: | |
| 33 | cargo run --manifest-path .bencch-local/Cargo.toml -p afs-tests --bin bencch -- doctor > doctor.txt |
| 34 | grep "armfortas_capture_root: .*external-armfortas" doctor.txt |
| 35 | grep "armfortas_capture_status: linked via Cargo to .*external-armfortas" doctor.txt |
| 36 | |
| 37 | bootstrap-standalone-external: |
| 38 | runs-on: macos-latest |
| 39 | |
| 40 | steps: |
| 41 | - name: Check out bencch |
| 42 | uses: actions/checkout@v4 |
| 43 | |
| 44 | - name: Set up Rust |
| 45 | uses: dtolnay/rust-toolchain@stable |
| 46 | |
| 47 | - name: Generate external-only workspace |
| 48 | run: scripts/bootstrap-standalone-external.sh |
| 49 | |
| 50 | - name: Verify external-only doctor |
| 51 | run: | |
| 52 | cargo run --manifest-path .bencch-external/Cargo.toml -p afs-tests --bin bencch -- doctor > doctor.txt |
| 53 | grep "armfortas_capture_mode: unavailable" doctor.txt |
| 54 | grep "linked capture is unavailable in this build" doctor.txt |
| 55 | |
| 56 | - name: Verify external-only compare |
| 57 | run: | |
| 58 | cargo run --manifest-path .bencch-external/Cargo.toml -p afs-tests --bin bencch -- compare fixtures/fake_compilers/match_42_a.sh fixtures/fake_compilers/match_42_b.sh --program fixtures/runtime/if_else.f90 > compare.txt |
| 59 | grep "status: MATCH" compare.txt |
| 60 |