shared-actions/rust-build/README.md
Michael Seele 802aa7d6fe
All checks were successful
validate-shared-actions / validate-shared-actions (pull_request) Successful in 44s
Aikido Security PR Check / Aikido Security Scan (pull_request) Successful in 51s
feat: add rust-build action with documentation
2026-06-01 14:30:16 +00:00

42 lines
1.6 KiB
Markdown

# rust-build
Set up Rust toolchain, configure Cargo registry, cache dependencies, run optional checks, and build via the project's `build.sh` script.
## Inputs
| Input | Required | Default | Description |
|-------|----------|---------|-------------|
| `working-directory` | No | `.` | Directory containing `Cargo.toml` and `build.sh` |
| `rust-version` | No | `1.95.0` | Rust toolchain version |
| `cross-target` | No | `x86_64-unknown-linux-musl` | Cross-compilation target triple |
| `build-mode` | No | `release` | Build mode — `release` or `debug` |
| `run-checks` | No | `""` | Comma-separated checks to run before building — `fmt`, `clippy`, `test` |
| `jfrog-token` | No | `""` | JFrog token for the Artifactory Cargo registry |
## Usage
### PR check (checks + debug build)
```yaml
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/rust-build@rust-build-v1
with:
working-directory: backend-rs
build-mode: debug
run-checks: fmt,clippy,test
jfrog-token: ${{ secrets.JFROG_TOKEN }}
```
### Release build
```yaml
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/rust-build@rust-build-v1
with:
working-directory: backend-rs
jfrog-token: ${{ secrets.JFROG_TOKEN }}
```
## Notes
- Requires a `build.sh` in `working-directory` that accepts `--target <triple>` and optionally `--release`. The script is responsible for running `cargo build` and copying binaries to `target/deploy/`.
- Configures the Artifactory Cargo registry only if `jfrog-token` is provided.
- Third-party actions used internally are pinned to exact commit SHAs to prevent supply chain attacks.