@@ -11,12 +11,25 @@ jobs:
1111 runs-on : ubuntu-latest
1212 permissions :
1313 contents : write
14+ env :
15+ SERVER_RUST_TARGETS : x86_64-unknown-linux-musl aarch64-unknown-linux-musl
1416 steps :
1517 - name : Checkout
1618 uses : actions/checkout@v4
1719 with :
1820 fetch-depth : 0
1921
22+ - name : Cache cargo artifacts
23+ uses : actions/cache@v4
24+ with :
25+ path : |
26+ ~/.cargo/registry
27+ ~/.cargo/git
28+ packages/server-rust/target
29+ key : ${{ runner.os }}-server-rust-${{ hashFiles('packages/server-rust/Cargo.lock') }}
30+ restore-keys : |
31+ ${{ runner.os }}-server-rust-
32+
2033 - name : Install nightly toolchain
2134 uses : dtolnay/rust-toolchain@master
2235 with :
3649 fi
3750 echo "version=$VERSION" >> "$GITHUB_OUTPUT"
3851
39- - name : Build release binary
52+ - name : Build release binaries
4053 working-directory : packages/server-rust
41- run : make build
54+ run : |
55+ for TARGET in $SERVER_RUST_TARGETS; do
56+ make build TARGET=$TARGET
57+ done
58+
59+ - name : Prepare release artifacts
60+ run : |
61+ mkdir -p packages/server-rust/dist
62+ for TARGET in $SERVER_RUST_TARGETS; do
63+ SRC="packages/server-rust/target/$TARGET/release/devbox-sdk-server"
64+ case "$TARGET" in
65+ x86_64-unknown-linux-musl)
66+ DEST_NAME=devbox-sdk-server-linux-amd64
67+ ;;
68+ aarch64-unknown-linux-musl)
69+ DEST_NAME=devbox-sdk-server-linux-arm64
70+ ;;
71+ *)
72+ DEST_NAME=devbox-sdk-server-$TARGET
73+ ;;
74+ esac
75+ DEST="packages/server-rust/dist/$DEST_NAME"
76+ if [ ! -f "$SRC" ]; then
77+ echo "Expected binary not found at $SRC" >&2
78+ exit 1
79+ fi
80+ cp "$SRC" "$DEST"
81+ chmod +x "$DEST"
82+ done
4283
4384 - name : Generate release notes
4485 id : notes
4990 echo "## devbox-sdk-server v$VERSION"
5091 echo ""
5192 echo "- Commit: $SHA"
52- echo "- Target: x86_64-unknown-linux-musl"
93+ echo ""
94+ echo "### Targets"
95+ for TARGET in $SERVER_RUST_TARGETS; do
96+ echo "- $TARGET"
97+ done
5398 echo ""
5499 echo "### Changes"
55100 git log -20 --pretty=format:'- %h %s'
65110 tag_name : devbox-sdk-server-v${{ steps.crate.outputs.version }}
66111 name : devbox-sdk-server v${{ steps.crate.outputs.version }}
67112 body_path : release-notes.md
68- files : packages/server-rust/target/x86_64-unknown-linux-musl/release/devbox-sdk-server
113+ files : |
114+ packages/server-rust/dist/devbox-sdk-server-linux-amd64
115+ packages/server-rust/dist/devbox-sdk-server-linux-arm64
69116 fail_on_unmatched_files : true
0 commit comments