Skip to content

Remove compilations that fail due to bugs in external components from "Compile Examples" CI workflow #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 3, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 66 additions & 3 deletions .github/workflows/compile-examples.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# This workflow compiles the example sketches for one of each distinct type of active official Arduino board.
#
# This requires the use of external components (e.g., libraries, boards platform, toolchain), so it is possible for
# compilations to be broken by bugs in the external components, even though the example itself is perfect.
#
# If this happens, the procedure is:
# - Report the bug to the appropriate issue tracker.
# - Adjust this workflow to remove the compilation for the specific board/sketch combination that is failing due to the
# bug.
# - Add a comment to the workflow providing the URL of the issue report.
# - Once the bug is fixed and the fix released, revert the commit that removed the failing compilation.
# - If the issue is closed as "wontfix", add a comment to the affected examples documenting the incompatibility and open
# an issue requesting that the associated tutorials be updated.

name: Compile Examples

on:
Expand Down Expand Up @@ -34,7 +48,11 @@ jobs:
# Sketch paths to compile (recursive) for all boards
UNIVERSAL_SKETCH_PATHS: >-
"examples/01.Basics"
"examples/02.Digital"
"examples/02.Digital/BlinkWithoutDelay"
"examples/02.Digital/Button"
"examples/02.Digital/Debounce"
"examples/02.Digital/DigitalInputPullup"
"examples/02.Digital/StateChangeDetection"
"examples/03.Analog"
"examples/04.Communication/ASCIITable"
"examples/04.Communication/Dimmer"
Expand All @@ -47,7 +65,8 @@ jobs:
"examples/04.Communication/SerialEvent"
"examples/04.Communication/VirtualColorMixer"
"examples/05.Control"
"examples/06.Sensors"
"examples/06.Sensors/ADXL3xx"
"examples/06.Sensors/Knock"
"examples/07.Display"
"examples/08.Strings"
"examples/11.ArduinoISP"
Expand All @@ -62,36 +81,56 @@ jobs:
usb: false
serial1: false
starter-kit: true
tone: true
pulsein: true
# Adding this in addition to the Uno because it has 1.5 kB less available flash
- fqbn: arduino:avr:nano
usb: false
serial1: false
starter-kit: false
tone: true
pulsein: true
- fqbn: arduino:avr:leonardo
usb: true
serial1: true
starter-kit: false
tone: true
pulsein: true
- fqbn: arduino:megaavr:uno2018:mode=off
usb: false
serial1: true
starter-kit: false
tone: true
pulsein: true
- fqbn: arduino:samd:mkrzero
usb: true
serial1: true
starter-kit: false
tone: true
pulsein: true
- fqbn: arduino:mbed:nano33ble
usb: false
serial1: true
starter-kit: false
tone: true
pulsein: true
# Change this to arduino:mbed:envie_m7 once there is a production release of the Arduino Mbed OS Boards platform
- fqbn: arduino-beta:mbed:envie_m7
usb: false
serial1: true
starter-kit: false
tone: true
# Bug report: https://github.com/arduino/ArduinoCore-mbed/issues/48
# Change the value to true once it is fixed.
pulsein: false
- fqbn: arduino:sam:arduino_due_x
usb: true
serial1: true
starter-kit: false
# Bug report: https://github.com/arduino/ArduinoCore-sam/issues/24
# Change the value to true once it is fixed.
tone: false
pulsein: true

# Make board type-specific customizations to the matrix jobs
include:
Expand Down Expand Up @@ -125,6 +164,24 @@ jobs:
- board:
starter-kit: false
starter-kit-sketch-paths: ""
- board:
tone: true
tone-sketch-paths: >-
"examples/02.Digital/toneKeyboard"
"examples/02.Digital/toneMelody"
"examples/02.Digital/toneMultiple"
"examples/02.Digital/tonePitchFollower"
- board:
tone: false
tone-sketch-paths: ""
- board:
pulsein: true
pulsein-sketch-paths: >-
"examples/06.Sensors/Memsic2125"
"examples/06.Sensors/Ping"
- board:
pulsein: false
pulsein-sketch-paths: ""

steps:
- name: Checkout
Expand All @@ -137,6 +194,12 @@ jobs:
libraries: |
${{ env.UNIVERSAL_LIBRARIES }}
${{ matrix.usb-libraries }}
sketch-paths: '${{ env.UNIVERSAL_SKETCH_PATHS }} ${{ matrix.usb-sketch-paths }} ${{ matrix.serial1-sketch-paths }} ${{ matrix.starter-kit-sketch-paths }}'
sketch-paths: >-
${{ env.UNIVERSAL_SKETCH_PATHS }}
${{ matrix.usb-sketch-paths }}
${{ matrix.serial1-sketch-paths }}
${{ matrix.starter-kit-sketch-paths }}
${{ matrix.tone-sketch-paths }}
${{ matrix.pulsein-sketch-paths }}
# This input can be removed once the repository is made public
github-token: ${{ secrets.GITHUB_TOKEN }}