Skip to content

Commit 3f1c5ce

Browse files
committed
fix(docker,ci): copy all 6 workspace crate stubs in Dockerfile; skip already-published crates
docker/Dockerfile: - Copy edgeparse-python, edgeparse-node, edgeparse-wasm Cargo.toml stubs in the cache-warmup layer so cargo resolves the full workspace without errors release-rust.yml: - Make edgeparse-core and edgeparse-cli publish steps also skip gracefully if the version already exists on crates.io (same pattern as pdf-cos)
1 parent cc8bc32 commit 3f1c5ce

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

.github/workflows/release-rust.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,31 @@ jobs:
4949
- name: Publish edgeparse-core
5050
env:
5151
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
52-
run: cargo publish -p edgeparse-core
52+
run: |
53+
OUTPUT=$(cargo publish -p edgeparse-core 2>&1) && echo "$OUTPUT" || {
54+
echo "$OUTPUT"
55+
if echo "$OUTPUT" | grep -q "already exists on crates.io"; then
56+
echo "edgeparse-core already published at this version — skipping."
57+
else
58+
exit 1
59+
fi
60+
}
5361
5462
- name: Wait for crates.io index
5563
run: sleep 30
5664

5765
- name: Publish edgeparse CLI
5866
env:
5967
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
60-
run: cargo publish -p edgeparse-cli --no-verify
68+
run: |
69+
OUTPUT=$(cargo publish -p edgeparse-cli --no-verify 2>&1) && echo "$OUTPUT" || {
70+
echo "$OUTPUT"
71+
if echo "$OUTPUT" | grep -q "already exists on crates.io"; then
72+
echo "edgeparse-cli already published at this version — skipping."
73+
else
74+
exit 1
75+
fi
76+
}
6177
6278
- name: Create GitHub Release
6379
uses: softprops/action-gh-release@v2

docker/Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,20 @@ WORKDIR /build
1313
COPY Cargo.toml Cargo.lock ./
1414
COPY crates/edgeparse-core/Cargo.toml crates/edgeparse-core/
1515
COPY crates/edgeparse-cli/Cargo.toml crates/edgeparse-cli/
16-
COPY crates/pdf-cos/Cargo.toml crates/pdf-cos/
16+
COPY crates/pdf-cos/Cargo.toml crates/pdf-cos/
17+
COPY crates/edgeparse-python/Cargo.toml crates/edgeparse-python/
18+
COPY crates/edgeparse-node/Cargo.toml crates/edgeparse-node/
19+
COPY crates/edgeparse-wasm/Cargo.toml crates/edgeparse-wasm/
1720

1821
# Build a dummy binary to pre-warm dependency compilation cache
1922
RUN mkdir -p crates/edgeparse-core/src crates/edgeparse-cli/src crates/pdf-cos/src \
23+
crates/edgeparse-python/src crates/edgeparse-node/src crates/edgeparse-wasm/src \
2024
&& echo "fn main() {}" > crates/edgeparse-cli/src/main.rs \
2125
&& echo "" > crates/edgeparse-core/src/lib.rs \
2226
&& echo "" > crates/pdf-cos/src/lib.rs \
27+
&& echo "" > crates/edgeparse-python/src/lib.rs \
28+
&& echo "" > crates/edgeparse-node/src/lib.rs \
29+
&& echo "" > crates/edgeparse-wasm/src/lib.rs \
2330
&& cargo build --release -p edgeparse-cli \
2431
&& rm -rf crates/*/src
2532

0 commit comments

Comments
 (0)