Cargo Authentication
Publish Rust crates to crates.io
cargo publish --token.
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
cargo-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
publish-new and publish-updateCARGO_REGISTRY_TOKEN secret in your repoIf you prefer to configure credentials manually:
- name: Configure Cargo credentials
run: |
mkdir -p ~/.cargo
cat > ~/.cargo/credentials.toml << EOF
[registry]
token = "${{ secrets.CARGO_REGISTRY_TOKEN }}"
EOF
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
Cargo also respects the CARGO_REGISTRY_TOKEN environment variable:
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
Ensure your Cargo.toml has all required fields:
[package]
name = "your-crate"
version = "0.1.0"
edition = "2021"
license = "MIT"
description = "A short description"
repository = "https://github.com/you/your-crate"
For Cargo workspaces, configure each crate as a separate package:
# .github/release-pilot.yml
packages:
- name: core
ecosystem: cargo
path: ./crates/core
- name: cli
ecosystem: cargo
path: ./crates/cli
releaseOrder:
- core
- cli
| Input | Description | Default |
|---|---|---|
cargo-token |
crates.io API token | - |