@@ -157,6 +157,23 @@ jobs:
157157 upload_prefix : engine
158158 platform : windows-x64
159159 release_only : true
160+ # Container runner binary: static musl builds only. The runner only ever
161+ # runs inside Linux containers, where users curl the released binary into
162+ # their image.
163+ - name : container-runner (linux-x64-musl)
164+ build_target : container-runner
165+ docker : docker/build/linux-x64-musl.Dockerfile
166+ artifact : rivet-container-runner-x86_64-unknown-linux-musl
167+ upload_prefix : container-runner
168+ platform : linux-x64-musl
169+ release_only : false
170+ - name : container-runner (linux-arm64-musl)
171+ build_target : container-runner
172+ docker : docker/build/linux-arm64-musl.Dockerfile
173+ artifact : rivet-container-runner-aarch64-unknown-linux-musl
174+ upload_prefix : container-runner
175+ platform : linux-arm64-musl
176+ release_only : false
160177 # Rivet Cloud CLI: 4 platforms for preview, 5 for release. The publish
161178 # job also places the matching rivet-engine artifact next to the CLI
162179 # binary so `rivet dev` works from the npm package.
@@ -407,6 +424,12 @@ jobs:
407424 path : cli-artifacts
408425 pattern : cli-*
409426 merge-multiple : true
427+ - name : Download container runner artifacts
428+ uses : actions/download-artifact@v4
429+ with :
430+ path : container-runner-artifacts
431+ pattern : container-runner-*
432+ merge-multiple : true
410433 - name : Place native binaries in platform packages
411434 run : |
412435 NATIVE_DIR=rivetkit-typescript/packages/rivetkit-napi
@@ -552,6 +575,12 @@ jobs:
552575 R2_RELEASES_SECRET_ACCESS_KEY : ${{ secrets.R2_RELEASES_SECRET_ACCESS_KEY }}
553576 run : pnpm --filter=publish exec tsx src/ci/bin.ts upload-r2 --source "$GITHUB_WORKSPACE/engine-artifacts" --sha ${{ needs.context.outputs.sha }}
554577
578+ - name : Upload container runner binaries to R2
579+ env :
580+ R2_RELEASES_ACCESS_KEY_ID : ${{ secrets.R2_RELEASES_ACCESS_KEY_ID }}
581+ R2_RELEASES_SECRET_ACCESS_KEY : ${{ secrets.R2_RELEASES_SECRET_ACCESS_KEY }}
582+ run : pnpm --filter=publish exec tsx src/ci/bin.ts upload-r2 --source "$GITHUB_WORKSPACE/container-runner-artifacts" --sha ${{ needs.context.outputs.sha }} --name container-runner
583+
555584 - name : Copy R2 artifacts to version path
556585 if : needs.context.outputs.trigger == 'release'
557586 env :
@@ -562,6 +591,11 @@ jobs:
562591 --sha ${{ needs.context.outputs.sha }} \
563592 --version ${{ needs.context.outputs.version }} \
564593 --latest ${{ needs.context.outputs.latest }}
594+ pnpm --filter=publish exec tsx src/ci/bin.ts copy-r2 \
595+ --sha ${{ needs.context.outputs.sha }} \
596+ --version ${{ needs.context.outputs.version }} \
597+ --latest ${{ needs.context.outputs.latest }} \
598+ --name container-runner
565599
566600 - name : Dry-run Rust crate publish
567601 if : needs.context.outputs.trigger != 'release'
0 commit comments