diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml new file mode 100644 index 000000000..408f61282 --- /dev/null +++ b/.github/workflows/compile-examples.yml @@ -0,0 +1,269 @@ +name: Compile Examples + +on: + pull_request: + paths: + - ".github/workflows/compile-examples.yml" + - "cores/**" + - "libraries/**" + - "variants/**" + - "boards.txt" + - "platform.txt" + push: + paths: + - ".github/workflows/compile-examples.yml" + - "cores/**" + - "libraries/**" + - "variants/**" + - "boards.txt" + - "platform.txt" + +jobs: + compile-test: + runs-on: ubuntu-latest + + env: + # sketch paths to compile (recursive) for all boards + UNIVERSAL_SKETCH_PATHS: | + - extras/examples + - libraries/Wire + - libraries/USBHost + - libraries/SPI + - libraries/SFU/examples/SFU_LoadBinary + - libraries/SAMD_AnalogCorrection + - ~/Arduino/libraries/Servo/examples + - ~/Arduino/libraries/LiquidCrystal/examples + - ~/Arduino/libraries/Ethernet/examples + - ~/Arduino/libraries/SD/examples + - ~/Arduino/libraries/WiFi/examples + - ~/Arduino/libraries/Arduino_LSM9DS1/examples + - ~/Arduino/libraries/Arduino_JSON/examples + - ~/Arduino/libraries/MFRC522/examples/ChangeUID + - ~/Arduino/libraries/MFRC522/examples/DumpInfo + - ~/Arduino/libraries/MFRC522/examples/FixBrickedUID + - ~/Arduino/libraries/MFRC522/examples/MifareClassicValueBlock + - ~/Arduino/libraries/MFRC522/examples/MinimalInterrupt + - ~/Arduino/libraries/MFRC522/examples/Ntag216_AUTH + - ~/Arduino/libraries/MFRC522/examples/RFID-Cloner + - ~/Arduino/libraries/MFRC522/examples/ReadAndWrite + - ~/Arduino/libraries/MFRC522/examples/ReadNUID + - ~/Arduino/libraries/MFRC522/examples/ReadUidMultiReader + - ~/Arduino/libraries/MFRC522/examples/firmware_check + - ~/Arduino/libraries/MFRC522/examples/rfid_default_keys + - ~/Arduino/libraries/MFRC522/examples/rfid_read_personal_data + - ~/Arduino/libraries/MFRC522/examples/rfid_write_personal_data + - ~/Arduino/libraries/WiFi101/examples + + strategy: + fail-fast: false + + matrix: + board: [ + {"fqbn": "arduino:samd:arduino_zero_edbg", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:arduino_zero_native", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:mkr1000", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrzero", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrwifi1010", "type": "mkrWiFi1010", "WAN": "false"}, + {"fqbn": "arduino:samd:nano_33_iot", "type": "nano33IoT", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrfox1200", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrwan1300", "type": "usb", "WAN": "true"}, + {"fqbn": "arduino:samd:mkrwan1310", "type": "mkrwan1310", "WAN": "true"}, + {"fqbn": "arduino:samd:mkrgsm1400", "type": "usb", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrnb1500", "type": "mkrNB1500", "WAN": "false"}, + {"fqbn": "arduino:samd:mkrvidor4000", "type": "vidor", "WAN": "false"}, + {"fqbn": "arduino:samd:adafruit_circuitplayground_m0", "type": "adafruit_playg", "WAN": "false"}, + {"fqbn": "arduino:samd:mzero_pro_bl_dbg", "type": "mzero", "WAN": "false"}, + {"fqbn": "arduino:samd:mzero_pro_bl", "type": "mzero", "WAN": "false"}, + {"fqbn": "arduino:samd:mzero_bl", "type": "mzero", "WAN": "false"}, + {"fqbn": "arduino:samd:tian", "type": "tian", "WAN": "false"} + ] + + # make board type-specific customizations to the matrix jobs + include: + # Normal USB boards with all the general libraries + - board: + type: "usb" + additional-sketch-paths: | + - ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus + - ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet + - ~/Arduino/libraries/Firmata/examples/StandardFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata + - ~/Arduino/libraries/Firmata/examples/ServoFirmata + - ~/Arduino/libraries/Firmata/examples/EchoString + - ~/Arduino/libraries/Firmata/examples/AnalogFirmata + - ~/Arduino/libraries/Firmata/examples/AllInputsFirmata + - libraries/I2S/examples + - libraries/SDU/examples + # Vidor board + - board: + type: "vidor" + additional-sketch-paths: | + - libraries/SAMD_BootloaderUpdater/examples + - libraries/I2S/examples + - ~/Arduino/libraries/VidorPeripherals/examples + # mkrwifi1010 + - board: + type: "mkrWiFi1010" + additional-sketch-paths: | + - libraries/I2S/examples + - libraries/SDU/examples + - ~/Arduino/libraries/WiFiNINA/examples + # mkrnb1500 boards + - board: + type: "mkrNB1500" + additional-sketch-paths: | + - libraries/I2S/examples + - libraries/SDU/examples + - ~/Arduino/libraries/MKRNB/examples + # nano_33_iot + - board: + type: "nano33IoT" + additional-sketch-paths: | + - libraries/I2S/examples + - ~/Arduino/libraries/WiFiNINA/examples + # mkrwan1310 + - board: + type: "mkrwan1310" + additional-sketch-paths: | + - libraries/I2S/examples + # adafruit_cicrcuitplayground board + - board: + type: "adafruit_playg" + additional-sketch-paths: | + - libraries/SDU/examples + # mzero boards + - board: + type: "mzero" + additional-sketch-paths: | + - ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus + - ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet + - ~/Arduino/libraries/Firmata/examples/StandardFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata + - ~/Arduino/libraries/Firmata/examples/ServoFirmata + - ~/Arduino/libraries/Firmata/examples/EchoString + - ~/Arduino/libraries/Firmata/examples/AnalogFirmata + - ~/Arduino/libraries/Firmata/examples/AllInputsFirmata + - libraries/SDU/examples + # tian board + - board: + type: "tian" + additional-sketch-paths: | + - ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus + - ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet + - ~/Arduino/libraries/Firmata/examples/StandardFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata + - ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata + - ~/Arduino/libraries/Firmata/examples/ServoFirmata + - ~/Arduino/libraries/Firmata/examples/EchoString + - ~/Arduino/libraries/Firmata/examples/AnalogFirmata + - ~/Arduino/libraries/Firmata/examples/AllInputsFirmata + # MKRGSM1400 board + - board: + fqbn: "arduino:samd:mkrgsm1400" + mkrgsm1400-sketch-paths: | + - ~/Arduino/libraries/MKRGSM/examples + # MKRWAN board + - board: + WAN: "true" + wan-sketch-paths: | + - ~/Arduino/libraries/MKRWAN/examples + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # The source files are in a subfolder of the ArduinoCore-API repository, so it's not possible to clone it directly to the final destination in the core + - name: Checkout ArduinoCore-API + uses: actions/checkout@v2 + with: + repository: arduino/ArduinoCore-API + path: extras/ArduinoCore-API + + - name: Check if API should be compiled in the core + id: checkapi + run: | + if [[ $(grep -r api platform.txt) ]]; then echo "::set-output name=IS_API::true"; fi + + - name: Install ArduinoCore-API + run: mv "$GITHUB_WORKSPACE/extras/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino" + if: steps.checkapi.outputs.IS_API == 'true' + + - name: Checkout Basic examples + uses: actions/checkout@v2 + with: + repository: arduino/arduino-examples + path: extras + + - name: Compile examples + uses: arduino/compile-sketches@main + with: + fqbn: ${{ matrix.board.fqbn }} + libraries: | + - source-url: https://github.com/arduino-libraries/WiFi101.git + - name: MFRC522 + - name: Arduino_MKRMEM + - name: FlashStorage + - name: Keyboard + - name: Mouse + - name: Servo + - name: LiquidCrystal + - name: CapacitiveSensor + - name: Ethernet + - name: ArduinoBearSSL + - name: Arduino_APDS9960 + - name: Arduino_LSM9DS1 + - name: ArduinoHttpClient + - name: NTPClient + - name: TFT + - name: ArduinoMqttClient + - name: Arduino_CRC32 + - name: Arduino_LSM6DS3 + - name: Stepper + - name: SD + - name: Arduino_JSON + - name: Arduino_HTS221 + - name: Firmata + - name: ArduinoMotorCarrier + - name: ArduinoCloudThing + - name: Arduino_DebugUtils + - name: WiFi Link + - name: Arduino_LPS22HB + - name: CTC GO MOTIONS + - name: ArduinoModbus + - name: ArduinoIoTCloudBearSSL + - name: ArduinoDMX + - name: ArduinoRS485 + - name: Arduino_OAuth + - name: CTC GO CORE + - name: WiFi + - name: Bridge + - name: Temboo + - name: ArduinoIoTCloud + - name: Madgwick + - name: MKRGSM + - name: MKRNB + - name: LoRa + - name: MKRWAN + - name: WiFiNINA + - source-url: https://github.com/vidor-libraries/VidorPeripherals.git + platforms: | + # Use Board Manager to install the latest release of Arduino SAMD Boards to get the toolchain + - name: "arduino:samd" + # Overwrite the Board Manager installation with the local platform + - source-path: "./" + name: "arduino:samd" + sketch-paths: | + ${{ env.UNIVERSAL_SKETCH_PATHS }} + ${{ matrix.additional-sketch-paths }} + ${{ matrix.mkrgsm1400-sketch-paths }} + ${{ matrix.wan-sketch-paths }} + enable-deltas-report: 'true' + verbose: 'true' + + - name: Save memory usage change report as artifact + uses: actions/upload-artifact@v1 + with: + name: sketches-reports + path: sketches-reports diff --git a/.github/workflows/report-size-deltas.yml b/.github/workflows/report-size-deltas.yml new file mode 100644 index 000000000..4a7c2ba20 --- /dev/null +++ b/.github/workflows/report-size-deltas.yml @@ -0,0 +1,13 @@ +name: Report PR Size Deltas + +on: + schedule: + - cron: '*/5 * * * *' + +jobs: + report: + runs-on: ubuntu-latest + + steps: + - name: Comment size deltas reports to PRs + uses: arduino/report-size-deltas@main
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: