aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-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 }}