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
tag
used 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.sh
The 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
Dockerfile
can be used to build the CLI in release modeDockerfile.dev
can be used to build the CLI in debug mode
To build the release docker image
$> make build-docker-release
To build the debug docker image
$> make build-docker-debug