OpenWrt Builder #42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: OpenWrt Builder | |
| on: | |
| repository_dispatch: | |
| workflow_dispatch: | |
| env: | |
| UPLOAD_BIN_DIR: true | |
| UPLOAD_FIRMWARE: true | |
| UPLOAD_RELEASE: false | |
| TZ: Europe/Madrid | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Initialization environment | |
| env: | |
| DEBIAN_FRONTEND: noninteractive | |
| run: | | |
| sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL | |
| sudo docker image prune --all --force | |
| sudo -E apt-get -qq update | |
| sudo -E ./devenv/dependencies.sh | |
| sudo -E apt-get -qq autoremove --purge | |
| sudo -E apt-get -qq clean | |
| sudo timedatectl set-timezone "$TZ" | |
| - name: "Clone OpenWrt source code" | |
| run: | | |
| df -hT $PWD | |
| git clone --depth=1 --branch "main" https://git.openwrt.org/openwrt/openwrt.git openwrt | |
| - name: Load msm89xx target and uz801 packages | |
| run: | | |
| git apply --unsafe-paths enable_wcn36xx_mac80211.patch | |
| mv msm89xx openwrt/target/linux/msm89xx | |
| mv packages openwrt/package/uz801 | |
| if [ "${{ inputs.openwrt_version }}" == "openwrt-24.10" ]; then | |
| sed -i '/^KERNEL_PATCHVER/c\KERNEL_PATCHVER:=6.6' openwrt/target/linux/msm89xx/Makefile | |
| fi | |
| - name: Update and install feeds | |
| run: | | |
| cd openwrt | |
| rm -rf tmp | |
| ./scripts/feeds update -a | |
| ./scripts/feeds install -a | |
| - name: "Load diffconfig" | |
| run: | | |
| [ -f diffconfig ] && mv diffconfig openwrt/.config | |
| - name: Download package | |
| id: package | |
| run: | | |
| cd openwrt | |
| make defconfig | |
| make download -j8 | |
| find dl -size -1024c -exec ls -l {} \; || true | |
| find dl -size -1024c -exec rm -f {} \; || true | |
| - name: Compile the firmware | |
| id: compile | |
| run: | | |
| cd openwrt | |
| echo -e "$(nproc) thread compile" | |
| make -j$(nproc) || make -j1 || make -j1 V=s | |
| echo "status=success" >> $GITHUB_OUTPUT | |
| grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME | |
| [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV | |
| echo "FILE_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV | |
| - name: Organize files | |
| id: organize | |
| if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() | |
| run: | | |
| cd openwrt/bin/targets/*/* | |
| rm -rf packages | |
| echo "FIRMWARE=$PWD" >> $GITHUB_ENV | |
| echo "status=success" >> $GITHUB_OUTPUT | |
| - name: Upload firmware | |
| uses: actions/upload-artifact@v4 | |
| if: steps.organize.outputs.status == 'success' && !cancelled() | |
| with: | |
| name: openwrt_firmware_${{ env.DEVICE_NAME }}_${{ env.FILE_DATE }} | |
| path: | | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3-squashfs-gpt_both0.bin | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3-squashfs-boot.img | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3-squashfs-system.img | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3.manifest | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3-flash.sh | |
| ${{ env.FIRMWARE }}/openwrt-msm89xx-msm8916-yiming-uz801v3-firmware.zip |