diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 52162506..d5f971d8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -98,6 +98,71 @@ jobs: ${{ matrix.debian_codename }}_pixelpilot-rk_*_arm64.deb ${{ matrix.debian_codename }}_pixelpilot-rk-dbgsym_*_arm64.deb + build_sbc: + name: Build for sbc-groundstations (${{ matrix.platform }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - runcam_wifilink + - emax_wyvern-link + - openipc_bonnet + - radxa_zero3 + steps: + - name: Checkout PixelPilot_rk + uses: actions/checkout@v4 + with: + submodules: recursive + path: PixelPilot_rk + + - name: Checkout sbc-groundstations + uses: actions/checkout@v4 + with: + repository: OpenIPC/sbc-groundstations + path: sbc-groundstations + + - name: Install deps + run: | + sudo apt-get update + sudo apt-get install -y cpio rsync bc qemu-user-static binfmt-support + + - name: Prepare workspace + run: | + sudo mkdir -p /mnt/workspace + sudo chown $USER:$USER /mnt/workspace + rsync -a sbc-groundstations/ /mnt/workspace/ + echo "CACHE_DATE=$(date +%m)" >> $GITHUB_ENV + + - name: Cache ccache + uses: actions/cache@v5 + with: + path: /tmp/ccache + key: ${{ matrix.platform }}-ccache-${{ env.CACHE_DATE }} + restore-keys: | + ${{ matrix.platform }}-ccache- + + - name: Build + working-directory: /mnt/workspace + run: | + set -x + mkdir -p /tmp/ccache + + export PIXELPILOT_OVERRIDE_SRCDIR=$GITHUB_WORKSPACE/PixelPilot_rk + export BR2_CCACHE_DIR=/tmp/ccache + DEFCONFIG=${{ matrix.platform }}_defconfig bash build.sh pixelpilot-rebuild + + - name: Extract pixelpilot binary + run: | + cp /mnt/workspace/output/${{ matrix.platform }}_defconfig/target/usr/bin/pixelpilot \ + sbc_${{ matrix.platform }}_pixelpilot + + - name: Upload binary + uses: actions/upload-artifact@v4 + with: + name: sbc-${{ matrix.platform }}-bin + path: sbc_${{ matrix.platform }}_pixelpilot + test: name: Test (${{ matrix.debian_codename }}) runs-on: ubuntu-latest @@ -136,6 +201,7 @@ jobs: needs: - build - build_deb + - build_sbc steps: - name: Checkout uses: actions/checkout@v4 @@ -157,6 +223,7 @@ jobs: bookworm_pixelpilot bookworm_pixelpilot-rk_*_arm64.deb bookworm_pixelpilot-rk-dbgsym_*_arm64.deb + sbc_*_pixelpilot config_osd.json pixelpilot.yaml gsmenu.sh @@ -173,6 +240,7 @@ jobs: bookworm_pixelpilot bookworm_pixelpilot-rk_*_arm64.deb bookworm_pixelpilot-rk-dbgsym_*_arm64.deb + sbc_*_pixelpilot config_osd.json pixelpilot.yaml gsmenu.sh