Skip to content

Shutdown ESCs when IDLE #115

Shutdown ESCs when IDLE

Shutdown ESCs when IDLE #115

Workflow file for this run

name: CI
on:
push:
paths-ignore:
- "**.md"
pull_request:
workflow_dispatch:
# Allow to stop obsolete workflows
concurrency:
group: ci-buildtrain-${{ github.ref }}-1
cancel-in-progress: true
jobs:
erc-drc-checks:
runs-on: ubuntu-latest
if: github.ref_type != 'tag'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: INTI-CMNB/KiBot@v2_k8
with:
config: Hardware/OpenMowerMainboard/OpenMowerMainboard.kibot.yaml
board: Hardware/OpenMowerMainboard/OpenMowerMainboard.kicad_pcb
verbose: 1
- uses: INTI-CMNB/KiBot@v2_k7
with:
config: Hardware/DockStation/mower_PowerDeviceCarrier.kibot.yaml
board: Hardware/DockStation/mower_PowerDeviceCarrier.kicad_pcb
verbose: 1
firmware:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v5
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Run PlatformIO
run: pio run -d Firmware/LowLevel
- name: Copy Artifacts
run: |
mkdir artifacts
mkdir ./artifacts/0_13_X
cp Firmware/LowLevel/.pio/build/0_13_X/firmware.elf ./artifacts/0_13_X
cp Firmware/LowLevel/.pio/build/0_13_X/firmware.uf2 ./artifacts/0_13_X
mkdir ./artifacts/0_12_X_LSM6DSO
cp Firmware/LowLevel/.pio/build/0_12_X/firmware.elf ./artifacts/0_12_X_LSM6DSO
cp Firmware/LowLevel/.pio/build/0_12_X/firmware.uf2 ./artifacts/0_12_X_LSM6DSO
mkdir ./artifacts/0_12_X
cp Firmware/LowLevel/.pio/build/0_12_X/firmware.elf ./artifacts/0_12_X
cp Firmware/LowLevel/.pio/build/0_12_X/firmware.uf2 ./artifacts/0_12_X
mkdir ./artifacts/0_11_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_11_X_MPU9250/firmware.elf ./artifacts/0_11_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_11_X_MPU9250/firmware.uf2 ./artifacts/0_11_X_MPU9250
mkdir ./artifacts/0_11_X_WT901
cp Firmware/LowLevel/.pio/build/0_11_X_WT901/firmware.elf ./artifacts/0_11_X_WT901
cp Firmware/LowLevel/.pio/build/0_11_X_WT901/firmware.uf2 ./artifacts/0_11_X_WT901
mkdir ./artifacts/0_10_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_10_X_MPU9250/firmware.elf ./artifacts/0_10_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_10_X_MPU9250/firmware.uf2 ./artifacts/0_10_X_MPU9250
mkdir ./artifacts/0_10_X_WT901
cp Firmware/LowLevel/.pio/build/0_10_X_WT901/firmware.elf ./artifacts/0_10_X_WT901
cp Firmware/LowLevel/.pio/build/0_10_X_WT901/firmware.uf2 ./artifacts/0_10_X_WT901
mkdir ./artifacts/0_9_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_9_X_MPU9250/firmware.elf ./artifacts/0_9_X_MPU9250
cp Firmware/LowLevel/.pio/build/0_9_X_MPU9250/firmware.uf2 ./artifacts/0_9_X_MPU9250
mkdir ./artifacts/0_9_X_WT901
cp Firmware/LowLevel/.pio/build/0_9_X_WT901/firmware.elf ./artifacts/0_9_X_WT901
cp Firmware/LowLevel/.pio/build/0_9_X_WT901/firmware.uf2 ./artifacts/0_9_X_WT901
mkdir ./artifacts/0_9_X_WT901_INSTEAD_OF_SOUND
cp Firmware/LowLevel/.pio/build/0_9_X_WT901_INSTEAD_OF_SOUND/firmware.elf ./artifacts/0_9_X_WT901_INSTEAD_OF_SOUND
cp Firmware/LowLevel/.pio/build/0_9_X_WT901_INSTEAD_OF_SOUND/firmware.uf2 ./artifacts/0_9_X_WT901_INSTEAD_OF_SOUND
mkdir ./artifacts/0_13_X_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_13_X_IGNORE_CHARGING_CURRENT/firmware.elf ./artifacts/0_13_X_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_13_X_IGNORE_CHARGING_CURRENT/firmware.uf2 ./artifacts/0_13_X_IGNORE_CHARGING_CURRENT
mkdir ./artifacts/0_12_X_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_12_X_IGNORE_CHARGING_CURRENT/firmware.elf ./artifacts/0_12_X_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_12_X_IGNORE_CHARGING_CURRENT/firmware.uf2 ./artifacts/0_12_X_IGNORE_CHARGING_CURRENT
mkdir ./artifacts/0_11_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_11_X_WT901_IGNORE_CHARGING_CURRENT/firmware.elf ./artifacts/0_11_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_11_X_WT901_IGNORE_CHARGING_CURRENT/firmware.uf2 ./artifacts/0_11_X_WT901_IGNORE_CHARGING_CURRENT
mkdir ./artifacts/0_10_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_10_X_WT901_IGNORE_CHARGING_CURRENT/firmware.elf ./artifacts/0_10_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_10_X_WT901_IGNORE_CHARGING_CURRENT/firmware.uf2 ./artifacts/0_10_X_WT901_IGNORE_CHARGING_CURRENT
mkdir ./artifacts/0_9_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_9_X_WT901_IGNORE_CHARGING_CURRENT/firmware.elf ./artifacts/0_9_X_WT901_IGNORE_CHARGING_CURRENT
cp Firmware/LowLevel/.pio/build/0_9_X_WT901_IGNORE_CHARGING_CURRENT/firmware.uf2 ./artifacts/0_9_X_WT901_IGNORE_CHARGING_CURRENT
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: open-mower-pico-firmware
path: artifacts/
tagged-release:
runs-on: ubuntu-latest
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'v')
needs: firmware
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: INTI-CMNB/KiBot@v2_k7
with:
config: Hardware/OpenMowerMainboard/OpenMowerMainboard.kibot.yaml
board: Hardware/OpenMowerMainboard/OpenMowerMainboard.kicad_pcb
- uses: INTI-CMNB/KiBot@v2_k7
with:
config: Hardware/DockStation/mower_PowerDeviceCarrier.kibot.yaml
board: Hardware/DockStation/mower_PowerDeviceCarrier.kicad_pcb
- name: 'Fix permissions on release/'
run: sudo chmod 0777 release
- uses: actions/download-artifact@v4
with:
name: open-mower-pico-firmware
path: firmware
- name: Create firmware zip
run: |
zip -r release/firmware.zip firmware
- name: Calculating checksum
shell: bash
run: |
sha256sum release/firmware.zip > release/firmware.sha256
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: release/*
- name: Deploy release
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: release
destination_dir: release
- name: Deploy release_navigator
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: release_navigator
destination_dir: release_navigator
keep_files: true
- name: Deploy release_navigator index
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: release_navigator
keep_files: true
pre-release-latest-firmware:
runs-on: ubuntu-latest
if: github.ref_type != 'tag'
needs: firmware
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
with:
name: open-mower-pico-firmware
path: firmware
- name: Create firmware zip
run: |
zip -r firmware.zip firmware
- name: Calculating checksum
shell: bash
run: |
sha256sum firmware.zip > firmware.sha256
- uses: "marvinpinto/action-automatic-releases@latest"
if: github.event_name != 'pull_request'
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
title: "Latest Firmware"
automatic_release_tag: "latest"
prerelease: true
files: firmware.{sha256,zip}