From 1d91e319739c0003e7beae7881330bfdb9a6d041 Mon Sep 17 00:00:00 2001 From: pathscale Date: Wed, 2 Sep 2026 12:59:24 +0700 Subject: [PATCH 1/2] Publish worktable and worktable_codegen to crates.vip Calls the reusable workflow in api.crates.vip, which packages the crate, derives its sparse-index entry from cargo metadata and writes both to Tigris under conditional requests. Manual dispatch, because a published version is immutable and cargo package embeds the git sha, so the same version from a different commit is refused rather than replaced. --- .github/workflows/publish-to-crates-vip.yml | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/publish-to-crates-vip.yml diff --git a/.github/workflows/publish-to-crates-vip.yml b/.github/workflows/publish-to-crates-vip.yml new file mode 100644 index 0000000..1c6f4c6 --- /dev/null +++ b/.github/workflows/publish-to-crates-vip.yml @@ -0,0 +1,43 @@ +name: publish-to-crates.vip + +# Publishes this workspace's crates to the private registry at crates.vip. +# +# The heavy lifting lives in api.crates.vip's reusable workflow: it packages the +# crate, derives the sparse-index entry from `cargo metadata`, and writes both to +# Tigris under conditional requests. Nothing is installed — the runner image +# already ships `aws` and `jq`. +# +# Publishing is manual on purpose. A published version is immutable, and +# `cargo package` embeds the git sha, so a version republished from a different +# commit is refused rather than silently replaced. + +on: + workflow_dispatch: + inputs: + dry-run: + description: Derive the index entry and print it, but write nothing + required: false + type: boolean + default: false + +jobs: + codegen: + uses: pathscale/api.crates.vip/.github/workflows/publish-crate.yml@master + with: + manifest-path: codegen/Cargo.toml + dry-run: ${{ inputs.dry-run }} + secrets: + tigris-key-id: ${{ secrets.CRATES_VIP_TIGRIS_KEY_ID }} + tigris-key-secret: ${{ secrets.CRATES_VIP_TIGRIS_KEY_SECRET }} + + # `worktable` depends on `worktable_codegen`, so the codegen crate has to be + # resolvable in the registry before this entry is written. + worktable: + needs: codegen + uses: pathscale/api.crates.vip/.github/workflows/publish-crate.yml@master + with: + manifest-path: Cargo.toml + dry-run: ${{ inputs.dry-run }} + secrets: + tigris-key-id: ${{ secrets.CRATES_VIP_TIGRIS_KEY_ID }} + tigris-key-secret: ${{ secrets.CRATES_VIP_TIGRIS_KEY_SECRET }} From c8bc6dbd135f3d9de311ff47b7a0180d91099003 Mon Sep 17 00:00:00 2001 From: pathscale Date: Wed, 2 Sep 2026 13:39:36 +0700 Subject: [PATCH 2/2] Point at the renamed backend repo api.crates.vip is now crates.vip-backend, matching the fleet convention where a backend is -backend. GitHub redirects the old path, but a workflow reference should name the repo that exists. --- .github/workflows/publish-to-crates-vip.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-crates-vip.yml b/.github/workflows/publish-to-crates-vip.yml index 1c6f4c6..2a99406 100644 --- a/.github/workflows/publish-to-crates-vip.yml +++ b/.github/workflows/publish-to-crates-vip.yml @@ -22,7 +22,7 @@ on: jobs: codegen: - uses: pathscale/api.crates.vip/.github/workflows/publish-crate.yml@master + uses: pathscale/crates.vip-backend/.github/workflows/publish-crate.yml@master with: manifest-path: codegen/Cargo.toml dry-run: ${{ inputs.dry-run }} @@ -34,7 +34,7 @@ jobs: # resolvable in the registry before this entry is written. worktable: needs: codegen - uses: pathscale/api.crates.vip/.github/workflows/publish-crate.yml@master + uses: pathscale/crates.vip-backend/.github/workflows/publish-crate.yml@master with: manifest-path: Cargo.toml dry-run: ${{ inputs.dry-run }}