|
name: Compile Examples |
|
|
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows |
|
on: |
|
push: |
|
paths: |
|
- ".github/workflows/compile-examples.yml" |
|
- "library.properties" |
|
- "examples/**" |
|
- "src/**" |
|
pull_request: |
|
paths: |
|
- ".github/workflows/compile-examples.yml" |
|
- "library.properties" |
|
- "examples/**" |
|
- "src/**" |
|
schedule: |
|
# Run every Tuesday at 8 AM UTC to catch breakage caused by changes to external resources (libraries, platforms). |
|
- cron: "0 8 * * TUE" |
|
workflow_dispatch: |
|
repository_dispatch: |
|
|
|
jobs: |
|
build: |
|
name: ${{ matrix.board.fqbn }} |
|
runs-on: ubuntu-latest |
|
|
|
env: |
|
SKETCHES_REPORTS_PATH: sketches-reports |
|
|
|
strategy: |
|
fail-fast: false |
|
|
|
matrix: |
|
board: |
|
- fqbn: arduino:avr:nano |
|
platforms: | |
|
- name: arduino:avr |
|
artifact-name-suffix: arduino-avr-nano |
|
- fqbn: arduino:avr:mega |
|
platforms: | |
|
- name: arduino:avr |
|
artifact-name-suffix: arduino-avr-mega |
|
- fqbn: arduino:avr:leonardo |
|
platforms: | |
|
- name: arduino:avr |
|
artifact-name-suffix: arduino-avr-leonardo |
|
- fqbn: arduino:avr:yun |
|
platforms: | |
|
- name: arduino:avr |
|
artifact-name-suffix: arduino-avr-yun |
|
- fqbn: arduino:megaavr:uno2018 |
|
platforms: | |
|
- name: arduino:megaavr |
|
artifact-name-suffix: arduino-megaavr-uno2018 |
|
- fqbn: arduino:megaavr:nona4809 |
|
platforms: | |
|
- name: arduino:megaavr |
|
artifact-name-suffix: arduino-megaavr-nona4809 |
|
- fqbn: arduino:sam:arduino_due_x_dbg |
|
platforms: | |
|
- name: arduino:sam |
|
artifact-name-suffix: arduino-sam-arduino_due_x_dbg |
|
- fqbn: arduino:samd:arduino_zero_edbg |
|
platforms: | |
|
- name: arduino:samd |
|
artifact-name-suffix: arduino-samd-arduino_zero_edbg |
|
- fqbn: arduino:samd:mkrzero |
|
platforms: | |
|
- name: arduino:samd |
|
artifact-name-suffix: arduino-samd-mkrzero |
|
- fqbn: arduino:samd:nano_33_iot |
|
platforms: | |
|
- name: arduino:samd |
|
artifact-name-suffix: arduino-samd-nano_33_iot |
|
- fqbn: arduino:mbed_portenta:envie_m7:target_core=cm4 |
|
platforms: | |
|
- name: arduino:mbed_portenta |
|
artifact-name-suffix: arduino-mbed_portenta-envie_m7-target_core-cm4 |
|
- fqbn: arduino:mbed_portenta:envie_m7 |
|
platforms: | |
|
- name: arduino:mbed_portenta |
|
artifact-name-suffix: arduino-mbed_portenta-envie_m7 |
|
- fqbn: arduino:mbed_edge:edge_control |
|
platforms: | |
|
- name: arduino:mbed_edge |
|
artifact-name-suffix: arduino-mbed_edge-edge_control |
|
- fqbn: arduino:mbed_nano:nano33ble |
|
platforms: | |
|
- name: arduino:mbed_nano |
|
artifact-name-suffix: arduino-mbed_nano-nano33ble |
|
- fqbn: arduino:mbed_nano:nanorp2040connect |
|
platforms: | |
|
- name: arduino:mbed_nano |
|
artifact-name-suffix: arduino-mbed_nano-nanorp2040connect |
|
|
|
steps: |
|
- name: Checkout repository |
|
uses: actions/checkout@v4 |
|
|
|
- name: Compile examples |
|
uses: arduino/compile-sketches@v1 |
|
with: |
|
github-token: ${{ secrets.GITHUB_TOKEN }} |
|
fqbn: ${{ matrix.board.fqbn }} |
|
platforms: ${{ matrix.board.platforms }} |
|
libraries: | |
|
# Install the library from the local path. |
|
- source-path: ./ |
|
# Additional library dependencies can be listed here. |
|
# See: https://github.com/arduino/compile-sketches#libraries |
|
sketch-paths: | |
|
- examples |
|
enable-deltas-report: true |
|
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} |
|
|
|
- name: Save sketches report as workflow artifact |
|
uses: actions/upload-artifact@v4 |
|
with: |
|
if-no-files-found: error |
|
path: ${{ env.SKETCHES_REPORTS_PATH }} |
|
name: sketches-report-${{ matrix.board.artifact-name-suffix }} |