Skip to content

[TerkinTelemetry] Renovations to improve the library interface, and to make things work #82

[TerkinTelemetry] Renovations to improve the library interface, and to make things work

[TerkinTelemetry] Renovations to improve the library interface, and to make things work #82

Workflow file for this run

#
# Run workflow, step, or job based on file changes GitHub Actions
# https://how.wtf/run-workflow-step-or-job-based-on-file-changes-github-actions.html
#
# GitHub Actions run on certain file type change
# https://www.scivision.dev/github-actions-selective-run/
#
# GitHub Actions configuration for PlatformIO
# https://docs.platformio.org/en/stable/integration/ci/github-actions.html
#
name: PlatformIO CI
on:
push:
branches: [ main ]
paths:
- "**.cpp"
- "**.h"
- "**.ini"
- "**.ino"
- "**.yaml"
pull_request:
branches: [ main ]
paths:
- "**.cpp"
- "**.h"
- "**.ini"
- "**.ino"
- "**.yaml"
# Allow job to be triggered manually.
workflow_dispatch:
# Cancel in-progress jobs when pushing to the same branch.
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.ref }}
jobs:
changes:
runs-on: ubuntu-latest
outputs:
library-terkindata: ${{ steps.changes.outputs.library-terkindata }}
homie: ${{ steps.changes.outputs.homie }}
backdoor-any-rfm69: ${{ steps.changes.outputs.backdoor-any-rfm69 }}
backdoor-multihop: ${{ steps.changes.outputs.backdoor-multihop }}
backdoor-node-wifi-mqtt: ${{ steps.changes.outputs.backdoor-node-wifi-mqtt }}
moislabs-beescale-yun: ${{ steps.changes.outputs.moislabs-beescale-yun }}
openhive-any-rfm69: ${{ steps.changes.outputs.openhive-any-rfm69 }}
openhive-gsm-wifi: ${{ steps.changes.outputs.openhive-gsm-wifi }}
openhive-scale-adjust: ${{ steps.changes.outputs.openhive-scale-adjust }}
ringlabs-bienenwaage-20: ${{ steps.changes.outputs.ringlabs-bienenwaage-20 }}
ringlabs-bienenwaage-50: ${{ steps.changes.outputs.ringlabs-bienenwaage-50 }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: changes
with:
filters: |
library-terkindata:
- 'libraries/TerkinData/Makefile'
- 'libraries/TerkinData/**/*.cpp'
- 'libraries/TerkinData/**/*.ini'
- 'libraries/TerkinData/**/*.ino'
- 'libraries/TerkinData/**/*.mk'
homie:
- 'homie/**/*.ini'
- 'homie/**/*.ino'
backdoor-any-rfm69:
- 'backdoor/gateway-rfm69-beradio/**'
- 'backdoor/node-rfm69-beradio/**'
backdoor-multihop:
- 'backdoor/multihop/**/*.h'
- 'backdoor/multihop/**/*.ini'
- 'backdoor/multihop/**/*.ino'
backdoor-node-wifi-mqtt:
- 'backdoor/node-wifi-mqtt/**/*.ini'
- 'backdoor/node-wifi-mqtt/**/*.ino'
moislabs-beescale-yun:
- 'moislabs/beescale-yun/**/*.ini'
- 'moislabs/beescale-yun/**/*.ino'
openhive-any-rfm69:
- 'openhive/gateway-rfm69-csv-sdcard/**'
- 'openhive/gateway-rfm69-csv-uart/**'
- 'openhive/node-rfm69-csv/**'
openhive-gsm-wifi:
- 'openhive/openhive-gsm-wifi/**/*.ini'
- 'openhive/openhive-gsm-wifi/**/*.ino'
openhive-scale-adjust:
- 'openhive/scale-adjust/**/*.ini'
- 'openhive/scale-adjust/**/*.ino'
ringlabs-bienenwaage-20:
- 'ringlabs/bienenwaage-2.0/**/*.ini'
- 'ringlabs/bienenwaage-2.0/**/*.ino'
ringlabs-bienenwaage-50:
- 'ringlabs/bienenwaage-5.0/**/*.ini'
- 'ringlabs/bienenwaage-5.0/**/*.cpp'
build:
needs: changes
runs-on: ubuntu-latest
steps:
- name: Acquire sources
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Cache PlatformIO
uses: actions/cache@v3
with:
path: |
~/.cache/pip
~/.platformio/.cache
~/.pio
key: ${{ runner.os }}-pio
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: |
requirements*.txt
- name: Install PlatformIO
run: |
pip install --upgrade --requirement requirements-test.txt
# ------------------------------------------
# Libraries
# ------------------------------------------
- name: Build TerkinData
if: ${{ needs.changes.outputs.library-terkindata == 'true' }}
run: |
cd libraries/TerkinData/examples
make
# ------------------------------------------
# Mois Labs
# ------------------------------------------
- name: Build moislabs-beescale-yun
if: ${{ needs.changes.outputs.moislabs-beescale-yun == 'true' }}
run: |
pio run --project-dir moislabs/beescale-yun
# ------------------------------------------
# Backdoor
# ------------------------------------------
- name: Build backdoor-any-rfm69
if: ${{ needs.changes.outputs.backdoor-any-rfm69 == 'true' }}
run: |
pio run --project-dir backdoor/gateway-rfm69-beradio
pio run --project-dir backdoor/node-rfm69-beradio
- name: Build backdoor/multihop
if: ${{ needs.changes.outputs.backdoor-multihop == 'true' }}
run: |
pio run --project-dir backdoor/multihop
- name: Build backdoor/node-wifi-mqtt
if: ${{ needs.changes.outputs.backdoor-node-wifi-mqtt == 'true' }}
run: |
pio run --project-dir backdoor/node-wifi-mqtt
# ------------------------------------------
# Homie
# ------------------------------------------
- name: Build homie/**
if: ${{ needs.changes.outputs.homie == 'true' }}
run: |
pio run --project-dir homie/node-homie-basic
pio run --project-dir homie/node-homie-lowpower
pio run --project-dir homie/node-homie-scale-adjust
# ------------------------------------------
# Open Hive
# ------------------------------------------
- name: Build openhive-any-rfm69
if: ${{ needs.changes.outputs.openhive-any-rfm69 == 'true' }}
run: |
pio run --project-dir openhive/rfm69-gateway-sdcard
pio run --project-dir openhive/rfm69-gateway-uart
pio run --project-dir openhive/rfm69-node
- name: Build openhive-gsm-wifi
if: ${{ needs.changes.outputs.openhive-gsm-wifi == 'true' }}
run: |
pio run --project-dir openhive/openhive-gsm-wifi
- name: Build openhive-scale-adjust
if: ${{ needs.changes.outputs.openhive-scale-adjust == 'true' }}
run: |
pio run --project-dir openhive/scale-adjust/ADS1231
pio run --project-dir openhive/scale-adjust/HX711
# ------------------------------------------
# Ringlabs
# ------------------------------------------
- name: Build ringlabs/bienenwaage-2.0
if: ${{ needs.changes.outputs.ringlabs-bienenwaage-20 == 'true' }}
run: |
pio run --project-dir ringlabs/bienenwaage-2.0
- name: Build ringlabs/bienenwaage-5.0
if: ${{ needs.changes.outputs.ringlabs-bienenwaage-50 == 'true' }}
run: |
pio run --project-dir ringlabs/bienenwaage-5.0