This repository contains reusable composite actions for Singularity projects.
Sets up Nix development environment with all caching layers for Rust projects.
Features:
- Installs Nix with flakes enabled
- Configures Magic Nix Cache
- Optionally configures FlakeHub Cache
- Optionally configures Cachix
- Sets up Rust toolchain from flake
Usage:
- uses: Singularity-ng/github-actions/setup-nix-rust@v1
with:
cachix-name: singularity # optional
enable-flakehub: true # optionalGenerates comprehensive quality reports for releases.
Features:
- Clippy report (zero warnings validation)
- Security audit (cargo-audit + cargo-deny)
- SBOM generation
- Test coverage report
- Build information
- Dependency status report
- Changelog extraction
- Release summary
Usage:
- uses: Singularity-ng/github-actions/generate-release-reports@v1
with:
version: "1.0.0"Builds a .crate package with installation instructions.
Features:
- Builds .crate file
- Lists package contents
- Generates installation guide
Usage:
- uses: Singularity-ng/github-actions/build-crate-package@v1
with:
version: "1.0.0"We use semantic versioning with Git tags:
@main- Latest development version (may be unstable)@v1- Latest stable v1.x.x release@v1.2.3- Specific version
Recommendation: Use @v1 in production to get bug fixes while avoiding breaking changes.
See each action's action.yml for detailed input documentation.
steps:
- uses: actions/checkout@v4
- uses: Singularity-ng/github-actions/setup-nix-rust@v1
with:
cachix-name: singularity
- uses: Singularity-ng/github-actions/generate-release-reports@v1
with:
version: ${{ needs.validate.outputs.version }}
- uses: Singularity-ng/github-actions/build-crate-package@v1
with:
version: ${{ needs.validate.outputs.version }}To update these actions:
- Make changes in a branch
- Test in a project using
@branch-name - Open PR
- After merge, tag a new version
- Update projects to use new version
See the organization's SUPPORT.md for help.