From 09851b5d100348f0e00ad1ce12dc2f5e0dccefd8 Mon Sep 17 00:00:00 2001 From: Daniel Pawlik Date: Mon, 12 May 2025 15:29:20 +0200 Subject: [PATCH] Add bpi-r4 GH action with mt7996 firmware from mediatek feed --- .../workflows/bpi-r4-main_router-6-12.yaml | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 .github/workflows/bpi-r4-main_router-6-12.yaml diff --git a/.github/workflows/bpi-r4-main_router-6-12.yaml b/.github/workflows/bpi-r4-main_router-6-12.yaml new file mode 100644 index 0000000..fe1d969 --- /dev/null +++ b/.github/workflows/bpi-r4-main_router-6-12.yaml @@ -0,0 +1,138 @@ +--- +name: BPI-R4 + main_router packages based on DangoWRT 6.12 branch + +on: + workflow_dispatch: + +env: + REMOTE_REPOSITORY: danpawlik/openwrt + # REMOTE_BRANCH: main + REMOTE_BRANCH: mediatek-6.12 + RELEASE_PREFIX: Mediatek_mt7988a_bpi-r4 + +jobs: + check_commits: + name: Check Commits + runs-on: ubuntu-24.04 + outputs: + latest_commit_sha: ${{ steps.get_sha.outputs.latest_commit_sha }} + steps: + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Get the latest commit SHA + id: get_sha + run: | + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_ENV + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + build: + name: Build OpenWRT for BPI-R4 with BE14 and main-router packages + needs: [check_commits] + runs-on: ubuntu-24.04 + steps: + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y \ + build-essential clang flex bison g++ gawk \ + gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev \ + python3-setuptools rsync swig unzip zlib1g-dev file wget curl zstd \ + git + sudo apt full-upgrade -y + + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Update and install feeds + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + + - name: Configure firmware image + run: | + curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/mediatek/mt7988a/bpi-r4 > .config + curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/main-router >> .config + curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/snapshot >> .config + +# - name: Enable openssl +# run: | +# sed -i '/CONFIG_PACKAGE_wpad-mbedtls=y/d' .config +# curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/openssl >> .config + + - name: Enable wolfssl + run: | + sed -i '/CONFIG_PACKAGE_wpad-mbedtls=y/d' .config + curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/wolfssl >> .config + + - name: Add librespeed-go + run: | + echo "CONFIG_PACKAGE_librespeed-go=y" >> .config + + - name: Run defconfig + run: | + make defconfig + + - name: Remove packages that are marked as modules + run: | + grep "=m" .config | grep -v 'CONFIG_PACKAGE_libustream-mbedtls=m' | while read -r line; do module=$(echo "$line" | cut -f1 -d'='); sed -i "s/^$line$/# $module is not set/" .config; done + + - name: Build the firmware image + run: make -j $(nproc) defconfig download world + + - name: Package output + run: tar -cvf bpi_r4-images.tar bin/targets/mediatek/filogic + + - name: Add config file + run: cp .config bin/targets/mediatek/filogic/config-full + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: bpi_r4-images + path: bpi_r4-images.tar + + release: + name: Create release + needs: [build, check_commits] + if: needs.build.result == 'success' + runs-on: ubuntu-24.04 + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bpi_r4-images + + - name: Extract artifacts + run: tar xf bpi_r4-images.tar + + - name: Get current date + run: echo "RELEASE_DATE=$(date +%F)" >> $GITHUB_ENV + + - name: Create release + uses: softprops/action-gh-release@master + with: + files: bin/targets/mediatek/filogic/* + tag_name: ${{ env.RELEASE_PREFIX }}-${{ env.REMOTE_BRANCH }}-${{ env.RELEASE_DATE }} + name: OpenWRT BPI-R4 + main_router packages based on kernel 6.12 - ${{ env.REMOTE_BRANCH }} - ${{ env.RELEASE_DATE }} + body: | + Thanks to DangoWRT, we can test builds based on kernel 6.12. + + Updated prebuilt images for ${{ env.RELEASE_DATE }} with BE14 and main_router packages with BE14 EEPROM patch. + Build Commit: ${{ needs.check_commits.outputs.latest_commit_sha }} + + Also include newest firmware from Mediatek Feed. + + - name: Clean up old releases + uses: dev-drprasad/delete-older-releases@master + with: + keep_latest: 5 + delete_tags: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}