Build OpenWRT-IMM for N1 #13
This file contains 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: Build OpenWRT-IMM for N1 | |
on: | |
workflow_dispatch: | |
env: | |
REPO_URL: https://github.com/immortalwrt/immortalwrt | |
REPO_BRANCH: openwrt-23.05 | |
CONFIG_FILE: N1-IMM/.config | |
DIY_SH: N1-IMM/diy.sh | |
FILES: N1-IMM/files | |
TZ: Asia/Shanghai | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check machine configuration | |
run: | | |
echo "警告⚠" | |
echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" | |
echo "云编译建议取消勾选Node.js及其相关插件!" | |
echo "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5系列" | |
echo "--------------------------CPU信息--------------------------" | |
echo "CPU物理数量:$(cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l)" | |
echo -e "CPU核心及版本信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" | |
echo "--------------------------内存信息--------------------------" | |
echo "已安装内存详细信息:" | |
sudo lshw -short -C memory | grep GiB | |
echo -e "\n" | |
echo "--------------------------硬盘信息--------------------------" | |
echo -e "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l) \n" | |
echo "硬盘详情:" | |
df -Th | |
- name: Before freeing up disk space | |
run: | | |
echo "Before freeing up disk space" | |
echo "==============================================================================" | |
df -hT | |
echo "==============================================================================" | |
- name: "Optimize Disk Space" | |
uses: "hugoalh/[email protected]" | |
with: | |
operate_sudo: "True" | |
general_include: ".+" | |
general_exclude: |- | |
^GCC$ | |
^G\+\+$ | |
Clang | |
LLVM | |
docker_include: ".+" | |
docker_prune: "True" | |
docker_clean: "True" | |
apt_prune: "True" | |
apt_clean: "True" | |
homebrew_prune: "True" | |
homebrew_clean: "True" | |
npm_prune: "True" | |
npm_clean: "True" | |
os_swap: "True" | |
- name: Freeing up disk space | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 10240 | |
swap-size-mb: 1 | |
remove-dotnet: 'true' | |
remove-android: 'true' | |
remove-haskell: 'true' | |
remove-codeql: 'true' | |
remove-docker-images: 'true' | |
- name: Free up disk space complete | |
run: | | |
echo "Free up disk space complete" | |
echo "==============================================================================" | |
df -hT | |
echo "==============================================================================" | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Initialize environment | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: | | |
sudo -E apt-get -qq update -y | |
sudo -E apt-get -qq install -y $(curl -fsSL https://raw.githubusercontent.com/nantayo/My-Pkg/master/2305) | |
sudo -E apt-get -qq autoremove --purge | |
sudo -E apt-get -qq clean | |
sudo timedatectl set-timezone "$TZ" | |
sudo chown $USER:$GROUPS $GITHUB_WORKSPACE | |
- name: Clone source code | |
working-directory: ./ | |
run: | | |
git clone $REPO_URL -b $REPO_BRANCH openwrt | |
- name: cache wrt build | |
uses: stupidloud/cachewrtbuild@main | |
with: | |
ccache: 'true' | |
mixkey: N1-IMM-${{ env.REPO_BRANCH }} | |
prefix: ${{ github.workspace }}/openwrt | |
- name: Update & Install feeds | |
working-directory: ./openwrt | |
run: | | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
- name: Load custom config | |
run: | | |
[ -e $FILES ] && mv $FILES openwrt/files | |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config | |
chmod +x $DIY_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_SH | |
# - name: SSH connect to Actions | |
# uses: P3TERX/ssh2actions@main | |
# if: (github.event.inputs.ssh == 'true') || contains(github.event.action, 'ssh') | |
- name: Download package | |
working-directory: ./openwrt | |
run: | | |
make defconfig | |
make download -j8 | |
find dl -size -1024c -exec ls -l {} \; | |
find dl -size -1024c -exec rm -f {} \; | |
- name: Compile the firmware | |
run: | | |
chmod -R 755 openwrt | |
cd openwrt | |
echo -e "$(nproc) thread compile" | |
make -j$(nproc) || make -j1 || make -j1 V=s | |
echo "compile_status=success" >> $GITHUB_ENV | |
- name: copy to upload file | |
if: (!cancelled()) | |
run: | | |
df -hT | |
mkdir upload | |
cp openwrt/bin/targets/*/*/*.tar.gz upload/ | |
- name: Package OpenWrt Firmware | |
if: ${{ env.compile_status }} == 'success' && !cancelled() | |
uses: unifreq/openwrt_packit@master | |
env: | |
OPENWRT_ARMVIRT: openwrt/bin/targets/*/*/*.tar.gz | |
KERNEL_VERSION_NAME: 5.15.148 | |
KERNEL_AUTO_LATEST: false | |
PACKAGE_SOC: s905d | |
WHOAMI: fightroad | |
SW_FLOWOFFLOAD: 0 | |
SFE_FLOW: 0 | |
- name: mv output to upload file | |
run: mv /opt/openwrt_packit/output/* upload/ | |
- name: Upload OpenWrt Firmware to Release | |
uses: ncipollo/release-action@main | |
if: ${{ env.PACKAGED_STATUS == 'success' }} && !cancelled() | |
with: | |
tag: immortalwrt_N1_${{ env.PACKAGED_OUTPUTDATE }} | |
artifacts: upload/* | |
allowUpdates: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
body: | | |
基于immortalwrt openwrt构建 | |
首次使用建议全新刷写 | |
* 基本信息 | |
IP: 192.168.2.2 | |
账户: root | |
密码: password | |
- name: Delete old releases | |
uses: dev-drprasad/delete-older-releases@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
keep_latest: 5 | |
delete_tags : true |