Release Rust embedded firmware using Github Actions
Github Actions
Github Actions is a nice way to setup CI/CD pipelines for your Github projects. Let’s setup it for an embedded firmware project written in Rust.
Continuous integration script would run every time when new code is pushed to master
branch and release script would run only if a new tag is pushed.
Release in Github looks like this:
Let’s get started. We need following files in project root:
.github/workflows/ci.yaml
.github/workflows/release.yaml
File names actually do not matter.
ci.yaml
It is assumed that your Cargo project is setup in such a way that you could just run cargo build --release
in root directory and everything builds. This script is doing just that:
name: Continuous Integration
on:
push:
branches:
- master
env:
CARGO_TERM_COLOR: always
jobs:
compile:
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
...