Skip to content

Commit

Permalink
Update immortalwrt_24.10.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
richaradlee authored Dec 21, 2024
1 parent 59f157f commit 2ded0d1
Showing 1 changed file with 15 additions and 161 deletions.
176 changes: 15 additions & 161 deletions .github/workflows/immortalwrt_24.10.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,181 +9,35 @@ on:

env:
CLASH_KERNEL: amd64
CACHE_TOOLCHAIN: true
UPLOAD_FIRMWARE: true
UPLOAD_BIN_DIR: false
UPLOAD_ARTIFACT: true
UPLOAD_RELEASE: true
TZ: Asia/Shanghai

jobs:
build:
runs-on: Ubuntu-22.04
merge:
runs-on: Ubuntu-22.04
if: github.event.repository.owner.id == github.event.sender.id

name: Build ${{matrix.target}}
name: Build ${{ matrix.target }}
strategy:
fail-fast: false
matrix:
target: [immortalwrt_24.10]
target: [Lean]

steps:
- name: Checkout
uses: actions/checkout@main

- 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 apt-get -qq install ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev rename
sudo -E apt-get -qq autoremove --purge
sudo -E apt-get -qq clean
sudo timedatectl set-timezone "$TZ"
- name: Get current date
id: date
run: |
echo "date=$(date +'%Y.%m.%d-%H%M')" >> $GITHUB_ENV
echo "date2=$(date +'%m/%d %Y')" >> $GITHUB_ENV
echo "date3=$(date +'%m.%d')" >> $GITHUB_ENV
echo "DOCKERTAG=${{ secrets.DOCKER_ID }}/openwrt-6p:latest" >> $GITHUB_ENV
VERSION="$(echo "${{github.event.action}}" | grep -Eo " [0-9.]+" | sed -e 's/ //')" || true
[ "$VERSION" ] && echo "VERSION=$VERSION" >> $GITHUB_ENV || echo "VERSION=$(date +'%m.%d')" >> $GITHUB_ENV
- name: Clone source code
env:
REPO_URL: https://github.com/immortalwrt/immortalwrt
REPO_BRANCH: openwrt-24.10
TZ: Asia/Shanghai
run: |
git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt
cd openwrt
sed -i '$a src-git smpackage https://github.com/Shawleevip/small-package' feeds.conf.default
- name: Free up disk space
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo mkdir -p -m 777 /mnt/openwrt/dl /mnt/openwrt/bin /mnt/openwrt/staging_dir
ln -sf /mnt/openwrt/dl openwrt/dl
ln -sf /mnt/openwrt/bin openwrt/bin
ln -sf /mnt/openwrt/staging_dir openwrt/staging_dir
- name: Update feeds
working-directory: ./openwrt
run: |
./scripts/feeds update -a
- name: Defconfig ${{matrix.target}}
env:
CONFIG_FILE: '${{matrix.target}}.config'
run: |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config
chmod +x ./customize.sh && ./customize.sh
cd openwrt
rm -rf feeds/packages/lang/golang
git clone https://github.com/kenzok8/golang feeds/packages/lang/golang
cp -f feeds/smpackage/.github/diy/default-settings package/emortal/default-settings/files/99-default-settings
rm -rf feeds/packages/net/{alist,adguardhome,brook,gost,mosdns,redsocks*,smartdns,trojan*,v2ray*,xray*}
rm -rf feeds/packages/luci/{luci-app-homeproxy,luci-app-openclash,luci-app-passwall}
rm -rf feeds/smpackage/luci-theme-design && git clone -b js --single-branch https://github.com/kenzok78/luci-theme-design feeds/smpackage/luci-theme-design
sed -i 's/luci-theme-bootstrap/luci-theme-argon/g' feeds/luci/collections/luci/Makefile
patch -p1 < "feeds/smpackage/.github/diy/patches/0004-luci-mod-status-firewall-disable-legacy-firewall-rul.patch"
cp -f feeds/smpackage/.github/diy/banner package/base-files/files/etc/banner
sed -i "s/%D %V, %C/openwrt $(date +'%m.%d') by Richard/g" package/base-files/files/etc/banner
#cp -Rf feeds/smpackage/.github/diy/.packages/files/* files
./scripts/feeds update -a && ./scripts/feeds install -a
cp -f feeds/smpackage/.github/diy/${{matrix.target}}.config .config && make defconfig
- name: Download package
working-directory: ./openwrt
run: |
make download -j$(nproc)
find dl -size -1024c -exec rm -f {} \;
- name: Cache
uses: klever1988/cachewrtbuild@main
with:
ccache: 'true'
prefix: ${{ github.workspace }}/openwrt

- name: Check space usage
run: |
shopt -s extglob
cd openwrt
if [[ -f staging_dir/*${{ env.MTARGET }}*/bin ]]; then
rm -rf staging_dir/!(*${{ env.MTARGET }}*|host|hostpkg) build_dir/!(*${{ env.MTARGET }}*|host|hostpkg)
fi
df -hT
- name: Compile the firmware
working-directory: ./openwrt
run: |
echo -e "$(($(nproc)+1)) thread compile"
make -j$(($(nproc)+1)) || make -j1 V=s
- name: Upload bin directory
uses: actions/upload-artifact@main
if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true'
with:
name: OpenWrt_bin${{ env.DEVICE_NAME }}${{ env.FILE_DATE }}
path: openwrt/bin

- name: Organize files
id: organize
if: env.UPLOAD_FIRMWARE == 'true' && !cancelled()
run: |
mkdir firmware
mv -f openwrt/bin/targets/*/*/{*combined*,*sysupgrade*} ./firmware/ 2>/dev/null || true
cp openwrt/.config ./firmware/${{matrix.target}}.config
cp openwrt/build_dir/target-*/linux-*/linux-*/.config ./firmware/${{matrix.target}}_kernel.config
cd firmware
echo "v${{ env.date2 }}" > version.txt
md5=$((md5sum *squashfs-sysupgrade* || md5sum *squashfs-combined-efi*) | awk '{print $1}') 2>/dev/null
echo $md5 >> version.txt
rename -v "s/^immortalwrt/${{ env.VERSION }}-openwrt/" * || true
rename -v "s/friendlyarm_//" *gz
echo $md5 >> version.txt
echo ${{matrix.target}} >> version.txt
rm -rf sha256sums
echo "FIRMWARE=$PWD" >> $GITHUB_ENV
- name: Check Space Usage
if: (!cancelled())
run: df -hT

- name: Generate release tag
id: tag
if: env.UPLOAD_RELEASE == 'true' && !cancelled()
run: |
echo -e " 🎈:\n" >> release.txt
echo "status=success" >> $GITHUB_OUTPUT
- name: Upload firmware to release
uses: softprops/action-gh-release@v2
if: steps.tag.outputs.status == 'success' && !cancelled()
env:
GITHUB_TOKEN: ${{ secrets.SEARIY_TOKEN }}
with:
files: "${{ env.FIRMWARE }}/*"
name: ${{ env.date2 }} ${{matrix.target}}
tag_name: ${{ env.date }}_${{matrix.target}}
body_path: release.txt

- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@main
# 优化 1: 启用缓存,优化构建时间
- name: Cache build files
uses: actions/cache@v3
with:
retain_days: 1
keep_minimum_runs: 0
path: |
./openwrt/dl
./openwrt/staging_dir
key: ${{ runner.os }}-openwrt-${{ matrix.target }}
restore-keys: |
${{ runner.os }}-openwrt-
- name: Remove old Releases
uses: dev-drprasad/delete-older-releases@master
if: env.UPLOAD_RELEASE == 'true' && !cancelled()
with:
keep_latest: 6
delete_tags: true
env:
GITHUB_TOKEN: ${{ secrets.SEARIY_TOKEN }}

0 comments on commit 2ded0d1

Please sign in to comment.