diff --git a/.github/workflows/arduino-checks.yml b/.github/workflows/arduino-checks.yml index f2f2096..dd9c764 100644 --- a/.github/workflows/arduino-checks.yml +++ b/.github/workflows/arduino-checks.yml @@ -4,7 +4,7 @@ name: Arduino Library Checks # Controls when the action will run. on: - # Triggers the workflow on push or pull request events but only for the develop branch + # Triggers the workflow on push or pull request events but only for the develop and master branches push: branches: [develop,master] pull_request: @@ -54,7 +54,7 @@ jobs: verbose: true fqbn: arduino:avr:uno sketch-paths: | - - 'examples/RDMSerialRecv' + - examples/ compile-leonardo: needs: compile-uno @@ -71,7 +71,7 @@ jobs: verbose: true fqbn: arduino:avr:leonardo sketch-paths: | - - 'examples/RDMSerialRecv' + - examples/ compile-mega: needs: compile-uno @@ -88,4 +88,21 @@ jobs: verbose: true fqbn: arduino:avr:mega sketch-paths: | - - 'examples/RDMSerialRecv' + - examples/ + + compile-nano: + needs: compile-uno + name: compile examples for nano + runs-on: ubuntu-latest + continue-on-error: true + + steps: + - uses: actions/checkout@v2 + + - name: Compile for nano + uses: arduino/compile-sketches@v1 + with: + verbose: true + fqbn: arduino:avr:nano + sketch-paths: | + - examples/ diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml new file mode 100644 index 0000000..a882c26 --- /dev/null +++ b/.github/workflows/compile-examples.yml @@ -0,0 +1,93 @@ +name: Compile Examples + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + paths: + - ".github/workflows/compile-examples.yml" + - "examples/**" + - "src/**" + pull_request: + paths: + - ".github/workflows/compile-examples.yml" + - "examples/**" + - "src/**" + schedule: + # Run every Tuesday at 8 AM UTC to catch breakage caused by changes to external resources (libraries, platforms). + - cron: "0 8 * * TUE" + 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:nano + platforms: | + - name: arduino:avr + - fqbn: arduino:avr:mega + platforms: | + - name: arduino:avr + - fqbn: arduino:avr:leonardo + platforms: | + - name: arduino:avr + # No serial port/incorrect serial config + #- fqbn: arduino:megaavr:nona4809 + # platforms: | + # - name: arduino:megaavr + # No EEPROM library in all the below + #- fqbn: arduino:sam:arduino_due_x_dbg + # platforms: | + # - name: arduino:sam + #- fqbn: arduino:samd:mkrzero + # platforms: | + # - name: arduino:samd + #- fqbn: arduino:mbed_portenta:envie_m4 + # platforms: | + # - name: arduino:mbed_portenta + #- fqbn: arduino:mbed_portenta:envie_m7 + # platforms: | + # - name: arduino:mbed_portenta + #- fqbn: arduino:mbed_nano:nano33ble + # platforms: | + # - name: arduino:mbed_nano + #- fqbn: arduino:mbed_nano:nanorp2040connect + # platforms: | + # - name: arduino:mbed_nano + + 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: ${{ matrix.board.platforms }} + libraries: | + # Install the library from the local path. + - source-path: ./ + # Additional library dependencies can be listed here. + # See: https://github.com/arduino/compile-sketches#libraries + sketch-paths: | + - examples/RDMSerialRecv/RDMSerialRecv.ino + - examples/RDMIntoDMXOut.ino + enable-deltas-report: true + sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} + + - name: Save sketches report as workflow artifact + uses: actions/upload-artifact@v2 + with: + if-no-files-found: error + path: ${{ env.SKETCHES_REPORTS_PATH }} + name: ${{ env.SKETCHES_REPORTS_PATH }} diff --git a/.github/workflows/report-size-deltas.yml b/.github/workflows/report-size-deltas.yml new file mode 100644 index 0000000..652be5d --- /dev/null +++ b/.github/workflows/report-size-deltas.yml @@ -0,0 +1,24 @@ +name: Report Size Deltas + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + paths: + - ".github/workflows/report-size-deltas.yml" + schedule: + # Run at the minimum interval allowed by GitHub Actions. + # Note: GitHub Actions periodically has outages which result in workflow failures. + # In this event, the workflows will start passing again once the service recovers. + - cron: "*/5 * * * *" + workflow_dispatch: + repository_dispatch: + +jobs: + report: + runs-on: ubuntu-latest + steps: + - name: Comment size deltas reports to PRs + uses: arduino/report-size-deltas@v1 + with: + # The name of the workflow artifact created by the sketch compilation workflow + sketches-reports-source: sketches-reports