Merge pull request #38 from EnviroDIY/dependabot/github_actions/actio… #54
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
name: Build Examples with Arduino CLI | |
# Triggers the workflow on push or pull request events | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, 'ci skip')" | |
strategy: | |
matrix: | |
example: | |
[ | |
examples/GetValues/, | |
] | |
# arduino-platform: ['EnviroDIY:avr', 'arduino:avr', 'arduino:samd', 'adafruit:samd'] | |
fqbn: | |
[ | |
'EnviroDIY:avr:envirodiy_mayfly', | |
'arduino:avr:mega', | |
'arduino:samd:mzero_bl', | |
'adafruit:samd:adafruit_feather_m0', | |
] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set environment variable for library installation source | |
run: | | |
if [[ -z "${GITHUB_HEAD_REF}" ]]; then | |
echo "::debug::Push to commit ${GITHUB_SHA}" | |
echo "LIBRARY_INSTALL_ZIP=https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.zip" >> $GITHUB_ENV | |
else | |
echo "::debug::Pull Request from the ${GITHUB_HEAD_REF} branch" | |
echo "LIBRARY_INSTALL_ZIP=https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_HEAD_REF}.zip" >> $GITHUB_ENV | |
fi | |
# We use the `arduino/setup-arduino-cli` action to install and | |
# configure the Arduino CLI on the system. | |
- name: Setup Arduino CLI | |
uses: arduino/setup-arduino-cli@v1.1.2 | |
- name: Restore Arduino Platforms and Libraries | |
uses: actions/cache@v4 | |
id: cache_arduino | |
with: | |
path: home/arduino | |
# if nothing in the library.properties file has changed, then it will | |
# be a "cache hit" and we can restore libraries from cache and not | |
# download them. If it has changed we have to re-download. | |
key: ${{ hashFiles('**/library.properties') }} | |
# Install cores and library dependencies for the Arduino CLI, iff no cache | |
- name: Install the Arduino libraries | |
if: steps.cache_arduino.outputs.cache-hit != 'true' | |
run: | | |
arduino-cli version | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core update-index | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core install arduino:avr | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core install EnviroDIY:avr | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core install arduino:samd | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core install adafruit:samd | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core update-index | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core upgrade | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core list | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml lib update-index | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml lib install SensorModbusMaster | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml lib install --git-url https://github.com/PaulStoffregen/AltSoftSerial.git | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml lib update-index | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml core list | |
# Install YosemitechModbus for the Arduino CLI | |
- name: Install the testing version of Yosemitech Modbus for the Arduino CLI | |
run: | | |
chmod +x continuous_integration/install-test-version-arduino-cli.sh | |
sh continuous_integration/install-test-version-arduino-cli.sh | |
- name: Set appropriate build flags for Arduino CLI | |
run: | | |
echo "::group::Setting build flags" | |
echo "::debug::Setting build flags for ${{ matrix.fqbn }}" | |
if [ ${{ matrix.fqbn }} = 'EnviroDIY:avr:envirodiy_mayfly' ]; then | |
echo "EXTRA_BUILD_FLAGS=-DNEOSWSERIAL_EXTERNAL_PCINT" >> $GITHUB_ENV | |
fi | |
if [ ${{ matrix.fqbn }} = 'arduino:avr:mega' ]; then | |
echo "EXTRA_BUILD_FLAGS=-DNEOSWSERIAL_EXTERNAL_PCINT" >> $GITHUB_ENV | |
fi | |
if [ ${{ matrix.fqbn }} = 'arduino:samd:mzero_bl' ]; then | |
echo "EXTRA_BUILD_FLAGS=-DNEOSWSERIAL_EXTERNAL_PCINT -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON" >> $GITHUB_ENV | |
fi | |
if [ ${{ matrix.fqbn }} = 'adafruit:samd:adafruit_feather_m0' ]; then | |
echo "EXTRA_BUILD_FLAGS=-DNEOSWSERIAL_EXTERNAL_PCINT -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS -DADAFRUIT_FEATHER_M0 -D__SAMD21G18A__ -DUSB_VID=0x239A -DUSB_PID=0x800B -DUSBCON -DUSB_CONFIG_POWER=100" >> $GITHUB_ENV | |
fi | |
echo "::endgroup::" | |
- name: Compile examples using the Arduino CLI | |
env: | |
BUILD_EXAMPLE: ${{ matrix.example }} | |
run: | | |
echo "::debug::Running Arduino CLI for ${{ matrix.example }}" | |
arduino-cli --config-file continuous_integration/arduino_cli.yaml compile --clean --build-property "build.extra_flags=$EXTRA_BUILD_FLAGS" --fqbn ${{ matrix.fqbn }} $BUILD_EXAMPLE | |
- name: Uninstall testing version of Yosemitech Modbus before caching | |
run: arduino-cli --config-file continuous_integration/arduino_cli.yaml lib uninstall YosemitechModbus |