Rust
Build actions for Rust projects using Cargo.
Available Actions
| Action | Description |
|---|---|
rust-setup | Install Rust toolchain |
rust-registry-login | Configure Cargo registries |
rust-build | Build and test |
rust-cut-tag | Bump version and create tag |
rust-registry-publish | Publish to Cargo registry |
Version File
Cargo reads and writes versions in Cargo.toml:
[package]
name = "my-service"
version = "1.2.3"
Required Variables
| Variable | Description |
|---|---|
CARGO_REGISTRY | Cargo registry URL for private crates |
Example Usage
steps:
- uses: actions/checkout@v4
- uses: p6m-actions/rust-setup@v1
- uses: p6m-actions/rust-registry-login@v1
with:
registry-url: ${{ vars.CARGO_REGISTRY }}
token: ${{ secrets.ARTIFACTORY_IDENTITY_TOKEN }}
- uses: p6m-actions/rust-build@v1
Multi-Architecture Builds
Rust projects benefit from native builds per architecture for better performance:
jobs:
build-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: p6m-actions/rust-setup@v1
- uses: p6m-actions/rust-build@v1
build-arm64:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- uses: p6m-actions/rust-setup@v1
- uses: p6m-actions/rust-build@v1
Dockerfile
note
Dockerfile patterns depend on your specific project structure. Rust projects benefit from cargo-chef for dependency caching, and native builds per architecture for performance.
See Containerization for general patterns including:
- Multi-stage builds vs copying pre-built artifacts
- Non-root user configuration
- Health check setup
Related
- Rust Setup Guide - Local development environment
- Containerization - General container patterns
- Multi-Architecture Builds - Native builds for Rust