Template Authoring
Available since version 0.9.0
As a template author you're probably concerned about successful builds of your template.
Imagine a couple of months after your first template release, some new versions of any dependencies would break your template, and you would not even be aware of it?
The answer to this question is a vital build pipeline for your template project. This challenge got now much simpler to solve with the new official cargo-generate GitHub Action.
Here is an example:
tree .github
.github
└── workflows
└── build.yml
The content of build.yml
as a paste template:
name: Build Template
on:
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch
workflow_dispatch:
schedule:
- cron: '0 18 * * 5'
push:
branches: [ '*' ]
paths-ignore:
- "**/docs/**"
- "**.md"
jobs:
build:
runs-on: ubuntu-latest
env:
PROJECT_NAME: mytemplate
steps:
- uses: actions/checkout@v4
- uses: cargo-generate/cargo-generate-action@latest
with:
name: ${{ env.PROJECT_NAME }}
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
# we need to move the generated project to a temp folder, away from the template project
# otherwise `cargo` runs would fail
# see https://github.com/rust-lang/cargo/issues/9922
- run: |
mv $PROJECT_NAME ${{ runner.temp }}/
cd ${{ runner.temp }}/$PROJECT_NAME
cargo check
This is a very simple pipeline that builds weekly and on push.
It processes your template repo and runs a cargo check
as the final step. That's it, a good start to build on.