--- name: Run tests and package firmware on: push: branches: - 'main' tags: - v* paths-ignore: - '**.md' - '.github/ISSUE_TEMPLATE/**' - '.github/workflows/nightly.yml' - '.github/workflows/linux_cpn.yml' - '.github/workflows/macosx_cpn.yml' - '.github/workflows/win-cpn-32.yml' - '.github/workflows/win_cpn-64.yml' - 'companion/**' - '.gitpod.yml' - '.devcontainer/**' - 'fw.json' pull_request: branches: - 'main' paths-ignore: - '**.md' - '.github/ISSUE_TEMPLATE/**' - '.github/workflows/nightly.yml' - '.github/workflows/linux_cpn.yml' - '.github/workflows/macosx_cpn.yml' - '.github/workflows/win-cpn-32.yml' - '.github/workflows/win_cpn-64.yml' - 'companion/**' - '.gitpod.yml' - '.devcontainer/**' - 'fw.json' workflow_dispatch: jobs: test: name: Run tests runs-on: ubuntu-latest strategy: matrix: target: - x9dp2019 - tx16s - nv14 - el18 - pl18 - pl18ev - t12 - t12max - t15 - t16 - t18 - t8 - tlite - t20 - t14 - t20v2 - tx12 - x10 - x12s - x7 - x9d - x9dp - x9e - x9lite - x9lites - xlite - xlites - mt12 - gx12 - nb4p container: image: ghcr.io/edgetx/edgetx-dev:latest volumes: - ${{ github.workspace }}:/src steps: - name: Check out the repo uses: actions/checkout@v4 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 }} run: | echo "Running commit tests" ./tools/commit-tests.sh build: name: Run builds needs: test runs-on: ubuntu-latest strategy: matrix: target: - nv14;el18 - pl18;pl18ev - t12;t12max - t15;t16;t18 - t8;zorro;pocket;mt12;commando8 - tlite;tpro;tprov2;tpros;bumblebee;lr3pro - t20;t20v2;t14 - tx12;tx12mk2;boxer;gx12 - tx16s - f16 - v16 - x10;x10express - x12s - x7;x7access - x9d;x9dp;x9dp2019 - x9e;x9e-hall - x9lite;x9lites - xlite;xlites - mt12;gx12 - nb4p container: image: ghcr.io/edgetx/edgetx-dev:latest volumes: - ${{ github.workspace }}:/src steps: - name: Check out the repo uses: actions/checkout@v4 with: submodules: recursive - name: Build ${{ matrix.target }} env: FLAVOR: ${{ matrix.target }} run: | echo "Running firmware build" ./tools/build-gh.sh - name: Upload ${{ matrix.target }} uses: actions/upload-artifact@v4 with: name: firmware-${{ matrix.target }} path: | fw.json LICENSE *.bin 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