aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/compile-platform-examples.yml
diff options
context:
space:
mode:
authorper1234 <accounts@perglass.com>2021-05-26 04:38:16 -0700
committerper1234 <accounts@perglass.com>2021-05-26 05:37:58 -0700
commit05b7d7a9e9e89599f9b4c4762d55a7f5f4161ed4 (patch)
treed95a8a0042285bcc948d442d3d0541599312a0e5 /.github/workflows/compile-platform-examples.yml
parentd990c93ef892f626d990d12215ea5294e942e6f6 (diff)
Add "smoke test" examples compilation CI workflow
On every push or pull request that affects platform source code or bundled libraries, compile example sketches of all bundled libraries for the platform's boards.
Diffstat (limited to '.github/workflows/compile-platform-examples.yml')
-rw-r--r--.github/workflows/compile-platform-examples.yml195
1 files changed, 195 insertions, 0 deletions
diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml
new file mode 100644
index 0000000..3701bd0
--- /dev/null
+++ b/.github/workflows/compile-platform-examples.yml
@@ -0,0 +1,195 @@
+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
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ board:
+ - fqbn: arduino:avr:yun
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:uno
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:diecimila:cpu=atmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:diecimila:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:nano:cpu=atmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:nano:cpu=atmega328old
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:nano:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:mega:cpu=atmega2560
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:mega:cpu=atmega1280
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:megaADK
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:leonardo
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:leonardoeth
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:micro
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:esplora
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:mini:cpu=atmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:mini:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:ethernet
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:fio
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:bt:cpu=atmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:bt:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:LilyPadUSB
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:lilypad:cpu=atmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:lilypad:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:pro:cpu=16MHzatmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:pro:cpu=8MHzatmega328
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:pro:cpu=16MHzatmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:pro:cpu=8MHzatmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:atmegang:cpu=atmega168
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:atmegang:cpu=atmega8
+ serial: true
+ softwareserial: false
+ - fqbn: arduino:avr:robotControl
+ serial: true
+ softwareserial: false
+ - fqbn: arduino:avr:robotMotor
+ serial: true
+ softwareserial: false
+ - fqbn: arduino:avr:gemma
+ serial: false
+ softwareserial: false
+ - fqbn: arduino:avr:circuitplay32u4cat
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:yunmini
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:chiwawa
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:one
+ serial: true
+ softwareserial: true
+ - fqbn: arduino:avr:unowifi
+ 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@v2
+
+ - 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: |
+ - libraries
+ # 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 }}