Template repository for creating new rust projects including a CLI and YAML based configuration management.
- CLI
- Configuration management
- Docker image tooling
- Lint script (
cargo fmt+clippy) - GitHub Actions integration
After cloning this repository there are a few things you'll likely want to change:
- The name of the
tagused when building the docker images (edit theMakefile) - Rust toolchain version (edit
rust-toolchain.toml) - If changing the rust toolchain version also update the version in [./github/workflow/ci.yml]
The lint script rust runs cargo fmt, and then cargo clippy --fix. To run the script
$> ./scripts/lint.shThe dockerfile's are optimized to minimize compilation times by using multi-stage builds and cargo chef to cache dependency compilation. The final build stage trims as much as possible to minimize the final image size.
Requires that you have the BuildKit plugin installed.
There are two image files
Dockerfilecan be used to build the CLI in release modeDockerfile.devcan be used to build the CLI in debug mode
To build the release docker image
$> make build-docker-releaseTo build the debug docker image
$> make build-docker-debug