Skip to content

eg/CI build

eg/CI build #559

Workflow file for this run

# Check with
# yamllint CI.yaml | grep syntax
on:
push:
branches: [ main, dev, eh-1, eh-1-dev ]
pull_request:
schedule:
- cron: 0 1 * * 1
name: eg/CI build
env:
CARGO_TERM_COLOR: always
jobs:
# One job (named eg) runs all examples on a subset of "boards". It goes by example so
# they are all attempted, and does not stop at the first example to fail. This is nice for
# identifying problems in the examples, but is slow because of rebuild for each example.
# (It would be faster if I could get caching to work.)
# The other job (named CI) runs a matrix of strategies x on all "boards".
# For each matrix point all examples are run with a single build. This is faster but
# terminates on the first example failure so examples that are known to fail are omitted.
# Currently only strategy dev-testing is being run. (There is too much change for the other to work.)
# The 4 strategies are release-testing, driver-testing, hal-testing, and dev-testing.
# The differnce is set in the Cargo.toml file in the strategy directories.
# The release-testing uses release versions of both the driver crate and the HAL crate.
# The driver-testing uses the git versions of the driver crate and the release version of the HAL crate.
# The hal-testing uses the release versions of the driver crate and the git version of the HAL crate.
# The dev-testing uses git versions of both the driver crate and the HAL crate.
#################################################################################################
#################################################################################################
#################################################################################################
boards:
name: CI
runs-on: ubuntu-latest
continue-on-error: true
#fail-fast: false
strategy:
matrix:
brd: [bluepill, discovery-stm32f303, blackpill-stm32f401, blackpill-stm32f411, none-stm32f769,
none-stm32g081, weact-stm32g431, none-stm32g473, weact-stm32g474,
devEBox-stm32h750,
none-stm32l0x2, discovery-stm32l100, heltec-lora-node151, none-stm32l422,
none-stm32f100, none-stm32f101, none-stm32f030, ]
#brd: [bluepill, discovery-stm32f303, blackpill-stm32f401, blackpill-stm32f411,
# none-stm32f769, devEBox-stm32h750, devEBox-stm32h743, none-stm32h742, discovery-stm32l100, heltec-lora-node151, none-stm32l422,
# none-stm32f100, none-stm32f101, none-stm32f030, none-stm32l0x2 ]
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
# none-stm32f042, always fails because it does not have 3 usarts
# stm32fxx_hal does not have adc support enabled for stm32f722. Switched to stm32f769
# Until things are more stable everything but dev-testing is failing.
#stg: [release-testing, driver-testing, hal-testing, dev-testing ]
#stg: [release-testing, dev-testing ]
stg: [dev-testing ]
include:
#- brd: "none-stm32f042"
# mcu: stm32f042
# hal: "stm32f0xx"
# trg: "thumbv6m-none-eabi"
- brd: "none-stm32f030"
mcu: stm32f030xc
hal: "stm32f0xx"
trg: "thumbv6m-none-eabi"
- brd: "none-stm32f100"
mcu: stm32f100
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "none-stm32f101"
mcu: stm32f101
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "discovery-stm32f303"
mcu: stm32f303xc
hal: "stm32f3xx"
trg: "thumbv7em-none-eabihf"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
- brd: "blackpill-stm32f411"
mcu: stm32f411
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
- brd: "none-stm32f769"
mcu: stm32f769
hal: "stm32f7xx"
trg: "thumbv7em-none-eabihf"
- brd: "none-stm32g081"
mcu: stm32g081
hal: "stm32g0xx"
trg: "thumbv6m-none-eabi"
- brd: "weact-stm32g431"
mcu: stm32g431xB
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "none-stm32g473"
mcu: stm32g473
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
- brd: "none-stm32l0x2"
mcu: stm32l0x2kztx
hal: "stm32l0xx"
trg: "thumbv6m-none-eabi"
- brd: "discovery-stm32l100"
mcu: stm32l100
hal: "stm32l1xx"
trg: "thumbv7m-none-eabi"
- brd: "heltec-lora-node151"
mcu: stm32l151
hal: "stm32l1xx"
trg: "thumbv7m-none-eabi"
- brd: "none-stm32l422"
mcu: stm32l422
hal: "stm32l4xx"
trg: "thumbv7em-none-eabi"
steps:
- uses: actions/checkout@v3
#- uses: dtolnay/rust-toolchain@stable
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path ${{ matrix.stg }}/Cargo.toml
- name: old_hal_tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path ${{ matrix.stg }}/Cargo.toml -i embedded-hal@0.2.7
- name: Build
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
# Examples were previously specified as follows, but actions-rs seems no longer maintained and uses deprecated code.
# Use-cross is not needed for build and is removed, but may be needed for linking.
# - name: Example xxx
# uses: actions-rs/cargo@v1
# with:
# command: build
# args: --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example xxx
#
##### misc #####
- name: Example blink
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example blink
- name: Example blink_impl
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example blink_impl
- name: Example blink3
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example blink3
- name: Example digi_pot
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example digi_pot
# - name: Example echo_string
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example echo_string
# - name: Example serial_string
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example serial_string
# - name: Example spi
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example spi
- name: Example temperature
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example temperature
- name: Example text_i2c
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example text_i2c
- name: Example battery_monitor_ads1015
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example battery_monitor_ads1015
- name: Example dht
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example dht
- name: Example oled_dht
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example oled_dht
# - name: Example onewire
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example onewire
# - name: Example one_wire_bus_find_devices
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example one_wire_bus_find_devices
# - name: Example ds18b20
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ds18b20
##### driver-examples #####
#see https://github.com/eldruin/driver-examples/commit/f0997765a9aaae02287940012060d29548fcb9df
# - name: Example ad9833-midi-player
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ad9833-midi-player
- name: Example ads1015-adc-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ads1015-adc-display
- name: Example at24c256-eeprom
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example at24c256-eeprom
- name: Example bmi160-imu-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example bmi160-imu-display
- name: Example ccs811-gas-voc-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ccs811-gas-voc-display
- name: Example ccs811-gas-voc-hdc2080-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ccs811-gas-voc-hdc2080-display
- name: Example ds1307-rtc
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ds1307-rtc
- name: Example hdc2080-temp-humidity-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example hdc2080-temp-humidity-display
- name: Example isl29125-color-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example isl29125-color-display
- name: Example max17043-battery-monitor-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example max17043-battery-monitor-display
- name: Example max30102-heart-usart
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example max30102-heart-usart
- name: Example mcp7940n-rtc-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example mcp7940n-rtc-display
- name: Example mlx90614-temperature-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example mlx90614-temperature-display
- name: Example mlx90615-temperature-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example mlx90615-temperature-display
- name: Example mma8452-accel-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example mma8452-accel-display
- name: Example opt3001-als-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example opt3001-als-display
- name: Example pca9685-pwm-rgb-led-servos
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example pca9685-pwm-rgb-led-servos
- name: Example tcs34725-color-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example tcs34725-color-display
- name: Example si4703-fm-radio-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example si4703-fm-radio-display
- name: Example si4703-fm-radio
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example si4703-fm-radio
- name: Example tmp006-ir-temp-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example tmp006-ir-temp-display
- name: Example tmp102-temp-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example tmp102-temp-display
- name: Example veml6030-als-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example veml6030-als-display
- name: Example veml6075-uv-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example veml6075-uv-display
- name: Example iaq-core-c-gas-voc-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example iaq-core-c-gas-voc-display
##### misc-i2c-driver-examples #####
- name: Example ens160-co2-voc-iaq-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ens160-co2-voc-iaq-display
- name: Example ads_ina_ssd
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ads_ina_ssd
- name: Example htu2xd-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example htu2xd-display
- name: Example aht10-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example aht10-display
- name: Example aht20-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example aht20-display
- name: Example ina219-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ina219-display
# - name: Example vl53lox-display
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example vl53lox-display
#
- name: Example hdc1080-display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example hdc1080-display
# - name: Example mlx9064x
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example mlx9064x
#
# - name: Example xca9548a
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example xca9548a
##### sx127x examples #####
# - name: sx127x lora_spi_send
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example lora_spi_send
# - name: sx127x lora_spi_receive
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example lora_spi_receive
# - name: sx127x lora_spi_gps
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example lora_spi_gps
##### rtic examples #####
- name: Example gps_rw_rtic
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example gps_rw_rtic
- name: Example iaq-core-c-gas-voc-usart-logger
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example iaq-core-c-gas-voc-usart-logger
- name: Example ccs811-gas-voc-usart-logger
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ccs811-gas-voc-usart-logger
- name: Example schedule
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example schedule
# This fails on stm32f3xx until USART_EXTI interrupt naming is resolved. Or alternatly it can be
# made to work on stm32f3xx and fail on all others.
# See https://github.com/stm32-rs/stm32f3xx-hal/issues/290
# - name: Example resource-user-struct
# #if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example resource-user-struct
- name: Example blink_rtic
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example blink_rtic
- name: Example dht_rtic
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example dht_rtic
- name: Example ccs811-co2-voc
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ccs811-co2-voc
- name: Example ina219_rtic
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ina219_rtic
# use-cross: true
- name: Example display_stuff_rtic0
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example display_stuff_rtic0
# use-cross: true
# - name: Example adc_dma
# run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example adc_dma
##### project examples #####
- name: Example iaq_ens160aht21_display
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example iaq_ens160aht21_display
- name: Example temperature-display_4jst
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example temperature-display_4jst
#################################################################################################
#################################################################################################
##### run examples here that are broken on some boards (last because job stops on failure) #####
# these require solving eh-1 Read/Write issue on stm32f4xx
- name: Example echo_by_char
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example echo_by_char
- name: Example gps_rw
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example gps_rw
- name: Example oled_gps
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example oled_gps
# this requires 3 USARTs and fails using stm32f042 which has only 2
- name: Example serial_char
if: ${{ matrix.mcu != 'stm32f042' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example serial_char
##### examples that should be working, but not yet working with embedded-hal 1.0
- name: Example aht10_rtic
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example aht10_rtic
- name: Example aht20-display-nodelay
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example aht20-display-nodelay
- name: Example htu2xd_rtic
#if: ${{ matrix.trg != 'thumbv6m-none-eabi' }}
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example htu2xd_rtic
- name: Example display_stuff_rtic
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example display_stuff_rtic
# use-cross: true
- name: Example battery_monitor_ads1015_rtic
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example battery_monitor_ads1015_rtic
# use-cross: true
- name: Example temp-humidity-display with sensor aht10
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }},aht10 --example temp-humidity-display
- name: Example temp-humidity-display with sensor aht20
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }},aht20 --example temp-humidity-display
- name: Example temp-humidity-display with sensor hdc1080
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }},hdc1080 --example temp-humidity-display
- name: Example temp-humidity-display with sensor htu2xd
run: cargo build --manifest-path ${{ matrix.stg }}/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }},htu2xd --example temp-humidity-display
#################################################################################################
#################################################################################################
#################################################################################################
#################################################################################################
MiscExamples:
name: ExM
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [blink, blink3, blink_impl, echo_by_char, gps_rw, serial_char,
dht, digi_pot, ds18b20, oled_gps, oled_dht, oled_temperature,
one_wire_bus_find_devices, temperature, text_i2c, therm10k_display,
battery_monitor_ads1015, ]
# temp-humidity-display is tested in CI blocks for MCUs but not in this eg matrix
# because the feature indicating the sensor needs to be set.
# mlx9064x, aht20-display-nodelay, #ad9833-midi-player,
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################
DriverExamples:
name: ExD
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [ccs811-gas-voc-display, ccs811-gas-voc-hdc2080-display, bmi160-imu-display,
ds1307-rtc, hdc2080-temp-humidity-display, iaq-core-c-gas-voc-display,
isl29125-color-display, max17043-battery-monitor-display, max30102-heart-usart,
mcp7940n-rtc-display, mlx90614-temperature-display, mlx90615-temperature-display,
mma8452-accel-display, opt3001-als-display, pca9685-pwm-rgb-led-servos,
si4703-fm-radio-display, si4703-fm-radio, tcs34725-color-display,
tmp006-ir-temp-display, tmp102-temp-display,
veml6030-als-display, veml6070-uv-display, veml6075-uv-display,
iaq-core-c-gas-voc-usart-logger, ccs811-gas-voc-usart-logger, ccs811-co2-voc,
]
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################
LoraExamples:
name: ExL
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [lora_spi_send, lora_spi_receive, lora_spi_gps,
]
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################
MiscI2CExamples:
name: ExI
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [ads_ina_ssd,
aht10-display, aht20-display,
ds18b20, hdc1080-display,
htu2xd-display,
vl53lox-display, ens160-co2-voc-iaq-display,
ina219-display,
xca9548a, one_wire_bus_find_devices, onewire,
iaq_ens160aht21_display
]
# temp-humidity-display is tested in CI blocks for MCUs but not in this eg matrix
# because the feature indicating the sensor needs to be set.
# mlx9064x, aht20-display-nodelay, #ad9833-midi-player,
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################
RticExamples:
name: ExR
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [blink_rtic, schedule, resource-user-struct,
dht_rtic, battery_monitor_ads1015_rtic,
display_stuff_rtic0, display_stuff_rtic, ads_ina_ssd_rtic,
aht10_rtic, htu2xd_rtic, ina219_rtic, gps_rw_rtic,
]
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################
ProjExamples:
name: ExP
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
eg: [iaq_ens160aht21_display, temperature-display_4jst,
]
brd: [bluepill, blackpill-stm32f401, weact-stm32g474, devEBox-stm32h750]
#brd: [discovery-stm32f303] # matrix expansion cannot exced 256
#NB sections in brd above must be one-to-one with brd: below or matrix is messed up
include:
- brd: "bluepill"
mcu: stm32f103
hal: "stm32f1xx"
trg: "thumbv7m-none-eabi"
- brd: "blackpill-stm32f401"
mcu: stm32f401
hal: "stm32f4xx"
trg: "thumbv7em-none-eabihf"
# - brd: "discovery-stm32f303"
# mcu: stm32f303xc
# hal: "stm32f3xx"
# trg: "thumbv7em-none-eabihf"
- brd: "weact-stm32g474"
mcu: stm32g474xE
hal: "stm32g4xx"
trg: "thumbv7em-none-eabihf"
- brd: "devEBox-stm32h750"
mcu: stm32h750
hal: "stm32h7xx"
trg: "thumbv7em-none-eabihf"
steps:
- uses: actions/checkout@v3
#previously uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@nightly
with:
#profile: minimal
toolchain: nightly
target: ${{ matrix.trg }}
- name: Configure caching
uses: actions/cache@v3
with:
key: ${{ matrix.brd }}
path: |
${{ env.HOME }}/.cargo
target
- name: tree
#--manifest-path to find Caro.toml.
run: cargo tree --manifest-path dev-testing/Cargo.toml
- name: Build
run: cargo build --manifest-path dev-testing/Cargo.toml --no-default-features --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }}
- name: Build example
run: cargo build --manifest-path dev-testing/Cargo.toml --release --target ${{ matrix.trg }} --features ${{ matrix.hal }},${{ matrix.mcu }} --example ${{ matrix.eg }}
#################################################################################################
#################################################################################################