forked from omron8048/FusionWRT_x86_x64
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
214 additions
and
9 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
#================================================= | ||
# https://github.com/P3TERX/Actions-OpenWrt | ||
# Description: Build OpenWrt using GitHub Actions | ||
# Lisence: MIT | ||
# Author: P3TERX | ||
# Blog: https://p3terx.com | ||
#================================================= | ||
|
||
name: x86-x64-5.x-测试版 | ||
|
||
on: | ||
repository_dispatch: | ||
workflow_dispatch: | ||
# schedule: | ||
# - cron: 0 17 * * * | ||
# watch: | ||
# types: started | ||
|
||
env: | ||
REPO_URL: https://github.com/xiaoxifu64/lede | ||
REPO_BRANCH: master | ||
CONFIG_FILE: configs/lean/test.config | ||
DIY_SH: scripts/simplify.sh | ||
KMODS_IN_FIRMWARE: true | ||
UPLOAD_WETRANSFER: false #上传到WeTransfer | ||
UPLOAD_RELEASE: true | ||
TZ: Asia/Shanghai | ||
|
||
jobs: | ||
Build: | ||
runs-on: self-hosted | ||
outputs: | ||
OPENWRTROOT: ${{ steps.update.outputs.OPENWRTROOT }} | ||
PLATFORM: ${{ steps.compile.outputs.PLATFORM }} | ||
TARGET: ${{ steps.compile.outputs.TARGET }} | ||
SUBTARGET: ${{ steps.compile.outputs.SUBTARGET }} | ||
FIRMWARE: ${{ steps.compile.outputs.FIRMWARE }} | ||
GENERATE_STATUS: ${{ steps.generate.outputs.GENERATE_STATUS }} | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Clone Source Code | ||
run: | | ||
df -hT $PWD | ||
git clone $REPO_URL -b $REPO_BRANCH openwrt | ||
- name: Update Feeds | ||
id: update | ||
run: | | ||
cd openwrt | ||
echo "OPENWRTROOT=$PWD" >> $GITHUB_ENV | ||
echo "OPENWRTROOT=$PWD" >> $GITHUB_OUTPUT | ||
mkdir customfeeds | ||
git clone --depth=1 https://github.com/DHDAXCW/packages customfeeds/packages | ||
git clone --depth=1 https://github.com/DHDAXCW/luci customfeeds/luci | ||
chmod +x ../scripts/*.sh | ||
../scripts/hook-feeds.sh | ||
- name: Install Feeds | ||
run: | | ||
cd $OPENWRTROOT | ||
./scripts/feeds install -a | ||
- name: Load Custom Configuration | ||
run: | | ||
[ -e files ] && mv files $OPENWRTROOT/files | ||
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE $OPENWRTROOT/.config | ||
chmod +x scripts/*.sh | ||
cd $OPENWRTROOT | ||
../$DIY_SH | ||
../scripts/preset-clash-core.sh amd64 | ||
../scripts/preset-terminal-tools.sh | ||
make defconfig | ||
- name: Download Package | ||
id: package | ||
run: | | ||
cd $OPENWRTROOT | ||
cat .config | ||
make download -j50 | ||
find dl -size -1024c -exec ls -l {} \; | ||
find dl -size -1024c -exec rm -f {} \; | ||
- name: Compile Packages | ||
id: compile | ||
run: | | ||
cd $OPENWRTROOT | ||
echo -e "$(nproc) thread compile" | ||
make tools/compile -j1 V=s | ||
make toolchain/compile -j1 V=s | ||
make target/compile -j1 V=s | ||
make diffconfig | ||
make package/compile -j1 V=s | ||
make package/index | ||
cd $OPENWRTROOT/bin/packages/* | ||
PLATFORM=$(basename `pwd`) | ||
echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV | ||
echo "PLATFORM=$PLATFORM" >> $GITHUB_OUTPUT | ||
cd $OPENWRTROOT/bin/targets/* | ||
TARGET=$(basename `pwd`) | ||
echo "TARGET=$TARGET" >> $GITHUB_ENV | ||
echo "TARGET=$TARGET" >> $GITHUB_OUTPUT | ||
cd * | ||
SUBTARGET=$(basename `pwd`) | ||
echo "SUBTARGET=$SUBTARGET" >> $GITHUB_ENV | ||
echo "SUBTARGET=$SUBTARGET" >> $GITHUB_OUTPUT | ||
echo "FIRMWARE=$PWD" >> $GITHUB_ENV | ||
echo "FIRMWARE=$PWD" >> $GITHUB_OUTPUT | ||
echo "COMPILE_STATUS=success" >> $GITHUB_OUTPUT | ||
- name: Generate Firmware | ||
if: steps.compile.outputs.COMPILE_STATUS == 'success' | ||
id: generate | ||
run: | | ||
cd configs/opkg | ||
sed -i "s/subtarget/$SUBTARGET/g" distfeeds*.conf | ||
sed -i "s/target\//$TARGET\//g" distfeeds*.conf | ||
sed -i "s/platform/$PLATFORM/g" distfeeds*.conf | ||
cd $OPENWRTROOT | ||
mkdir -p files/etc/uci-defaults/ | ||
cp ../scripts/init-settings.sh files/etc/uci-defaults/99-init-settings | ||
mkdir -p files/etc/opkg | ||
cp ../configs/opkg/distfeeds-packages-server.conf files/etc/opkg/distfeeds.conf.server | ||
if "$KMODS_IN_FIRMWARE" = 'true' | ||
then | ||
mkdir -p files/www/snapshots | ||
cp -r bin/targets files/www/snapshots | ||
cp ../configs/opkg/distfeeds-18.06-local.conf files/etc/opkg/distfeeds.conf | ||
else | ||
cp ../configs/opkg/distfeeds-18.06-remote.conf files/etc/opkg/distfeeds.conf | ||
fi | ||
cp files/etc/opkg/distfeeds.conf.server files/etc/opkg/distfeeds.conf.mirror | ||
sed -i "s/http:\/\/192.168.123.100:2345\/snapshots/https:\/\/openwrt.cc\/snapshots\/$(date +"%Y-%m-%d")\/lean/g" files/etc/opkg/distfeeds.conf.mirror | ||
make package/install -j1 V=s | ||
make target/install -j1 V=s | ||
pushd bin/targets/x86/64 | ||
kernelv=`cat openwrt-x86-64-generic.manifest | grep 'kernel - ' | awk -F '[- ]' '{print $4}'` | ||
echo "kernel_version=$kernelv" >> $GITHUB_OUTPUT | ||
rm -rf openwrt-x86-64-generic-kernel.bin | ||
rm -rf openwrt-x86-64-generic-rootfs.tar.gz | ||
rm -rf openwrt-x86-64-generic-squashfs-rootfs.img.gz | ||
rm -rf openwrt-x86-64-generic-squashfs-combined-efi.vmdk | ||
rm -rf openwrt-x86-64-generic.manifest | ||
mv openwrt-x86-64-generic-squashfs-combined-efi.img.gz test-x86-64-squashfs-efi.img.gz | ||
popd | ||
make checksum | ||
mv bin/targets/x86/64/sha256sums bin/targets/x86/64/test-sha256sums | ||
echo "GENERATE_STATUS=success" >> $GITHUB_OUTPUT | ||
- name: Upload firmware to WeTransfer | ||
id: wetransfer | ||
if: steps.generate.outputs.GENERATE_STATUS == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() && !failure() | ||
run: | | ||
curl -fsSL git.io/file-transfer | sh | ||
./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log | ||
echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" | ||
echo "::set-output name=url::$(cat wetransfer.log | grep https | cut -f3 -d" ")" | ||
- name: Generate release tag | ||
id: tag | ||
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | ||
run: | | ||
echo "release_tag=$(date +"%Y.%m.%d")-Lean" >> $GITHUB_OUTPUT | ||
echo "release_date=$(date +"%Y.%m.%d")" >> $GITHUB_OUTPUT | ||
touch release.txt | ||
echo "## 🗒️ 固件信息" >> release.txt | ||
[ $UPLOAD_WETRANSFER = true ] && echo "- 🚀 [点我快速下载](${{ steps.wetransfer.outputs.url }})" >> release.txt | ||
echo "- 🔗 后台地址:192.168.10.1" >> release.txt | ||
echo "- 🔑 后台密码:password" >> release.txt | ||
echo "## 🍻 固件类型" >> release.txt | ||
echo "- 测试版:test" >> release.txt | ||
echo "status=success" >> $GITHUB_OUTPUT | ||
- name: Upload firmware to release | ||
uses: softprops/action-gh-release@v1 | ||
if: steps.tag.outputs.status == 'success' && !cancelled() | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
name: 📦 固件下载 | x86-64-Linux-${{ steps.generate.outputs.kernel_version }} | ${{ steps.tag.outputs.release_date }} | ||
tag_name: ${{ steps.tag.outputs.release_tag }} | ||
body_path: release.txt | ||
files: ${{ env.FIRMWARE }}/* | ||
|
||
- name: Delete workflow runs | ||
uses: Mattraks/delete-workflow-runs@v2 | ||
with: | ||
retain_days: 1 | ||
keep_minimum_runs: 1 | ||
|
||
- name: Remove old Releases | ||
uses: dev-drprasad/[email protected] | ||
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | ||
with: | ||
keep_latest: 20 | ||
delete_tags: true | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Delete Artifacts | ||
uses: geekyeggo/delete-artifact@v2 | ||
with: | ||
name: | | ||
bin-archive |
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