Skip to content

Merge pull request #38 from EnviroDIY/dependabot/github_actions/actio… #54

Merge pull request #38 from EnviroDIY/dependabot/github_actions/actio…

Merge pull request #38 from EnviroDIY/dependabot/github_actions/actio… #54

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