Reusable composite GitHub Actions for CI/CD pipelines
A collection of production-ready, reusable GitHub Actions composite workflows for Rust, Docker, security scanning, and compliance. Built for enterprise environments with a focus on security, supply chain integrity, and regulatory compliance.
Use these actions in your workflows by referencing them with the uses keyword:
# Example: Use Rust caching in your workflow
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust dependencies
uses: firestoned/github-actions/rust/cache-cargo@v1
- name: Build
run: cargo build --releasePin to major version (@v1) for automatic minor/patch updates, or pin to exact version (@v1.0.0) for stability.
Note: All Rust actions require the Rust toolchain to be installed. Use
rust/setup-rust-buildor actions-rust-lang/setup-rust-toolchain before using these actions.
| Action | Description | Documentation |
|---|---|---|
rust/cache-cargo |
Cache Cargo registry, index, and build artifacts | π Docs |
rust/setup-rust-build |
Set up Rust toolchain with cross-compilation support | π Docs |
rust/verify-toolchain |
Verify Rust toolchain and required components are installed | π Docs |
rust/build-binary |
Build Rust binaries for x86_64 and ARM64 | π Docs |
rust/build-library |
Build Rust libraries with flexible profile and feature control | π Docs |
rust/lint |
Run cargo fmt and cargo clippy for code quality | π Docs |
rust/security-scan |
Scan Rust dependencies for vulnerabilities (cargo-audit) | π Docs |
rust/generate-sbom |
Generate Software Bill of Materials (CycloneDX) | π Docs |
| Action | Description | Documentation |
|---|---|---|
security/trivy-scan |
Container vulnerability scanning with Trivy | π Docs |
security/cosign-sign |
Sign container images and artifacts with Cosign | π Docs |
security/verify-signed-commits |
Verify all commits are cryptographically signed | π Docs |
security/license-check |
Verify SPDX license headers in source files | π Docs |
| Action | Description | Documentation |
|---|---|---|
docker/setup-docker |
Set up Docker Buildx and authenticate to GHCR | π Docs |
| Action | Description | Documentation |
|---|---|---|
versioning/extract-version |
Extract version info for consistent tagging across workflows | π Docs |
name: Rust CI/CD
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Cache Cargo dependencies
- uses: firestoned/github-actions/rust/cache-cargo@v1
# Set up Rust toolchain for x86_64
- uses: firestoned/github-actions/rust/setup-rust-build@v1
with:
target: x86_64-unknown-linux-gnu
# Build binary
- uses: firestoned/github-actions/rust/build-binary@v1
with:
target: x86_64-unknown-linux-gnu
# Security scan
- uses: firestoned/github-actions/rust/security-scan@v1
with:
cargo-audit-version: '0.21.0'
# Generate SBOM
- uses: firestoned/github-actions/rust/generate-sbom@v1
with:
format: json
describe: binariesname: Container Security
on:
push:
branches: [main]
jobs:
scan-and-sign:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
# Build your container image
- name: Build image
run: docker build -t myapp:latest .
# Scan with Trivy
- uses: firestoned/github-actions/security/trivy-scan@v1
with:
image-ref: myapp:latest
sarif-category: trivy-container-scan
# Sign with Cosign (keyless)
- uses: firestoned/github-actions/security/cosign-sign@v1
with:
image-digest: ${{ steps.build.outputs.digest }}
registry: ghcr.io
repository: myorg/myappname: Compliance Checks
on:
pull_request:
branches: [main]
jobs:
compliance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for commit verification
# Verify all commits are signed
- uses: firestoned/github-actions/security/verify-signed-commits@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
verify-mode: pr
base-ref: origin/main
# Check SPDX license headers
- uses: firestoned/github-actions/security/license-check@v1
with:
copyright-holder: "Your Organization"
license-id: MITThis repository follows semantic versioning for GitHub Actions:
- Major version (
v1,v2): Breaking changes to inputs/outputs - Minor version (
v1.1,v1.2): New features, backward compatible - Patch version (
v1.0.1,v1.0.2): Bug fixes
# β
Recommended: Pin to major version (get minor/patch updates automatically)
uses: firestoned/github-actions/rust/cache-cargo@v1
# β
Conservative: Pin to exact version (manual updates only)
uses: firestoned/github-actions/rust/cache-cargo@v1.0.0
# β οΈ Not recommended: Use main branch (unstable)
uses: firestoned/github-actions/rust/cache-cargo@mainEach action is tagged with:
v1- Latest v1.x.x release (auto-updates)v1.0- Latest v1.0.x release (patch updates only)v1.0.0- Exact release (no auto-updates)
These actions are built with the following principles:
- Zero Hardcoding: All values are configurable via inputs
- Language Agnostic: Generic actions work with any language/ecosystem
- Security First: Built for regulated environments (banking, finance, healthcare)
- Compliance Ready: SBOM generation, signed commits, license verification
- Well Documented: Every action has comprehensive README with examples
- Tested: Validated in production across multiple projects
- Composable: Actions work together and with standard GitHub Actions
- β Rust projects with multi-architecture builds
- β Projects requiring SLSA supply chain security
- β Organizations with compliance requirements (SOC2, PCI-DSS, HIPAA)
- β Teams standardizing CI/CD across multiple repositories
- β Open-source projects with security best practices
- Supply Chain Security: SBOM generation, artifact signing, commit verification
- Vulnerability Management: Automated scanning with Trivy and cargo-audit
- Audit Trail: All actions log detailed output for compliance reviews
- Reproducible Builds: Deterministic caching and versioning
| Language | Actions Available | Count |
|---|---|---|
| Rust | cache-cargo, setup-rust-build, verify-toolchain, build-binary, build-library, lint, security-scan, generate-sbom | 8 |
| Go | trivy-scan, cosign-sign, verify-signed-commits, license-check, setup-docker, extract-version | 6 |
| Python | trivy-scan, cosign-sign, verify-signed-commits, license-check, setup-docker, extract-version | 6 |
| Node.js | trivy-scan, cosign-sign, verify-signed-commits, license-check, setup-docker, extract-version | 6 |
| Java | trivy-scan, cosign-sign, verify-signed-commits, license-check, setup-docker, extract-version | 6 |
| Any | trivy-scan, cosign-sign, verify-signed-commits, license-check, setup-docker, extract-version | 6 |
| Use Case | Actions | Benefit |
|---|---|---|
| Security Scanning | trivy-scan, security-scan | Detect vulnerabilities early |
| Supply Chain | generate-sbom, cosign-sign | SLSA compliance, provenance |
| Compliance | license-check, verify-signed-commits | Regulatory requirements |
| Performance | cache-cargo, setup-rust-build | Faster builds, lower costs |
| Multi-Arch | setup-rust-build, build-binary | ARM64 + x86_64 support |
Each action has its own detailed README with:
- Purpose and use cases
- Input parameters and defaults
- Output values
- Complete usage examples
- Troubleshooting tips
- Best practices
Browse actions:
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-action) - Follow existing action patterns and documentation style
- Test your changes thoroughly
- Submit a pull request
- Create directory:
<category>/<action-name>/ - Add
action.ymlwith proper inputs/outputs - Create comprehensive
README.md - Update main README.md with new action
- Add test workflow in
.github/workflows/
See CONTRIBUTING.md for detailed guidelines.
Found a bug or have a feature request?
- Check existing issues
- Create a new issue with:
- Action name and version
- Steps to reproduce
- Expected vs. actual behavior
- Workflow YAML (sanitized)
This project is licensed under the MIT License - see the LICENSE file for details.
These actions are battle-tested in production environments across:
- Banking and financial services
- Platform engineering teams
- Multi-cluster Kubernetes deployments
- Regulated compliance environments
Built with β€οΈ by the firestoned team.
- Documentation: GitHub Actions Documentation
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Star this repo β if you find it useful!