Feature/LSM6DSO (#112) #173
This file contains hidden or 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: 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_11_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_11_X_LSM6DSO/firmware.elf ./artifacts/0_11_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_11_X_LSM6DSO/firmware.uf2 ./artifacts/0_11_X_LSM6DSO | |
| 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_10_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_10_X_LSM6DSO/firmware.elf ./artifacts/0_10_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_10_X_LSM6DSO/firmware.uf2 ./artifacts/0_10_X_LSM6DSO | |
| 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_9_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_9_X_LSM6DSO/firmware.elf ./artifacts/0_9_X_LSM6DSO | |
| cp Firmware/LowLevel/.pio/build/0_9_X_LSM6DSO/firmware.uf2 ./artifacts/0_9_X_LSM6DSO | |
| - 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' && github.ref == 'refs/heads/main' | |
| 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} |