Added functions read() and readMicroseconds() to be compatible to Ser… #330
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# LibraryBuild.yml | |
# Github workflow script to test compile all examples of an Arduino library repository. | |
# | |
# Copyright (C) 2020 Armin Joachimsmeyer | |
# https://github.com/ArminJo/Github-Actions | |
# | |
# This is the name of the workflow, visible on GitHub UI. | |
name: LibraryBuild | |
on: | |
workflow_dispatch: # To run it manually | |
description: 'manual build check' | |
push: # see: https://help.github.com/en/actions/reference/events-that-trigger-workflows#pull-request-event-pull_request | |
paths: | |
- '**.ino' | |
- '**.cpp' | |
- '**.hpp' | |
- '**.h' | |
- '**LibraryBuild.yml' | |
pull_request: | |
paths: | |
- '**.ino' | |
- '**.cpp' | |
- '**.hpp' | |
- '**.h' | |
- '**LibraryBuild.yml' | |
jobs: | |
build: | |
name: ${{ matrix.arduino-boards-fqbn }} - test compiling examples | |
runs-on: ubuntu-latest # I picked Ubuntu to use shell scripts. As of 15.9.22 it is ubuntu-20.04. | |
#env: | |
# Comma separated list without double quotes around the list. | |
#REQUIRED_LIBRARIES: Servo | |
strategy: | |
matrix: | |
# The matrix will produce one job for each configuration parameter of type `arduino-boards-fqbn` | |
# In the Arduino IDE, the fqbn is printed in the first line of the verbose output for compilation as parameter -fqbn=... for the "arduino-builder -dump-prefs" command | |
# | |
# Examples: arduino:avr:uno, arduino:avr:leonardo, arduino:avr:nano, arduino:avr:mega | |
# arduino:sam:arduino_due_x, arduino:samd:arduino_zero_native" | |
# ATTinyCore:avr:attinyx5:chip=85,clock=1internal, digistump:avr:digispark-tiny, digistump:avr:digispark-pro | |
# STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 | |
# esp8266:esp8266:huzzah:eesz=4M3M,xtal=80, esp32:esp32:featheresp32:FlashFreq=80 | |
# You may add a suffix behind the fqbn with "|" to specify one board for e.g. different compile options like arduino:avr:uno|trace | |
############################################################################################################# | |
arduino-boards-fqbn: | |
- arduino:avr:uno | |
- arduino:avr:leonardo | |
- arduino:avr:mega | |
- arduino:megaavr:nona4809:mode=off | |
- MegaCoreX:megaavr:4808:pinout=32pin_standard,clock=internal_16MHz | |
# - megaTinyCore:megaavr:atxy7:chip=3217,clock=16internal | |
- arduino:sam:arduino_due_x | |
- arduino:samd:arduino_zero_native | |
# - adafruit:samd:adafruit_metro_m4:cache=on,speed=120,opt=small,maxqspi=50,usbstack=arduino,debug=off | |
- arduino:mbed:nano33ble | |
- arduino:mbed_rp2040:pico | |
- rp2040:rp2040:arduino_nano_connect | |
- esp8266:esp8266:huzzah:eesz=4M3M,xtal=80 | |
- esp32:esp32:featheresp32:FlashFreq=80 | |
- STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 | |
- stm32duino:STM32F1:genericSTM32F103C | |
- SparkFun:apollo3:sfe_artemis_nano | |
# Specify parameters for each board. | |
# With sketches-exclude you may exclude specific examples for a board. Use a comma separated list. | |
############################################################################################################# | |
include: | |
- arduino-boards-fqbn: arduino:avr:uno | |
required-libraries: NeoPatterns,PlayRtttl,Servo # for QuadrupedControl: -DQUADRUPED_1_WITH_DVD_REMOTE | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
OneServo: -DUSE_PCA9685_SERVO_EXPANDER -DDISABLE_PAUSE_RESUME | |
SymmetricEasing: -DDISABLE_COMPLEX_FUNCTIONS -DDEBUG | |
AsymmetricEasing: -DTRACE | |
Simple: -DPRINT_FOR_SERIAL_PLOTTER | |
PCA9685_ExpanderFor32Servos: -DTRACE -DDISABLE_MICROS_AS_DEGREE_PARAMETER | |
PCA9685_ExpanderAndServo: -DUSE_SOFT_I2C_MASTER | |
QuadrupedControl: -DQUADRUPED_1_WITH_DVD_REMOTE -mrelax | |
- arduino-boards-fqbn: arduino:avr:leonardo | |
required-libraries: Servo | |
sketches-exclude: TwoServos,RobotArmControl # No LightweightServoLib and TinyReceiver available | |
- arduino-boards-fqbn: arduino:avr:mega | |
required-libraries: Servo | |
sketches-exclude: TwoServos # No LightweightServoLib available | |
- arduino-boards-fqbn: arduino:megaavr:nona4809:mode=off | |
required-libraries: Servo | |
sketches-exclude: TwoServos,SpeedTest,EndPositionsTest,QuadrupedControl,RobotArmControl # No getVCCVoltageMillivolt(), no EasyButton | |
- arduino-boards-fqbn: arduino:sam:arduino_due_x | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl # QuadrupedControl RobotArmControl because of missing EEprom | |
- arduino-boards-fqbn: arduino:samd:arduino_zero_native | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl | |
- arduino-boards-fqbn: arduino:mbed:nano33ble | |
arduino-platform: arduino:mbed@1.3.2 # the 2.0.0 is incompatible with Servo library | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl,PCA9685_ExpanderFor32Servos,PCA9685_Expander,PCA9685_ExpanderAndServo # No Wire | |
# | |
# RP2040 | |
# | |
- arduino-boards-fqbn: arduino:mbed_rp2040:pico | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl # Comma separated list of example names to exclude in build | |
- arduino-boards-fqbn: rp2040:rp2040:arduino_nano_connect | |
platform-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl # Comma separated list of example names to exclude in build | |
# | |
# megaTinyCore | |
# | |
# https://github.com/SpenceKonde/megaTinyCore/issues/935 | |
# - arduino-boards-fqbn: megaTinyCore:megaavr:atxy7:chip=3217,clock=16internal | |
# platform-url: http://drazzy.com/package_drazzy.com_index.json | |
# required-libraries: Servo | |
# sketches-exclude: TwoServos,SpeedTest,EndPositionsTest,QuadrupedControl,RobotArmControl # No getVCCVoltageMillivolt(), no EasyButton | |
# | |
# MegaCoreX | |
# | |
# Here we have a platform bundled Servo library | |
- arduino-boards-fqbn: MegaCoreX:megaavr:4808:pinout=32pin_standard,clock=internal_16MHz | |
platform-url: https://mcudude.github.io/MegaCoreX/package_MCUdude_MegaCoreX_index.json | |
sketches-exclude: TwoServos,SpeedTest,EndPositionsTest,QuadrupedControl,RobotArmControl # No getVCCVoltageMillivolt(), no EasyButton | |
# | |
# ESP | |
# | |
- arduino-boards-fqbn: esp8266:esp8266:huzzah:eesz=4M3M,xtal=80 | |
platform-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl,SpeedTest # SpeedTest because of only one analog input | |
- arduino-boards-fqbn: esp32:esp32:featheresp32:FlashFreq=80 | |
platform-url: https://github.com/raw/espressif/arduino-esp32/gh-pages/package_esp32_index.json | |
required-libraries: ESP32Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl # Comma separated list of example names to exclude in build | |
# | |
# STM | |
# | |
- arduino-boards-fqbn: STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 # STM version | |
platform-url: https://github.com/raw/stm32duino/BoardManagerFiles/main/package_stmicroelectronics_index.json | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl | |
- arduino-boards-fqbn: stm32duino:STM32F1:genericSTM32F103C # Roger Clark version | |
platform-url: http://dan.drown.org/stm32duino/package_STM32duino_index.json | |
required-libraries: Servo | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl | |
# | |
# Others | |
# | |
# Error in default samd/Servo.cpp:44:60 - volatile struct TC_STATUS_Type::<unnamed> has no member named SYNCBUSY | |
# because Arduino uses the newer arduino and not the adafruit servo library | |
# - arduino-boards-fqbn: adafruit:samd:adafruit_metro_m4:cache=on,speed=120,opt=small,maxqspi=50,usbstack=arduino,debug=off | |
# platform-url: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json | |
# sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl | |
- arduino-boards-fqbn: SparkFun:apollo3:sfe_artemis_nano | |
platform-url: https://github.com/raw/sparkfun/Arduino_Apollo3/master/package_sparkfun_apollo3_index.json | |
required-libraries: Servo | |
# 4/2020 For PCA9685_Expander, Wire cannot be found in cli, it works in the regular IDE. | |
sketches-exclude: TwoServos,QuadrupedControl,RobotArmControl,PCA9685_Expander,PCA9685_ExpanderAndServo,PCA9685_ExpanderFor32Servos | |
# fail-fast: false # false -> do not cancel all jobs / architectures if one job fails | |
# This is the list of steps this job will run. | |
steps: | |
# First of all, we clone the repo using the `checkout` action. | |
- name: Checkout | |
uses: actions/checkout@master | |
# - name: Arduino Lint | |
# uses: arduino/arduino-lint-action@v1 | |
# with: | |
# library-manager: update | |
# See: https://github.com/codespell-project/actions-codespell/blob/master/README.md | |
# - name: Spell check | |
# uses: codespell-project/actions-codespell@master | |
# with: | |
# only_warn: 1 | |
# ignore_words_list: rcall, InOut | |
- name: Compile all examples using the arduino-test-compile action | |
uses: ArminJo/arduino-test-compile@master | |
with: | |
arduino-board-fqbn: ${{ matrix.arduino-boards-fqbn }} | |
arduino-platform: ${{ matrix.arduino-platform }} | |
platform-url: ${{ matrix.platform-url }} | |
required-libraries: ${{ matrix.required-libraries }} | |
# required-libraries: ${{ env.REQUIRED_LIBRARIES }},${{ matrix.required-libraries }} | |
sketches-exclude: ${{ matrix.sketches-exclude }} | |
build-properties: ${{ toJson(matrix.build-properties) }} |