NodeJS 20 is EOL in April, so Github is starting to warn about NodeJS 20 Actions prior to phassing out in June.
157 lines
3.7 KiB
YAML
157 lines
3.7 KiB
YAML
---
|
|
name: Run tests and package firmware
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
- '[0-9]+.[0-9]+'
|
|
tags:
|
|
- v*
|
|
paths: &trigger-paths
|
|
- '.github/workflows/build_fw.yml'
|
|
- 'cmake/**'
|
|
- 'radio/**'
|
|
- 'tools/build-gh.sh'
|
|
- '.gitmodules'
|
|
- 'CMakeLists.txt'
|
|
pull_request:
|
|
branches:
|
|
- 'main'
|
|
- '[0-9]+.[0-9]+'
|
|
paths: *trigger-paths
|
|
|
|
jobs:
|
|
test:
|
|
name: Run tests
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
github.event_name != 'pull_request' ||
|
|
!contains(github.event.pull_request.labels.*.name, 'ci: skip-fw')
|
|
strategy:
|
|
matrix:
|
|
target:
|
|
- x9dp2019
|
|
- tx15
|
|
- tx16s
|
|
- tx16smk3
|
|
- nv14
|
|
- el18
|
|
- pl18
|
|
- pl18ev
|
|
- t12max
|
|
- t15
|
|
- t16
|
|
- t18
|
|
- tlite #STM32F2
|
|
- t20
|
|
- t14
|
|
- t20v2
|
|
- tx12 #STM32F2
|
|
- x10
|
|
- x12s
|
|
- x9e
|
|
- mt12
|
|
- gx12
|
|
- nb4p
|
|
- st16
|
|
- t15pro
|
|
- pa01
|
|
container:
|
|
image: ghcr.io/edgetx/edgetx-dev:latest
|
|
volumes:
|
|
- ${{ github.workspace }}:/src
|
|
steps:
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
# fetch-depth: 0 # https://github.com/actions/checkout#Fetch-all-history-for-all-tags-and-branches
|
|
|
|
- name: Test ${{ matrix.target }}
|
|
env:
|
|
FLAVOR: ${{ matrix.target }}
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 4
|
|
run: |
|
|
echo "Running commit tests"
|
|
./tools/commit-tests.sh
|
|
|
|
build:
|
|
name: Run builds
|
|
needs: test
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
github.event_name != 'pull_request' ||
|
|
!contains(github.event.pull_request.labels.*.name, 'ci: skip-fw')
|
|
strategy:
|
|
matrix:
|
|
target:
|
|
- nv14;el18
|
|
- pl18;pl18ev;pl18u
|
|
- pa01
|
|
- t12max
|
|
- t15;t16;t18
|
|
- zorro;pocket;mt12;commando8
|
|
- tprov2;tpros;bumblebee
|
|
- t20;t20v2;t14
|
|
- tx12mk2;boxer;gx12
|
|
- tx15
|
|
- tx16s
|
|
- tx16smk3
|
|
- f16
|
|
- v12;v14;v16
|
|
- x10;x10express
|
|
- x12s
|
|
- x7access
|
|
- x9dp2019
|
|
- x9e;x9e-hall
|
|
- mt12;gx12
|
|
- nb4p
|
|
- st16
|
|
- t15pro
|
|
container:
|
|
image: ghcr.io/edgetx/edgetx-dev:latest
|
|
volumes:
|
|
- ${{ github.workspace }}:/src
|
|
steps:
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Build ${{ matrix.target }}
|
|
env:
|
|
FLAVOR: ${{ matrix.target }}
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 4
|
|
run: |
|
|
echo "Running firmware build"
|
|
./tools/build-gh.sh
|
|
|
|
- name: Upload ${{ matrix.target }}
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: firmware-${{ matrix.target }}
|
|
path: |
|
|
fw.json
|
|
LICENSE
|
|
*.bin
|
|
*.uf2
|
|
retention-days: 15
|
|
if-no-files-found: error
|
|
|
|
package:
|
|
name: Package firmwares
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Compose release filename
|
|
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
|
|
run: echo "artifact_name=edgetx-firmware-${GITHUB_REF##*/}" >> $GITHUB_ENV
|
|
|
|
- name: Merge firmware artifact packages
|
|
uses: actions/upload-artifact/merge@v4
|
|
with:
|
|
name: "${{ env.artifact_name }}"
|
|
pattern: firmware-*
|
|
delete-merged: true
|
|
retention-days: 15
|