166 lines
5.2 KiB
YAML
166 lines
5.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push: # Run CI for all branches except GitHub merge queue tmp branches
|
|
branches-ignore:
|
|
- "gh-readonly-queue/**"
|
|
pull_request: # Run CI for PRs on any branch
|
|
merge_group: # Run CI for the GitHub merge queue
|
|
|
|
jobs:
|
|
# Check build succeeds for each f3discovery chapter containing example code.
|
|
build-f3discovery-chapter:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
chapter:
|
|
- 05-led-roulette
|
|
- 06-hello-world
|
|
- 07-registers
|
|
- 08-leds-again
|
|
- 09-clocks-and-timers
|
|
- 11-usart
|
|
- 14-i2c
|
|
- 15-led-compass
|
|
- 16-punch-o-meter
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
target: thumbv7em-none-eabihf
|
|
- name: Build chapter
|
|
working-directory: f3discovery/src/${{ matrix.chapter }}
|
|
run: cargo build --target thumbv7em-none-eabihf
|
|
- name: Build chapter examples
|
|
working-directory: f3discovery/src/${{ matrix.chapter }}
|
|
run: cargo build --target thumbv7em-none-eabihf --examples
|
|
|
|
# Check build succeeds for f3discovery docs.
|
|
build-f3discovery-doc:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
target: thumbv7em-none-eabihf
|
|
- name: Build docs
|
|
run: cargo doc --target thumbv7em-none-eabihf
|
|
working-directory: f3discovery
|
|
|
|
# Check a build succeeds for each microbit chapter that contains example code.
|
|
build-microbit-chapter:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
chapter:
|
|
- 05-led-roulette
|
|
- 07-uart
|
|
- 08-i2c
|
|
- 09-led-compass
|
|
- 10-punch-o-meter
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
target: thumbv6m-none-eabi
|
|
- run: rustup target add thumbv7em-none-eabihf
|
|
- name: Build chapter micro:bit v1
|
|
working-directory: microbit/src/${{ matrix.chapter }}
|
|
run: cargo build --features v1 --target thumbv6m-none-eabi
|
|
- name: Build chapter micro:bit v2
|
|
working-directory: microbit/src/${{ matrix.chapter }}
|
|
run: cargo build --features v2 --target thumbv7em-none-eabihf
|
|
|
|
# Check build succeeds for microbit docs.
|
|
build-microbit-doc:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
target: thumbv6m-none-eabi
|
|
- run: rustup target add thumbv7em-none-eabihf
|
|
- name: Build docs for micro:bit v1
|
|
run: cargo doc --features v1 --target thumbv6m-none-eabi
|
|
working-directory: microbit
|
|
- name: Build docs for micro:bit v2
|
|
run: cargo doc --features v2 --target thumbv7em-none-eabihf
|
|
working-directory: microbit
|
|
|
|
# Build the book HTML itself and optionally publish it.
|
|
build-book:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
target: thumbv7em-none-eabihf
|
|
- run: rustup target add thumbv6m-none-eabi
|
|
|
|
- name: Install Python dependencies
|
|
run: |
|
|
pip3 install --user python-dateutil linkchecker
|
|
- name: Put pip binary directory into path
|
|
run: echo "~/.local/bin" >> $GITHUB_PATH
|
|
|
|
- name: Cache Cargo installed binaries
|
|
uses: actions/cache@v1
|
|
id: cache-cargo
|
|
with:
|
|
path: ~/cargo-bin
|
|
key: cache-cargo
|
|
- name: Install mdbook
|
|
if: steps.cache-cargo.outputs.cache-hit != 'true'
|
|
uses: actions-rs/install@v0.1
|
|
with:
|
|
crate: mdbook
|
|
version: latest
|
|
- name: Copy mdbook to cache directory
|
|
if: steps.cache-cargo.outputs.cache-hit != 'true'
|
|
run: |
|
|
mkdir ~/cargo-bin
|
|
cp ~/.cargo/bin/mdbook ~/cargo-bin
|
|
- name: Put new cargo binary directory into path
|
|
run: echo "~/cargo-bin" >> $GITHUB_PATH
|
|
|
|
- name: Build f3discovery book
|
|
working-directory: f3discovery
|
|
run: mkdir target && mdbook build
|
|
- name: Check microbit links
|
|
working-directory: f3discovery
|
|
run: linkchecker --ignore-url "print.html" book
|
|
|
|
- name: Build microbit book
|
|
working-directory: microbit
|
|
run: mkdir target && mdbook build
|
|
- name: Check microbit links
|
|
working-directory: microbit
|
|
run: linkchecker --ignore-url "print.html" book
|
|
|
|
- name: Build front page
|
|
run: mdbook build
|
|
- name: Check links
|
|
run: linkchecker book
|
|
|
|
- name: Collect books
|
|
run: |
|
|
mv f3discovery/book book/f3discovery
|
|
mv microbit/book book/microbit
|
|
|
|
- name: Deploy book
|
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: book
|
|
force_orphan: true
|