diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/check-arduino.yml | 27 | ||||
-rw-r--r-- | .github/workflows/ci.yml | 65 | ||||
-rw-r--r-- | .github/workflows/compile-platform-examples.yml | 209 | ||||
-rw-r--r-- | .github/workflows/report-size-deltas.yml | 24 | ||||
-rw-r--r-- | .github/workflows/spell-check.yml | 22 |
5 files changed, 65 insertions, 282 deletions
diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml deleted file mode 100644 index cfffb75..0000000 --- a/.github/workflows/check-arduino.yml +++ /dev/null @@ -1,27 +0,0 @@ -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/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9707eca --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: build + +on: [push, pull_request, workflow_dispatch] + +env: + IDE_VERSION: 1.8.19 + IDE_LOCATION: /usr/local/share/arduino + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + compilation: ['Blank Sketch', 'USB API Demo', 'XInput Library'] + include: + - compilation: 'Blank Sketch' + sketch: "$IDE_LOCATION/examples/01.Basics/BareMinimum/BareMinimum.ino" + - compilation: 'USB API Demo' + sketch: "$IDE_LOCATION/libraries/ArduinoXInput/extras/API-Demo/API-Demo.ino" + - compilation: 'XInput Library' + sketch: "$IDE_LOCATION/libraries/ArduinoXInput/examples/GamepadPins/GamepadPins.ino" + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Arduino IDE + run: | + wget http://downloads.arduino.cc/arduino-$IDE_VERSION-linux64.tar.xz + tar xf arduino-$IDE_VERSION-linux64.tar.xz + sudo mv arduino-$IDE_VERSION /usr/local/share/arduino + sudo ln -s /usr/local/share/arduino/arduino /usr/local/bin/arduino + rm arduino-$IDE_VERSION-linux64.tar.xz + + - name: Move XInput AVR Boards Files + run: | + mkdir $IDE_LOCATION/hardware/xinput + ln -s $PWD $IDE_LOCATION/hardware/xinput/avr + + - name: Install XInput Library + if: contains(matrix.sketch, 'ArduinoXInput') + run: | + git clone https://github.com/dmadison/ArduinoXInput.git; + sudo mv ArduinoXInput $IDE_LOCATION/libraries; + + - name: Build All Boards + run: | + buildSketch() { + echo -e "\nBuilding sketch ${{ matrix.sketch }} for $BOARD"; + arduino --verify --board $BOARD ${{ matrix.sketch }}; + } + + BOARD=xinput:avr:yun; buildSketch; + BOARD=xinput:avr:leonardo; buildSketch; + BOARD=xinput:avr:leonardoeth; buildSketch; + BOARD=xinput:avr:micro; buildSketch; + BOARD=xinput:avr:esplora; buildSketch; + BOARD=xinput:avr:LilyPadUSB; buildSketch + BOARD=xinput:avr:robotControl; buildSketch; + BOARD=xinput:avr:robotMotor; buildSketch; + BOARD=xinput:avr:circuitplay32u4cat; buildSketch; + BOARD=xinput:avr:yunmini; buildSketch; + BOARD=xinput:avr:chiwawa; buildSketch; + BOARD=xinput:avr:one; buildSketch; diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml deleted file mode 100644 index f7226e0..0000000 --- a/.github/workflows/compile-platform-examples.yml +++ /dev/null @@ -1,209 +0,0 @@ -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 - - fqbn: arduino:avr:unomini - 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 deleted file mode 100644 index 652be5d..0000000 --- a/.github/workflows/report-size-deltas.yml +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 01bee87..0000000 --- a/.github/workflows/spell-check.yml +++ /dev/null @@ -1,22 +0,0 @@ -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 |