aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorMartino Facchin <m.facchin@arduino.cc>2021-05-26 15:50:02 +0200
committerGitHub <noreply@github.com>2021-05-26 15:50:02 +0200
commit24e6edd475c287cdafee0a4db2eb98927ce3cf58 (patch)
treeb3251605dc629e3bbc8ab899b4f4ffe66b1e1e98 /.github
parent1ac42f7ac0c365cfa4d901889ff6d4c23d3b4796 (diff)
parent20dc2e532e5cecd17a7f463cf86541d87e5090e8 (diff)
Merge pull request #413 from per1234/ci
Use GitHub Actions for continuous integration
Diffstat (limited to '.github')
-rw-r--r--.github/dependabot.yml10
-rw-r--r--.github/workflows/check-arduino.yml27
-rw-r--r--.github/workflows/compile-platform-examples.yml206
-rw-r--r--.github/workflows/report-size-deltas.yml24
-rw-r--r--.github/workflows/spell-check.yml22
5 files changed, 289 insertions, 0 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..03600dd
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,10 @@
+# See: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#about-the-dependabotyml-file
+version: 2
+
+updates:
+ # Configure check for outdated GitHub Actions actions in workflows.
+ # See: https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot
+ - package-ecosystem: github-actions
+ directory: / # Check the repository's workflows under /.github/workflows/
+ schedule:
+ interval: daily
diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml
new file mode 100644
index 0000000..cfffb75
--- /dev/null
+++ b/.github/workflows/check-arduino.yml
@@ -0,0 +1,27 @@
+name: Check Arduino
+
+# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
+on:
+ push:
+ pull_request:
+ schedule:
+ # Run every Tuesday at 8 AM UTC to catch breakage caused by new rules added to Arduino Lint.
+ - cron: "0 8 * * TUE"
+ workflow_dispatch:
+ repository_dispatch:
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Arduino Lint
+ uses: arduino/arduino-lint-action@v1
+ with:
+ compliance: specification
+ # Always use this setting for official repositories. Remove for 3rd party projects.
+ official: true
+ project-type: platform
diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml
new file mode 100644
index 0000000..8e8f5b5
--- /dev/null
+++ b/.github/workflows/compile-platform-examples.yml
@@ -0,0 +1,206 @@
+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
+
+ env:
+ SKETCHES_REPORTS_PATH: sketches-reports
+
+ 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: |
+ # 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 }}
+ 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
diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml
new file mode 100644
index 0000000..01bee87
--- /dev/null
+++ b/.github/workflows/spell-check.yml
@@ -0,0 +1,22 @@
+name: Spell Check
+
+# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
+on:
+ push:
+ pull_request:
+ schedule:
+ # Run every Tuesday at 8 AM UTC to catch new misspelling detections resulting from dictionary updates.
+ - cron: "0 8 * * TUE"
+ workflow_dispatch:
+ repository_dispatch:
+
+jobs:
+ spellcheck:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Spell check
+ uses: codespell-project/actions-codespell@master