Add support for ATmega88p #283
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
- wip | |
pull_request: | |
jobs: | |
ci: | |
name: "Test-build avr-device with all targets and runtime enabled" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Stable Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
# Python Dependencies | |
- name: Install Python dependencies | |
run: | | |
pip3 install --user setuptools wheel | |
pip3 install --user svdtools | |
- name: Put pip binary directory into path | |
run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
# Rust Dependencies | |
- name: Cache Cargo installed binaries | |
uses: actions/cache@v4 | |
id: cache-cargo | |
with: | |
path: ~/cargo-bin | |
key: rust-tools-006 | |
- name: Install svd2rust | |
if: steps.cache-cargo.outputs.cache-hit != 'true' | |
run: cargo install svd2rust --version 0.28.0 --locked | |
- name: Install cargo-form | |
if: steps.cache-cargo.outputs.cache-hit != 'true' | |
run: cargo install form --version 0.8.0 --locked | |
- name: Install atdf2svd | |
if: steps.cache-cargo.outputs.cache-hit != 'true' | |
run: cargo install atdf2svd --version 0.4.0 --locked | |
- name: Copy tools to cache directory | |
if: steps.cache-cargo.outputs.cache-hit != 'true' | |
run: | | |
mkdir ~/cargo-bin | |
cp ~/.cargo/bin/svd2rust ~/cargo-bin | |
cp ~/.cargo/bin/form ~/cargo-bin | |
cp ~/.cargo/bin/atdf2svd ~/cargo-bin | |
- name: Put new cargo binary directory into path | |
run: echo "$HOME/cargo-bin" >> $GITHUB_PATH | |
- name: Install Nightly Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly-2023-08-08 | |
components: rustfmt | |
# Actual test run | |
- name: Generate chip description sources | |
run: make RUSTUP_TOOLCHAIN=nightly-2023-08-08 | |
- name: Test-compile the crate | |
run: cargo check --all-features | |
ci-example: | |
name: "Test-build ATmega328P example" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly-2023-12-28 | |
components: rust-src,rustfmt | |
- name: Install AVR gcc, binutils, and libc | |
run: sudo apt-get install -y avr-libc binutils-avr gcc-avr | |
- name: Build ATmega328P example | |
run: cd examples/atmega328p && cargo build | |
- name: Check ATmega328P formatting | |
run: cd examples/atmega328p && cargo fmt --check |