deploy: 4712e6e6ed0b9f1a14f876e596a2af2923ef0d4c #193
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
# | |
# Copyright (c) 2019-2020 P3TERX <https://p3terx.com> | |
# | |
# This is free software, licensed under the MIT License. | |
# See /LICENSE for more information. | |
# | |
# https://github.com/P3TERX/Actions-OpenWrt | |
# Description: Build OpenWrt using GitHub Actions | |
# | |
name: BUILD GLINET AX1800 | |
on: | |
repository_dispatch: | |
workflow_dispatch: | |
inputs: | |
ssh: | |
description: 'SSH connection to Actions' | |
required: false | |
default: 'false' | |
push: | |
paths: | |
- '.github/workflows/build-glinet-ax1800.yml' | |
- 'glinet-ax1800.yml' | |
branches: | |
- main | |
# schedule: | |
# - cron: 0 16 * * * | |
env: | |
REPO_URL: https://github.com/gl-inet/gl-infra-builder | |
REPO_BRANCH: main | |
UPLOAD_BIN_DIR: true | |
UPLOAD_FIRMWARE: true | |
UPLOAD_WETRANSFER: true | |
UPLOAD_RELEASE: true | |
TZ: Asia/Shanghai | |
OFFICIAL: true | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
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 | |
sudo -E apt-get -qq update | |
sudo -E apt-get -qq install python build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time rsync python3 python3-setuptools python3-yaml subversion -y | |
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: | | |
echo $PWD | |
echo $GITHUB_WORKSPACE | |
git clone $REPO_URL -b $REPO_BRANCH gl-infra-builder | |
ln -sf /workdir/gl-infra-builder $GITHUB_WORKSPACE/gl-infra-builder | |
cd $GITHUB_WORKSPACE | |
[ -e glinet-ax1800.yml ] && mv glinet-ax1800.yml /workdir/gl-infra-builder/profiles | |
- name: run official setup.py | |
if: env.OFFICIAL == 'true' | |
run: | | |
cd /workdir/gl-infra-builder | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@github.com" | |
python3 setup.py -c configs/config-wlan-ap.yml | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt | |
./scripts/gen_config.py glinet-ax1800 glinet_depends | |
git clone https://github.com/gl-inet/glinet4.x.git -b main /workdir/glinet | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
make defconfig | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt/files/etc | |
echo "$(date +"%Y.%m.%d")" >./glversion | |
- name: run setup.py | |
if: env.OFFICIAL == 'false' | |
run: | | |
cd /workdir/gl-infra-builder | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@github.com" | |
python3 setup.py -c configs/config-wlan-ap.yml | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt | |
./scripts/gen_config.py glinet-ax1800 openwrt_common luci | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
make defconfig | |
- name: SSH connection to Actions | |
uses: P3TERX/[email protected] | |
if: (github.event.inputs.ssh == 'true' && github.event.inputs.ssh != 'false') || contains(github.event.action, 'ssh') | |
env: | |
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
- name: Official compile the firmware | |
id: official-compile | |
if: env.OFFICIAL == 'true' | |
run: | | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt | |
echo -e "$(nproc) thread compile" | |
make -j$(expr $(nproc) + 1) GL_PKGDIR=/workdir/glinet/ipq60xx/ V=s | |
echo "::set-output name=status::success" | |
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME | |
[ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV | |
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV | |
- name: Compile the firmware | |
id: compile | |
if: env.OFFICIAL == 'false' | |
run: | | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt | |
echo -e "$(nproc) thread compile" | |
make -j$(expr $(nproc) + 1) V=s | |
echo "::set-output name=status::success" | |
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME | |
[ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV | |
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV | |
- name: Check space usage | |
if: (!cancelled()) | |
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: /workdir/gl-infra-builder/wlan-ap/openwrt/bin | |
- name: Organize files | |
id: organize | |
if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() && !failure() | |
run: | | |
cd /workdir/gl-infra-builder/wlan-ap/openwrt/bin/targets/ipq807x/ipq60xx | |
echo $PWD | |
rm -rf packages | |
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' && !cancelled() && !failure() | |
with: | |
name: OpenWrt_firmware${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: ${{ env.FIRMWARE }} | |
- name: Upload firmware to WeTransfer | |
id: wetransfer | |
if: steps.organize.outputs.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() && !failure() | |
run: | | |
echo "::set-output name=release_tag::AX1800-$(date +"%Y.%m.%d-%H.%M")" | |
touch release.txt | |
echo "## 📦 固件下载 | GLINET AX1800" >> release.txt | |
[ $UPLOAD_WETRANSFER = true ] && echo "- 🔗 [WeTransfer](${{ steps.wetransfer.outputs.url }})" >> release.txt | |
echo -e "## ✨ 主要功能\n1. argon主题\n2. argon主题设置\n3. 释放内存\n4. wol 网络唤醒\n5. 磁盘管理工具\n6. smartdns DNS防污染\n7. clash的图形代理软件\n8. aria2下载工具\n9. ZeroTier内网穿透\n10. Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT)\n11. 迅雷快鸟\n12. CPU 性能优化调节\n13. ttyd 终端\n14. 微信/Telegram推送\n15. BT下载工具" >> release.txt | |
echo "::set-output name=status::success" | |
- name: Upload firmware to release | |
uses: softprops/action-gh-release@v1 | |
if: steps.tag.outputs.status == 'success' && !cancelled() && !failure() | |
env: | |
GITHUB_TOKEN: ${{ secrets.AC_GH_TOKEN }} | |
with: | |
tag_name: ${{ steps.tag.outputs.release_tag }} | |
body_path: release.txt | |
files: ${{ env.FIRMWARE }}/* | |
- name: Delete workflow runs | |
uses: GitRML/delete-workflow-runs@main | |
with: | |
retain_days: 1 | |
keep_minimum_runs: 3 | |
- name: Remove old Releases | |
uses: dev-drprasad/[email protected] | |
if: env.UPLOAD_RELEASE == 'true' && !cancelled() && !failure() | |
with: | |
keep_latest: 3 | |
delete_tags: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |