From 889b36d7b5af25a3b495af83c059ce735d41be35 Mon Sep 17 00:00:00 2001 From: per1234 Date: Wed, 15 Apr 2020 03:07:52 -0700 Subject: [PATCH] Port CI configuration from Travis CI to GitHub Actions --- .github/workflows/compile-examples.yml | 50 ++++++++++ .github/workflows/spell-check.yml | 16 ++++ .travis.yml | 126 ------------------------- 3 files changed, 66 insertions(+), 126 deletions(-) create mode 100644 .github/workflows/compile-examples.yml create mode 100644 .github/workflows/spell-check.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml new file mode 100644 index 000000000..c3f9903cb --- /dev/null +++ b/.github/workflows/compile-examples.yml @@ -0,0 +1,50 @@ +name: Compile Examples + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + env: + # libraries to install + UNIVERSAL_LIBRARIES: '"ArduinoCloudThing" "Arduino_ConnectionHandler" "Arduino_DebugUtils" "ArduinoMqttClient"' + # board-specific libraries + WIFI_LIBRARIES: '"ArduinoBearSSL" "ArduinoECCX08" "RTCZero" "WiFi101" "WiFiNINA"' + WAN_LIBRARIES: '"ArduinoBearSSL" "ArduinoECCX08" "RTCZero" "MKRWAN"' + GSM_LIBRARIES: '"ArduinoBearSSL" "ArduinoECCX08" "RTCZero" "MKRGSM"' + NB_LIBRARIES: '"ArduinoBearSSL" "ArduinoECCX08" "RTCZero" "MKRNB"' + ESP8266_LIBRARIES: '' + # sketch paths to compile (recursive) + UNIVERSAL_SKETCH_PATHS: '"examples/ArduinoIoTCloud-Advanced" "examples/ArduinoIoTCloud-Basic" "examples/utility/ArduinoIoTCloud_Travis_CI"' + # board-specific sketches + WIFI_SKETCH_PATHS: '"examples/utility/Provisioning" "examples/utility/WiFi_Cloud_Blink"' + WAN_SKETCH_PATHS: '' + GSM_SKETCH_PATHS: '"examples/utility/Provisioning" "examples/utility/GSM_Cloud_Blink"' + NB_SKETCH_PATHS: '"examples/utility/Provisioning" "examples/utility/NB_Cloud_Blink"' + ESP8266_SKETCH_PATHS: '"examples/utility/WiFi_Cloud_Blink_with_security_credentials"' + + strategy: + fail-fast: false + + matrix: + board: [ + {"fqbn": "arduino:samd:mkr1000", "type": "WIFI"}, + {"fqbn": "arduino:samd:mkrwifi1010", "type": "WIFI"}, + {"fqbn": "arduino:samd:nano_33_iot", "type": "WIFI"}, + {"fqbn": "arduino:samd:mkrwan1300", "type": "WAN"}, + {"fqbn": "arduino:samd:mkrgsm1400", "type": "GSM"}, + {"fqbn": "arduino:samd:mkrnb1500", "type": "NB"}, + {"fqbn": '"esp8266:esp8266:huzzah" "https://arduino.esp8266.com/stable/package_esp8266com_index.json"', "type": "ESP8266"} + ] + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Compile examples + uses: arduino/actions/libraries/compile-examples@master + with: + fqbn: ${{ matrix.board.fqbn }} + libraries: "${{ env.UNIVERSAL_LIBRARIES }} ${{ env[format('{0}{1}', matrix.board.type, '_LIBRARIES')] }}" + sketch-paths: "${{ env.UNIVERSAL_SKETCH_PATHS }} ${{ env[format('{0}{1}', matrix.board.type, '_SKETCH_PATHS')] }}" diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml new file mode 100644 index 000000000..b392da757 --- /dev/null +++ b/.github/workflows/spell-check.yml @@ -0,0 +1,16 @@ +name: Spell Check + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Spell check + uses: arduino/actions/libraries/spell-check@master + with: + ignore-words-list: extras/codespell-ignore-words-list.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 78d9fcd58..000000000 --- a/.travis.yml +++ /dev/null @@ -1,126 +0,0 @@ -language: generic -matrix: - include: - - env: - - BOARD="arduino:samd:mkr1000" - - env: - - BOARD="arduino:samd:mkrwifi1010" - - env: - - BOARD="arduino:samd:nano_33_iot" - - env: - - BOARD="arduino:samd:mkrgsm1400" - - env: - - BOARD="arduino:samd:mkrwan1300" - - env: - - BOARD="arduino:samd:mkrnb1500" - - env: - - BOARD="esp8266:esp8266:huzzah" - - env: - - NAME=Spell Check - language: python - python: 3.6 - # must define an empty before_install phase, otherwise the default one is used - before_install: true - install: - # https://github.com/codespell-project/codespell - - pip install codespell - script: - - codespell --skip="${TRAVIS_BUILD_DIR}/.git" --ignore-words="${TRAVIS_BUILD_DIR}/extras/codespell-ignore-words-list.txt" "${TRAVIS_BUILD_DIR}" -# default phases -before_install: - - mkdir -p "$HOME/bin" - - curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR="$HOME/bin" sh - - export PATH="$PATH:$HOME/bin" - - arduino-cli core update-index --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json; - - if [[ "$BOARD" =~ "arduino:samd:" ]]; then - arduino-cli core install arduino:samd; - fi - - if [[ "$BOARD" =~ "esp8266:esp8266" ]]; then - arduino-cli core install esp8266:esp8266 --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json; - fi - - | - installLibrary() { - local -r repositoryFullName="$1" - local -r repositoryName="${repositoryFullName##*/}" - # clone repository to the libraries folder of the sketchbook - git clone https://github.com/${repositoryFullName} "${HOME}/Arduino/libraries/${repositoryName}" - cd "${HOME}/Arduino/libraries/${repositoryName}" - # get new tags from the remote - git fetch --tags - # checkout the latest tag - git checkout $(git describe --tags `git rev-list --tags --max-count=1`) - cd "${TRAVIS_BUILD_DIR}" - } - - installLibrary arduino-libraries/ArduinoCloudThing - - installLibrary arduino-libraries/ArduinoECCX08 - - installLibrary arduino-libraries/ArduinoBearSSL - - installLibrary arduino-libraries/ArduinoMqttClient - - installLibrary arduino-libraries/MKRGSM - - installLibrary arduino-libraries/MKRWAN - - installLibrary arduino-libraries/MKRNB - - installLibrary arduino-libraries/RTCZero - - installLibrary arduino-libraries/WiFi101 - - installLibrary arduino-libraries/WiFiNINA - - installLibrary arduino-libraries/Ethernet - - installLibrary arduino-libraries/Arduino_ConnectionHandler - - installLibrary arduino-libraries/Arduino_DebugUtils - - | - buildSketch() { - local exitStatus=0 - local example - for example in "$@"; do - arduino-cli compile --warnings all --fqbn "$BOARD" "${TRAVIS_BUILD_DIR}/examples/${example}" || { - exitStatus=$? - } - done - return $exitStatus - } -install: - - mkdir -p $HOME/Arduino/libraries - - ln -s $PWD $HOME/Arduino/libraries/. -script: - # Sketches to build for all boards - - | - if [ "$BOARD" == "arduino:samd:mkr1000" ] || \ - [ "$BOARD" == "arduino:samd:mkrwifi1010" ] || \ - [ "$BOARD" == "esp8266:esp8266:huzzah" ] || \ - [ "$BOARD" == "arduino:samd:nano_33_iot"] || \ - [ "$BOARD" == "arduino:samd:mkrgsm1400" ] || \ - [ "$BOARD" == "arduino:samd:mkrnb1500" ] || \ - [ "$BOARD" == "arduino:samd:mkrwan1300" ]; then - buildSketch \ - "ArduinoIoTCloud-Advanced" \ - "ArduinoIoTCloud-Basic" \ - "utility/ArduinoIoTCloud_Travis_CI" - fi - # Sketches to build for selected boards - - | - if [ "$BOARD" == "arduino:samd:mkr1000" ] || [ "$BOARD" == "arduino:samd:mkrwifi1010" ] || [ "$BOARD" == "arduino:samd:nano_33_iot"]; then - buildSketch \ - "utility/Provisioning" \ - "utility/WiFi_Cloud_Blink" - fi - - | - if [ "$BOARD" == "arduino:samd:mkrgsm1400" ]; then - buildSketch \ - "utility/Provisioning" \ - "utility/GSM_Cloud_Blink" - fi - - | - if [ "$BOARD" == "arduino:samd:mkrnb1500" ]; then - buildSketch \ - "utility/Provisioning" \ - "utility/NB_Cloud_Blink" - fi - - | - if [ "$BOARD" == "esp8266:esp8266:huzzah" ]; then - buildSketch \ - "utility/WiFi_Cloud_Blink_with_security_credentials" - fi -notifications: - webhooks: - urls: - - https://www.travisbuddy.com/ - on_success: never - on_failure: always -