@@ -105,3 +105,46 @@ jobs:
105105 name : supercoder-${{ matrix.target }}
106106 path : ${{ join(fromJSON(steps.tauri.outputs.artifactPaths), '\n') }}
107107 if-no-files-found : ignore
108+
109+ bench-runner :
110+ # The eval-harness bench-runner: a static musl x86_64 binary that runs the
111+ # agent headless inside toolchain-free task containers. Not a tauri bundle, so
112+ # it lives outside the desktop build matrix.
113+ runs-on : ubuntu-22.04
114+ permissions :
115+ contents : write
116+ steps :
117+ - uses : actions/checkout@v4
118+
119+ - uses : dtolnay/rust-toolchain@stable
120+ with :
121+ targets : x86_64-unknown-linux-musl
122+
123+ - uses : swatinem/rust-cache@v2
124+ with :
125+ key : musl-bench-runner
126+
127+ - name : Install musl toolchain
128+ run : sudo apt-get update && sudo apt-get install -y musl-tools
129+
130+ - name : Build static bench-runner
131+ env :
132+ CC_x86_64_unknown_linux_musl : musl-gcc
133+ CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER : musl-gcc
134+ run : cargo build --release --locked -p bench-runner --target x86_64-unknown-linux-musl
135+
136+ - name : Stage artifact
137+ run : cp target/x86_64-unknown-linux-musl/release/bench-runner bench-runner-x86_64-unknown-linux-musl
138+
139+ - name : Upload to release
140+ if : github.event_name == 'release'
141+ env :
142+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
143+ run : gh release upload "${{ github.event.release.tag_name }}" bench-runner-x86_64-unknown-linux-musl --clobber
144+
145+ - name : Upload as workflow artifact (workflow_dispatch only)
146+ if : github.event_name == 'workflow_dispatch'
147+ uses : actions/upload-artifact@v4
148+ with :
149+ name : bench-runner-x86_64-unknown-linux-musl
150+ path : bench-runner-x86_64-unknown-linux-musl
0 commit comments