Skip to content
This repository has been archived by the owner on Oct 27, 2024. It is now read-only.

Add configuration for M5Stack Core2 with M5Stack Module LoRa868 #598

Add configuration for M5Stack Core2 with M5Stack Module LoRa868

Add configuration for M5Stack Core2 with M5Stack Module LoRa868 #598

Workflow file for this run

name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
strategy:
matrix:
board:
#- esp32:[email protected]
- esp32:esp32:esp32:DebugLevel=none
- esp32:esp32:esp32:DebugLevel=verbose
- esp32:esp32:firebeetle32
#- esp32:esp32:ttgo-lora32:Revision=TTGO_LoRa32_V1
#- esp32:esp32:ttgo-lora32:Revision=TTGO_LoRa32_V2
- esp32:esp32:ttgo-lora32:Revision=TTGO_LoRa32_v21new
- esp32:esp32:heltec_wireless_stick:PSRAM=disabled
- esp32:esp32:heltec_wifi_lora_32_V2
- esp32:esp32:featheresp32
- esp32:esp32:m5stack-core2
- esp32:esp32:adafruit_feather_esp32s2
- rp2040:rp2040:adafruit_feather:dbgport=Serial
runs-on: ubuntu-latest
name: ${{ matrix.board }}
env:
GH_TOKEN: ${{ github.token }}
run-build: ${{ contains(matrix.board, 'esp32:esp32') || contains(matrix.board, 'rp2040:rp2040') || contains(github.event.head_commit.message, 'CI_BUILD_ALL') || contains(github.event.head_commit.message, 'Bump version to') || contains(github.event.head_commit.message, format('{0}', matrix.board)) }}
steps:
- name: Install arduino-cli
if: ${{ env.run-build == 'true' }}
run:
|
mkdir -p ~/.local/bin
echo "~/.local/bin" >> $GITHUB_PATH
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/.local/bin sh
- name: Get platform name
if: ${{ env.run-build == 'true' }}
uses: jungwinter/split@v2
id: split
with:
msg: ${{ matrix.board }}
separator: ':'
- name: Prepare platform-specific settings
if: ${{ env.run-build == 'true' }}
id: prep
run:
|
# common settings - no extra options, skip nothing, all warnings
echo "skip-pattern=''" >> $GITHUB_OUTPUT
echo "warnings='all'" >> $GITHUB_OUTPUT
# platform-dependent settings - extra board options, board index URLs, skip patterns etc.
if [[ "${{ contains(matrix.board, 'esp32:esp32') }}" == "true" ]]; then
# ESP32
python -m pip install pyserial
echo "index-url=--additional-urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" >> $GITHUB_OUTPUT
elif [[ "${{ contains(matrix.board, 'rp2040:rp2040') }}" == "true" ]]; then
# RP2040
echo "index-url=--additional-urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json" >> $GITHUB_OUTPUT
fi
- name: Install libraries
if: ${{ env.run-build == 'true' }}
run:
|
#declare -a required_libs=("https://github.com/matthias-bs/BresserWeatherSensorReceiver.git"
declare -a required_libs=(
"[email protected]"
"[email protected]"
"MCCI LoRaWAN LMIC [email protected]"
"MCCI Arduino LoRaWAN [email protected]"
"MCCI Arduino Development Kit [email protected]"
"LoRa [email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]"
"[email protected]")
for i in "${required_libs[@]}"
do
arduino-cli lib install "$i"
done
gh repo clone matthias-bs/DistanceSensor_A02YYUW
cp -r DistanceSensor_A02YYUW /home/runner/Arduino/libraries/
# OneWire is installed due to dependency in DallasTemperature, but OneWireNg shall be used instead
echo "Removing Arduino/libraries/OneWire (installed automatically, but shall be replaced by OneWireNg)"
rm -r /home/runner/Arduino/libraries/OneWire
- name: Install platform
if: ${{ env.run-build == 'true' }}
run:
|
arduino-cli core update-index ${{ format('{0}', steps.prep.outputs.index-url) }}
arduino-cli core install ${{ format('{0}:{1} {2}', steps.split.outputs._0, steps.split.outputs._1, steps.prep.outputs.index-url) }}
- name: Checkout repository
if: ${{ env.run-build == 'true' }}
uses: actions/checkout@v4
- name: Copy WeatherSensorCfg.h
if: ${{ env.run-build == 'true' }}
run:
|
cp /home/runner/work/BresserWeatherSensorTTN/BresserWeatherSensorTTN/WeatherSensorCfg.h.template \
/home/runner/Arduino/libraries/BresserWeatherSensorReceiver/src/WeatherSensorCfg.h
- name: Customizing lmic_project_config.h (LMIC_ENABLE_DeviceTimeReq)
if: ${{ env.run-build == 'true' }}
run:
|
echo "#define LMIC_ENABLE_DeviceTimeReq 1" >> /home/runner/Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h
# Fix for linker error with Arduino core for ESP32 v2.0.x as suggested in https://github.com/mcci-catena/arduino-lmic/issues/714#issuecomment-822051171
echo "#define hal_init LMICHAL_init" >> /home/runner/Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h
- name: Build sketch
if: ${{ env.run-build == 'true' }}
run:
|
#for example in $(find $PWD/examples -name '*.ino' | sort); do
# modified to compile a singe sketch (instead of a library's examples)
for example in $(find $PWD -name '*.ino' | sort); do
# check whether to skip this sketch
if [ ! -z '${{ steps.prep.outputs.skip-pattern }}' ] && [[ ${example} =~ ${{ steps.prep.outputs.skip-pattern }} ]]; then
# skip sketch
echo -e "\n\033[1;33mSkipped ${example##*/} (matched with ${{ steps.prep.outputs.skip-pattern }})\033[0m";
else
# build sketch
echo -e "\n\033[1;33mBuilding ${example##*/} ... \033[0m";
if [[ "${{ contains(matrix.board, '@1.0.6') }}" == "true" ]]; then
# hardcoded fqbn, because 'esp32:[email protected]' did not work
arduino-cli compile --libraries /home/runner/work/BresserWeatherSensorReceiver --fqbn esp32:esp32:esp32${{ steps.prep.outputs.options }} $example --warnings=${{ steps.prep.outputs.warnings }}
else
#arduino-cli compile --show-properties --libraries /home/runner/work/BresserWeatherSensorReceiver --fqbn ${{ matrix.board }}${{ steps.prep.outputs.options }} $example --warnings=${{ steps.prep.outputs.warnings }}
arduino-cli compile --libraries /home/runner/work/BresserWeatherSensorReceiver --fqbn ${{ matrix.board }}${{ steps.prep.outputs.options }} $example --warnings=${{ steps.prep.outputs.warnings }}
fi
if [ $? -ne 0 ]; then
echo -e "\033[1;31m${example##*/} build FAILED\033[0m\n";
exit 1;
else
echo -e "\033[1;32m${example##*/} build PASSED\033[0m\n";
fi
fi
done