├── .github └── workflows │ └── CI.yml └── ReleaseNote.txt /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # Controls when the action will run. 4 | on: 5 | push: 6 | workflow_dispatch: 7 | 8 | env: 9 | src_git: https://github.com/hanwckf/rt-n56u.git 10 | build_dir: /opt/rt-n56u 11 | images_dir: /opt/images 12 | ENABLED_CFG: | 13 | CONFIG_FIRMWARE_INCLUDE_TCPDUMP 14 | CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT 15 | CONFIG_FIRMWARE_INCLUDE_GDUT_DRCOM 16 | CONFIG_FIRMWARE_INCLUDE_DOGCOM 17 | CONFIG_FIRMWARE_INCLUDE_MINIEAP 18 | CONFIG_FIRMWARE_INCLUDE_NJIT_CLIENT 19 | CONFIG_FIRMWARE_INCLUDE_NAPT66 20 | CONFIG_FIRMWARE_INCLUDE_VLMCSD 21 | CONFIG_FIRMWARE_INCLUDE_TTYD 22 | CONFIG_FIRMWARE_INCLUDE_HTOP 23 | CONFIG_FIRMWARE_INCLUDE_NANO 24 | CONFIG_FIRMWARE_INCLUDE_MENTOHUST 25 | DISABLED_CFG: | 26 | CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS 27 | CONFIG_FIRMWARE_INCLUDE_SSSERVER 28 | CONFIG_FIRMWARE_INCLUDE_SOFTETHERVPN_SERVER 29 | CONFIG_FIRMWARE_INCLUDE_SOFTETHERVPN_CLIENT 30 | CONFIG_FIRMWARE_INCLUDE_SOFTETHERVPN_CMD 31 | CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER 32 | CONFIG_FIRMWARE_INCLUDE_FRPC 33 | CONFIG_FIRMWARE_INCLUDE_FRPS 34 | CONFIG_FIRMWARE_INCLUDE_TUNSAFE 35 | CONFIG_FIRMWARE_INCLUDE_WIREGUARD 36 | 37 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 38 | jobs: 39 | build: 40 | name: build 41 | runs-on: ubuntu-20.04 42 | env: 43 | build_variant: ${{ matrix.build_variant }} 44 | targets: ${{ matrix.targets }} 45 | strategy: 46 | matrix: 47 | include: 48 | - build_variant: "mt7620" 49 | targets: "PSG1208 PSG1218 NEWIFI-MINI MI-MINI MI-3 OYE-001" 50 | - build_variant: "mt7628" 51 | targets: "360P2 HC5861B HC5761A HC5661A MI-NANO" 52 | - build_variant: "mt7621" 53 | targets: "K2P DIR-878 RM2100 CR660x JCG-Q20 MI-R4A" 54 | - build_variant: "mt7621-usb-1" 55 | targets: "MSG1500 WR1200JS E8820V2 NEWIFI3 MI-R3G B70" 56 | - build_variant: "mt7621-usb-2" 57 | targets: "JCG-836PRO JCG-AC860M JCG-Y2 DIR-882" 58 | steps: 59 | - uses: actions/checkout@v2 60 | - name: Prepare environment 61 | run: | 62 | sudo apt update 63 | sudo apt install libtool-bin gperf python-docutils autopoint gettext zip 64 | mkdir -p $images_dir 65 | cp -f ./ReleaseNote.txt $images_dir 66 | - name: Clone source 67 | run: | 68 | git clone --depth=1 $src_git $build_dir 69 | cd $build_dir 70 | GIT_VERSION="$(git rev-parse --short=7 HEAD 2>/dev/null)" 71 | build_date="$(date +%Y%m%d)" 72 | echo "build_date=${build_date}" >> $GITHUB_ENV 73 | echo "image_suffix=${GIT_VERSION}_${build_date}" >> $GITHUB_ENV 74 | echo "image_name=images_${build_variant}_${GIT_VERSION}" >> $GITHUB_ENV 75 | - name: Run shellcheck 76 | run: | 77 | cd $build_dir 78 | if [ -f ./trunk/tools/shellcheck.sh ]; then sh ./trunk/tools/shellcheck.sh; fi 79 | - name: Prepare toolchain 80 | run: | 81 | cd $build_dir/toolchain-mipsel 82 | sh dl_toolchain.sh 83 | - name: Modify configs 84 | run: | 85 | cd $build_dir/trunk/configs/templates 86 | for m in $targets; do if [ -f $m.config ]; then \ 87 | for n in $ENABLED_CFG; do sed -i "/${n}/c${n}=y" $m.config; done; \ 88 | for n in $DISABLED_CFG; do sed -i "/${n}/c${n}=n" $m.config; done; \ 89 | fi; done 90 | - name: Start build 91 | run: | 92 | cd $build_dir/trunk 93 | for m in $targets; do fakeroot ./build_firmware_ci $m; \ 94 | if [ $? = 0 ]; then cp -f images/*.trx $images_dir/$m.trx; else exit 1; fi; \ 95 | ./clear_tree_simple >/dev/null 2>&1; done 96 | - name: Create archive 97 | if: ${{ success() }} 98 | run: | 99 | echo -e "Build Date: ${build_date}\n" >> ${images_dir}/ReleaseNote.txt 100 | cd $build_dir && git log -1 |tee -a ${images_dir}/ReleaseNote.txt 101 | cd $images_dir 102 | for m in $targets; do zip ${m}_${image_suffix}.zip $m.trx ReleaseNote.txt; done 103 | 7z a -mx=9 ${image_name}.7z *.zip 104 | - name: Upload images to Artifact 105 | if: ${{ success() }} 106 | uses: actions/upload-artifact@v2.2.1 107 | with: 108 | name: ${{ env.image_name }} 109 | path: ${{ env.images_dir }}/${{ env.image_name }}.7z 110 | -------------------------------------------------------------------------------- /ReleaseNote.txt: -------------------------------------------------------------------------------- 1 | Source: https://github.com/hanwckf/rt-n56u 2 | CI: https://github.com/hanwckf/scut_padavan_build/actions 3 | --------------------------------------------------------------------------------