Add CI #6

Merged
muellerr merged 1 commits from ci-update into main 2024-06-25 10:11:35 +02:00
4 changed files with 118 additions and 5 deletions
Showing only changes of commit 8dc7480ce3 - Show all commits

52
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: ci
on: [push, pull_request]
jobs:
check:
name: Check build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: "thumbv7em-none-eabihf"
- run: cargo check --target thumbv7em-none-eabihf --release
- run: cargo check --target thumbv7em-none-eabihf --examples --release
test:
name: Run Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install nextest
uses: taiki-e/install-action@nextest
- run: cargo nextest run --all-features -p va416xx-hal
# I think we can skip those on an embedded crate..
# - run: cargo test --doc -p va108xx-hal
fmt:
name: Check formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo fmt --all -- --check
docs:
name: Check Documentation Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo +nightly doc --all-features --config 'build.rustdocflags=["--cfg", "docs_rs"]'
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: "thumbv7em-none-eabihf"
- run: cargo clippy --target thumbv7em-none-eabihf -- -D warnings

View File

@ -8,11 +8,16 @@ of devices.
This workspace contains the following crates:
- The `va416xx` PAC crate containing basic low-level register definition
- The `va416xx-hal` HAL crate containing higher-level abstractions on top of
the PAC register crate.
- The `vorago-peb1` BSP crate containing support for the PEB1 development
board.
- The [`va416xx`](https://egit.irs.uni-stuttgart.de/rust/va416xx-rs/src/branch/main/va416xx)
PAC crate containing basic low-level register definition
- The [`va416xx-hal`](https://egit.irs.uni-stuttgart.de/rust/va416xx-rs/src/branch/main/va416xx-hal)
HAL crate containing higher-level abstractions on top of the PAC register crate.
- The [`vorago-peb1`](https://egit.irs.uni-stuttgart.de/rust/va416xx-rs/src/branch/main/vorago-peb1)
BSP crate containing support for the PEB1 development board.
It also contains the following helper crates:
- The `examples` crates contains various example applications for the HAL and the PAC.
## Using the `.cargo/config.toml` file

13
automation/Dockerfile Normal file
View File

@ -0,0 +1,13 @@
# Run the following commands from root directory to build and run locally
# docker build -f automation/Dockerfile -t <NAME> .
# docker run -it <NAME>
FROM rust:latest
RUN apt-get update
RUN apt-get --yes upgrade
# tzdata is a dependency, won't install otherwise
ARG DEBIAN_FRONTEND=noninteractive
RUN rustup install nightly && \
rustup target add thumbv7em-none-eabihf && \
rustup +nightly target add thumbv7em-none-eabihf && \
rustup component add rustfmt clippy

43
automation/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,43 @@
pipeline {
agent {
dockerfile {
dir 'automation'
reuseNode true
}
}
stages {
stage('Rust Toolchain Info') {
steps {
sh 'rustc --version'
}
}
stage('Clippy') {
steps {
sh 'cargo clippy --target thumbv7em-none-eabihf'
}
}
stage('Rustfmt') {
steps {
sh 'cargo fmt'
}
}
stage('Docs') {
steps {
sh """
cargo +nightly doc --all-features --config 'build.rustdocflags=["--cfg", "docs_rs"]'
"""
}
}
stage('Check') {
steps {
sh 'cargo check --target thumbv7em-none-eabihf'
}
}
stage('Check Examples') {
steps {
sh 'cargo check --target thumbv7em-none-eabihf --examples'
}
}
}
}