--- name: Build and deploy nightly release on: schedule: - cron: '0 2 * * *' # run at 2 AM UTC workflow_dispatch: concurrency: group: 'nightly' cancel-in-progress: true jobs: build: name: Build firmware 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 - 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 firmware ${{ matrix.target }} env: FLAVOR: ${{ matrix.target }} EDGETX_VERSION_SUFFIX: nightly run: ./tools/build-gh.sh - name: Package firmware ${{ matrix.target }} uses: actions/upload-artifact@v4 with: name: edgetx-firmware-nightly-${{ matrix.target }} path: | fw.json LICENSE *.bin retention-days: 15 if-no-files-found: error deploy: name: Deploy release runs-on: ubuntu-latest needs: build steps: - name: Download artifacts uses: actions/download-artifact@v4 with: pattern: edgetx-firmware-nightly-* path: edgetx-firmware-nightly merge-multiple: true - name: Compose release filename run: echo "release_filename=edgetx-firmware-nightly-${GITHUB_SHA::8}.zip" >> $GITHUB_ENV - name: Zip release file uses: montudor/action-zip@v1 with: args: zip -qq -j -r ${{ env.release_filename }} ./edgetx-firmware-nightly - name: Deploy nightly release uses: crowbarmaster/GH-Automatic-Releases@latest with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: 'nightly' prerelease: true files: | *.zip