-
Notifications
You must be signed in to change notification settings - Fork 22
134 lines (123 loc) · 4.61 KB
/
5.15-AX6.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#===============================================
# Description: Build OpenWrt
# File name: build-openwrt.yml
# Lisence: MIT
# Author: P3TERX
# https://github.com/P3TERX
#===============================================
name: AX6编译develop版openwrt
on:
workflow_dispatch:
schedule:
- cron: '0 17 * * *'
env:
REPO_URL: https://github.com/xiangfeidexiaohuo/lede
REPO_BRANCH: master
CONFIG_FILE: configs/AX6-5.15.config
FEEDS_CONF: feeds.conf.default
DIY_SCRIPT: diy-ax6.sh
UPLOAD_BIN_DIR: false
UPLOAD_FIRMWARE: false
UPLOAD_RELEASE: true
FILE_NAME: Redmi807X-de
TZ: Asia/Shanghai
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@main
- name: Initialization environment
env:
DEBIAN_FRONTEND: noninteractive
run: |
docker rmi $(docker images -q)
sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /etc/mysql /usr/local/lib/android
sudo -E apt-get -qq purge azure-cli google* llvm* moby* mysql* php* powershell
sudo -E apt-get -qq update
sudo -E apt-get -qq install $(curl -fsSL is.gd/depends_ubuntu_2204)
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: Clone source code
working-directory: /workdir
run: |
df -hT $PWD
git clone $REPO_URL -b $REPO_BRANCH openwrt
ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt
cd openwrt
useVersionInfo=$(git show -s --date=short --format="Author: %an<br/>date: %cd<br/>commit: %s<br/>commit hash: %H")
echo "useVersionInfo=$useVersionInfo" >> $GITHUB_ENV
- name: Update feeds
run: cd openwrt && ./scripts/feeds update -a
- name: Install feeds
run: cd openwrt && ./scripts/feeds install -a
- name: Load custom configuration
run: |
[ -e files ] && mv files openwrt/files
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config
cat $EXTRA_CONFIG >> openwrt/.config
chmod +x $DIY_SCRIPT
cd openwrt
$GITHUB_WORKSPACE/$DIY_SCRIPT
- name: Download package
id: package
run: |
cd openwrt
make defconfig
make download -j8
find dl -size -1024c -exec ls -l {} \;
find dl -size -1024c -exec rm -f {} \;
- name: Compile the firmware
id: compile
run: |
cd openwrt
echo -e "$(nproc) thread compile"
make -j$(nproc) || make -j1 || make -j1 V=s
echo "::set-output name=status::success"
echo "DEVICE_NAME=_rockchip-armv8" >> $GITHUB_ENV
echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
- name: Check space usage
run: df -hT
- 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: steps.compile.outputs.status == 'success'
run: |
cp openwrt/.config build.config
mkdir -p Packages
mv -f openwrt/bin/packages/*/*/*.ipk Packages
mv -f openwrt/bin/targets/*/*/packages/*.ipk Packages
tar -zcvf Packages.tar.gz Packages
mv *.config *.tar.gz openwrt/bin/targets/*/*
cd openwrt/bin/targets/*/*
rm -rf packages feeds.buildinfo sha256sums version.buildinfo
echo "FIRMWARE=$PWD" >> $GITHUB_ENV
echo "::set-output name=status::success"
- name: Upload firmware directory
uses: actions/upload-artifact@main
if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true'
with:
name: OpenWrt_firmware${{ env.DEVICE_NAME }}${{ env.FILE_DATE }}
path: ${{ env.FIRMWARE }}
- name: Upload firmware to release
uses: ncipollo/release-action@main
if: steps.organize.outputs.status == 'success' && env.UPLOAD_RELEASE == 'true'
with:
name: R${{ env.DATE }} for ${{ env.FILE_NAME }}
artifacts: ${{ env.FIRMWARE }}/*
allowUpdates: true
tag: ${{ env.FILE_NAME }}
token: ${{ secrets.GITHUB_TOKEN }}
body: |
**This is 5.15 OpenWrt firmware for Redmi807X**
* 这是 Redmi807X 平台使用的 5.15 OpenWrt 固件
${{ env.useVersionInfo }}