Files
mytheclipse/.github/workflows/publish.yml
T
asepharyana cff426cc2a
CI / Rustfmt (push) Canceled after 0s
CI / Clippy (push) Canceled after 0s
CI / Test (workspace all features) (push) Canceled after 0s
CI / Test (workspace default features) (push) Canceled after 0s
CI / Test (mytheclipse / bg only) (push) Canceled after 0s
CI / Test (mytheclipse / compute only) (push) Canceled after 0s
CI / Test (mytheclipse / io only) (push) Canceled after 0s
CI / Test (mytheclipse / lifecycle only) (push) Canceled after 0s
CI / Test (mytheclipse / observability only) (push) Canceled after 0s
CI / Test (mytheclipse / resiliency only) (push) Canceled after 0s
CI / Test (mytheclipse / traffic only) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l2-redis) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l1-moka) (push) Canceled after 0s
CI / Test (mytheclipse-cache / default) (push) Canceled after 0s
CI / Test (mytheclipse-config / default) (push) Canceled after 0s
CI / Test (mytheclipse-crypto / default) (push) Canceled after 0s
CI / Test (mytheclipse-event / amqp) (push) Canceled after 0s
CI / Test (mytheclipse-event / nats) (push) Canceled after 0s
CI / Test (mytheclipse-event / default (mem)) (push) Canceled after 0s
CI / Test (mytheclipse-storage / gcs) (push) Canceled after 0s
CI / Test (mytheclipse-storage / s3) (push) Canceled after 0s
CI / Test (mytheclipse-storage / default (local)) (push) Canceled after 0s
CI / Run mytheclipse example (push) Canceled after 0s
CI / Docs check (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-cache) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-config) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-crypto) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-event) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-storage) (push) Canceled after 0s
Release / Semantic Release (push) Canceled after 0s
Publish to crates.io / Publish (push) Canceled after 0s
ci: publish mytheclipse-queue + mytheclipse-tracing; make publish idempotent
The publish workflow's hardcoded crate list omitted mytheclipse-queue and
mytheclipse-tracing, so they were never released to crates.io despite the
workspace being bumped to 1.21.2. Add both to the loop and make each
publish tolerant of already-uploaded versions so re-runs are safe.
2026-08-30 19:47:37 +07:00

44 lines
1.4 KiB
YAML

name: Publish to crates.io
on:
push:
tags: ["v*.*.*"]
workflow_dispatch:
inputs:
tag:
description: "Git tag to publish (e.g. v0.2.0). Defaults to latest tag."
required: false
type: string
permissions:
contents: read
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.tag || github.event.ref || github.ref }}
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
# The workspace crates have no interdependencies, so publish order
# doesn't matter for crates.io dependency resolution. A brief sleep
# between publishes avoids hitting crates.io's rate limit. Re-publishing
# an already-uploaded version is tolerated (idempotent re-runs).
- name: Publish workspace crates
run: |
for crate in mytheclipse mytheclipse-cache mytheclipse-storage mytheclipse-event mytheclipse-config mytheclipse-crypto mytheclipse-queue mytheclipse-tracing; do
echo "Publishing $crate..."
if cargo publish -p "$crate" --allow-dirty --no-verify; then
echo "$crate published OK"
else
echo "$crate: publish failed (already uploaded or error)"
fi
sleep 15
done
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}