OpenWRT-snapshot #555
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
#================================================= | |
# Description: Build OpenWrt using GitHub Actions | |
# Lisence: MIT | |
name: OpenWRT-snapshot | |
on: | |
# release: | |
# types: published | |
push: | |
branches: | |
- master | |
paths: | |
- '.github/workflows/openwrt-rockchip.yml' | |
- 'step/01-prepare_package.sh' | |
- 'step/00-prepare_5.10.sh' | |
- 'seed/rockchip.seed' | |
schedule: | |
- cron: 35 20 * * 2,5 | |
watch: | |
types: started | |
jobs: | |
openwrt-master: | |
runs-on: ubuntu-18.04 | |
if: github.event.repository.owner.id == github.event.sender.id | |
steps: | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Show CPU Model and Free Space | |
run: | | |
echo -e "Total CPU cores\t: $(nproc)" | |
cat /proc/cpuinfo | grep 'model name' | |
free -h | |
- name: Set env | |
run: | | |
echo "SSH_ACTIONS=false" >> $GITHUB_ENV | |
echo "UPLOAD_BIN_DIR=false" >> $GITHUB_ENV | |
echo "UPLOAD_FIRMWARE=true" >> $GITHUB_ENV | |
echo "UPLOAD_RELEASE=true" >> $GITHUB_ENV | |
echo "TZ=Asia/Shanghai" >>$GITHUB_ENV | |
echo "Build_Date=$(date +%Y.%m.%d)" >> $GITHUB_ENV | |
- name: Show env | |
run: echo $GITHUB_ENV | |
- name: free disk space | |
run: | | |
df -h | |
sudo swapoff -a | |
sudo rm -f /swapfile | |
sudo apt clean | |
docker rmi $(docker image ls -aq) | |
df -h | |
/bin/bash ./script/free_disk_space.sh | |
- name: Initialization environment | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: | | |
sudo -E rm -rf /etc/apt/sources.list.d | |
sudo -E apt-get update -y | |
sudo -E apt-get install -y build-essential rsync asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core p7zip p7zip-full msmtp libssl-dev texinfo libreadline-dev libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint ccache curl wget vim nano python3 python3-pip python3-ply haveged lrzsz device-tree-compiler scons | |
wget -qO - https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh | sed 's/python-/python3-/g' | /bin/bash | |
sudo -E apt-get clean -y | |
git config --global user.name 'GitHub Actions' && git config --global user.email 'noreply@github.com' | |
df -h | |
- name: Install OpenWrt source | |
run: | | |
git clone -b master --single-branch https://git.openwrt.org/openwrt/openwrt.git openwrt | |
- name: Prepare openwrt | |
run: | | |
cd openwrt | |
cp -r ../step/* ./ | |
/bin/bash 00-prepare_5.10.sh | |
- name: Prepare application packages | |
run: | | |
cd openwrt | |
/bin/bash 01-prepare_package.sh | |
- name: Add ACL | |
run: | | |
cd openwrt | |
/bin/bash 03-create_acl_for_luci.sh -a | |
- name: Load Multiple devices Config | |
run: | | |
cd openwrt | |
mv ../seed/rockchip.seed .config | |
make defconfig | |
cp .config rockchip_multi.config | |
# - name: Download package | |
# id: package | |
# run: | | |
# cd openwrt | |
# make download -j10 | |
# find dl -size -1024c -exec ls -l {} \; | |
# find dl -size -1024c -exec rm -f {} \; | |
# | |
# - name: Make toolchain-aarch64 | |
# id: compiletoolchain | |
# continue-on-error: true | |
# run: | | |
# cd openwrt | |
# let make_process=$(nproc)+1 | |
# make toolchain/install -j${make_process} V=s | |
# - name: If toolchain Error | |
# if: steps.compiletoolchain.outcome == 'failure' | |
# run: | | |
# echo '================================================================' | |
# cd openwrt && make toolchain/install -j1 V=s | |
- name: Compile OpenWRT for R2S & R4S & R1 plus | |
id: compileopenwrt | |
continue-on-error: true | |
run: | | |
cd openwrt | |
let make_process=$(nproc)+1 | |
make -j${make_process} V=s || make -j${make_process} V=s | |
- name: If compile openwrt Error | |
if: steps.compileopenwrt.outcome == 'failure' | |
run: | | |
cat openwrt/.config | |
echo '================================================================' | |
cd openwrt && make -j1 V=s | |
- name: Organize files | |
id: organize | |
run: | | |
rm -rf ./artifact/ | |
mkdir -p ./artifact/ | |
mv openwrt/bin/targets/rockchip/armv8/*sysupgrade.img* ./artifact/ | |
cd ./artifact/ | |
ls -Ahl | |
gzip -d *.gz && exit 0 | |
gzip *.img | |
sha256sum openwrt*r2s* | tee R2S-QC-$(date +%Y-%m-%d).sha256sum | |
sha256sum openwrt*r4s* | tee R4S-QC-$(date +%Y-%m-%d).sha256sum | |
sha256sum openwrt*r1-plus* | tee R1-plus-QC-$(date +%Y-%m-%d).sha256sum | |
ls -Ahl | |
zip R2S-QC-$(date +%Y-%m-%d)-snapshot.zip *r2s* R2S*.sha256sum | |
zip R4S-QC-$(date +%Y-%m-%d)-snapshot.zip *r4s* R4S*.sha256sum | |
zip R1-plus-QC-$(date +%Y-%m-%d)-snapshot.zip *r1-plus* R1-plus*.sha256sum | |
cp ../openwrt/*.config ./ | |
ls -Ahl | |
- name: Upload artifact master | |
uses: actions/upload-artifact@main | |
if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() | |
with: | |
name: OpenWRT_NanoPi_firmware | |
path: ./artifact/*.zip | |
- name: Compile OpenWRT for kernel 5.14 | |
id: compile514 | |
run: | | |
cd openwrt | |
/bin/bash 04-k5.14.sh | |
mv ../seed/k514.seed .config | |
make defconfig | |
let make_process=$(nproc)+1 | |
make -j${make_process} V=s || make -j${make_process} V=s | |
- name: If compile openwrt 5.14 Error | |
if: steps.compile514.outcome == 'failure' | |
run: | | |
cat openwrt/.config | |
echo '================================================================' | |
cd openwrt && make -j1 V=s | |
- name: Organize k5.14 files | |
id: organize514 | |
run: | | |
rm -rf ./artifact514/ | |
mkdir -p ./artifact514/ | |
mv openwrt/bin/targets/rockchip/armv8/*sysupgrade.img* ./artifact514/ | |
cd ./artifact514/ | |
ls -Ahl | |
gzip -d *.gz && exit 0 | |
gzip *.img | |
sha256sum openwrt*r2s* | tee R2S-QC-k514.sha256sum | |
sha256sum openwrt*r4s* | tee R4S-QC-k514.sha256sum | |
sha256sum openwrt*r1-plus* | tee R1-plus-QC-k514.sha256sum | |
ls -Ahl | |
zip R2S-QC-$(date +%Y-%m-%d)-k514.zip *r2s* R2S*.sha256sum | |
zip R4S-QC-$(date +%Y-%m-%d)-k514.zip *r4s* R4S*.sha256sum | |
zip R1-plus-QC-$(date +%Y-%m-%d)-k514.zip *r1-plus* R1-plus*.sha256sum | |
ls -Ahl | |
- name: Upload k5.14 firmware | |
uses: actions/upload-artifact@main | |
with: | |
name: openwrt kernel 5.14 firmware | |
path: ./artifact514/*.zip | |
- name: Create release for master | |
id: create_release | |
uses: ncipollo/release-action@v1.8.8 | |
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | |
with: | |
name: OpenWRT-rockchip-kernel 5.10 daily update | |
allowUpdates: true | |
tag: snapshot | |
commit: master | |
replacesArtifacts: true | |
token: ${{ secrets.RELEASES_TOKEN }} | |
bodyFile: "body-origin.md" | |
artifacts: ./artifact/*.zip,./artifact/*.config | |
Cleanup-Old-Artifacts: | |
needs: [openwrt-master] | |
runs-on: ubuntu-18.04 | |
steps: | |
- name: Cleanup Old Action Artifacts | |
uses: kolpav/purge-artifacts-action@v1 | |
with: | |
token: ${{ github.token }} | |
expire-in: 14d | |
Cleanup-Workflow-Runs: | |
needs: Cleanup-Old-Artifacts | |
runs-on: ubuntu-18.04 | |
steps: | |
- name: Cleanup Workflow Runs | |
uses: GitRML/delete-workflow-runs@v1.2.1 | |
with: | |
token: ${{ github.token }} | |
repository: ${{ github.repository }} | |
retain_days: 14 |