Merge pull request #548 from arduino/dependabot/github_actions/action… #174
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: Compile Examples | |
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows | |
on: | |
push: | |
paths: | |
- ".github/workflows/compile-platform-examples.ya?ml" | |
- "cores/**" | |
- "libraries/**" | |
- "variants/**" | |
- "boards.txt" | |
- "platform.txt" | |
pull_request: | |
paths: | |
- ".github/workflows/compile-platform-examples.ya?ml" | |
- "cores/**" | |
- "libraries/**" | |
- "variants/**" | |
- "boards.txt" | |
- "platform.txt" | |
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:yun | |
artifact-name-suffix: arduino-avr-yun | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:uno | |
artifact-name-suffix: arduino-avr-uno | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:diecimila:cpu=atmega328 | |
artifact-name-suffix: arduino-avr-diecimila-cpu-atmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:diecimila:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-diecimila-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:nano:cpu=atmega328 | |
artifact-name-suffix: arduino-avr-nano-cpu-atmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:nano:cpu=atmega328old | |
artifact-name-suffix: arduino-avr-nano-cpu-atmega328old | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:nano:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-nano-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:mega:cpu=atmega2560 | |
artifact-name-suffix: arduino-avr-mega-cpu-atmega2560 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:mega:cpu=atmega1280 | |
artifact-name-suffix: arduino-avr-mega-cpu-atmega1280 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:megaADK | |
artifact-name-suffix: arduino-avr-megaADK | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:leonardo | |
artifact-name-suffix: arduino-avr-leonardo | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:leonardoeth | |
artifact-name-suffix: arduino-avr-leonardoeth | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:micro | |
artifact-name-suffix: arduino-avr-micro | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:esplora | |
artifact-name-suffix: arduino-avr-esplora | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:mini:cpu=atmega328 | |
artifact-name-suffix: arduino-avr-mini-cpu-atmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:mini:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-mini-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:ethernet | |
artifact-name-suffix: arduino-avr-ethernet | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:fio | |
artifact-name-suffix: arduino-avr-fio | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:bt:cpu=atmega328 | |
artifact-name-suffix: arduino-avr-bt-cpu-atmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:bt:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-bt-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:LilyPadUSB | |
artifact-name-suffix: arduino-avr-LilyPadUSB | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:lilypad:cpu=atmega328 | |
artifact-name-suffix: arduino-avr-lilypad-cpu-atmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:lilypad:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-lilypad-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:pro:cpu=16MHzatmega328 | |
artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:pro:cpu=8MHzatmega328 | |
artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega328 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:pro:cpu=16MHzatmega168 | |
artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:pro:cpu=8MHzatmega168 | |
artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:atmegang:cpu=atmega168 | |
artifact-name-suffix: arduino-avr-atmegang-cpu-atmega168 | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:atmegang:cpu=atmega8 | |
artifact-name-suffix: arduino-avr-atmegang-cpu-atmega8 | |
serial: true | |
softwareserial: false | |
- fqbn: arduino:avr:robotControl | |
artifact-name-suffix: arduino-avr-robotControl | |
serial: true | |
softwareserial: false | |
- fqbn: arduino:avr:robotMotor | |
artifact-name-suffix: arduino-avr-robotMotor | |
serial: true | |
softwareserial: false | |
- fqbn: arduino:avr:gemma | |
artifact-name-suffix: arduino-avr-gemma | |
serial: false | |
softwareserial: false | |
- fqbn: arduino:avr:circuitplay32u4cat | |
artifact-name-suffix: arduino-avr-circuitplay32u4cat | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:yunmini | |
artifact-name-suffix: arduino-avr-yunmini | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:chiwawa | |
artifact-name-suffix: arduino-avr-chiwawa | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:one | |
artifact-name-suffix: arduino-avr-one | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:unowifi | |
artifact-name-suffix: arduino-avr-unowifi | |
serial: true | |
softwareserial: true | |
- fqbn: arduino:avr:unomini | |
artifact-name-suffix: arduino-avr-unomini | |
serial: true | |
softwareserial: true | |
# Make board type-specific customizations to the matrix jobs | |
include: | |
- board: | |
# Boards with Serial interface | |
serial: true | |
# Compile these sketches in addition to the ones compiled for all boards | |
serial-sketch-paths: | | |
- libraries/EEPROM/examples/eeprom_crc | |
- libraries/EEPROM/examples/eeprom_get | |
- libraries/EEPROM/examples/eeprom_put | |
- libraries/EEPROM/examples/eeprom_read | |
- libraries/SPI | |
- libraries/Wire | |
- board: | |
serial: false | |
serial-sketch-paths: "" | |
- board: | |
# Boards compatible with the SoftwareSerial library | |
softwareserial: true | |
softwareserial-sketch-paths: | | |
- libraries/SoftwareSerial | |
- board: | |
softwareserial: false | |
softwareserial-sketch-paths: "" | |
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: | | |
# Use Boards Manager to install the latest release of the platform to get the toolchain. | |
- name: arduino:avr | |
# Overwrite the Boards Manager installation with the platform from the repository. | |
- source-path: ./ | |
name: arduino:avr | |
sketch-paths: | | |
# Compile these sketches for all boards | |
- libraries/EEPROM/examples/eeprom_clear | |
- libraries/EEPROM/examples/eeprom_iteration | |
- libraries/EEPROM/examples/eeprom_update | |
- libraries/EEPROM/examples/eeprom_write | |
# Board-specific sketches | |
${{ matrix.serial-sketch-paths }} | |
${{ matrix.softwareserial-sketch-paths }} | |
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 }} |