diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml index 0a67737..3e2e142 100644 --- a/.github/workflows/compile-examples.yml +++ b/.github/workflows/compile-examples.yml @@ -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: @@ -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" @@ -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" @@ -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: @@ -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 @@ -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 }}