Build ImmortalWrt for N1 #1
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 ImmortalWrt for N1 | |
on: | |
workflow_dispatch: | |
inputs: | |
ssh: | |
description: 'SSH connection to Actions' | |
required: false | |
default: 'false' | |
schedule: | |
- cron: "0 0 1 * *" | |
env: | |
REPO_URL: https://github.com/immortalwrt/immortalwrt | |
REPO_BRANCH: openwrt-23.05 | |
CONFIG_FILE: N1/.config | |
DIY_SH: N1/diy.sh | |
FILES: N1/files | |
TZ: Asia/Shanghai | |
GITHUB_TOKEN: ${{ secrets.TOKEN }} | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: 准备完成 | |
uses: actions/checkout@main | |
- name: 清理磁盘空间 | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: 初始化编译环境 | |
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 mkdir -p /workdir | |
sudo chown $USER:$GROUPS /workdir | |
- name: 克隆源码 | |
working-directory: /workdir | |
run: | | |
df -hT $PWD | |
git clone $REPO_URL -b $REPO_BRANCH --single-branch --depth=1 openwrt | |
ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt | |
- name: 更新 & 安装 feeds | |
working-directory: ./openwrt | |
run: | | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
- name: 加载自定义配置 | |
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 连接到 Actions | |
uses: P3TERX/ssh2actions@main | |
if: (github.event.inputs.ssh == 'true') || contains(github.event.action, 'ssh') | |
- name: 下载软件包 | |
working-directory: ./openwrt | |
run: | | |
make defconfig | |
make download -j8 | |
find dl -size -1024c -exec ls -l {} \; | |
find dl -size -1024c -exec rm -f {} \; | |
- name: 编译固件 | |
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: 打包镜像文件 | |
if: ${{ env.compile_status }} == 'success' && !cancelled() | |
uses: unifreq/openwrt_packit@master | |
env: | |
OPENWRT_ARMVIRT: openwrt/bin/targets/*/*/*.tar.gz | |
KERNEL_VERSION_NAME: 5.4.y_6.6.y | |
PACKAGE_SOC: s905d | |
GZIP_IMGS: .xz | |
SCRIPT_DIY_PATH: N1/mk_s905d_n1.sh | |
WHOAMI: woni928 | |
OPENWRT_VER: $(date +"%Y.%m.%d") | |
SW_FLOWOFFLOAD: 0 | |
SFE_FLOW: 0 | |
ENABLE_WIFI_K510: 0 | |
- name: 生成发布标签 | |
if: ${{ env.PACKAGED_STATUS == 'success' }} && !cancelled() | |
run: | | |
echo "release_tag=$(date +"%Y.%m.%d-%H.%M")" >> ${GITHUB_OUTPUT} | |
touch release.txt | |
echo " | |
🍁 注意事项:首次使用建议全新刷写 | |
💻 适用机型: 斐讯N1 | |
📂 源码: ${{ env.REPO_URL }} | |
🌳 分支: ${{ env.REPO_BRANCH }} | |
⏱️ 编译时间: $(date +"%Y年%m月%d日%H时%M分") | |
🌐 管理地址: 192.168.123.2 | |
👤 用户名: root | |
🔒 密码: password | |
" >> release.txt | |
echo "tag_status=success" >> $GITHUB_ENV | |
- name: 发布固件到 Releases | |
uses: softprops/action-gh-release@v2 | |
if: ${{ env.tag_status == 'success' }} && !cancelled() | |
with: | |
tag_name: OpenWrt_${{ env.PACKAGED_OUTPUTDATE }} | |
files: ${{ env.PACKAGED_OUTPUTPATH }}/*.img.xz | |
body_path: release.txt | |
token: ${{ env.GITHUB_TOKEN }} | |