Skip to content

Download and Release MCSManager #100

Download and Release MCSManager

Download and Release MCSManager #100

Workflow file for this run

name: Download and Release MCSManager
on:
schedule:
- cron: '0 18 * * *' # 北京时间凌晨2点 = UTC时间18点(UTC+8)
workflow_dispatch: # 允许手动触发
jobs:
download-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y jq gh
- name: Download MCSManager
run: |
echo "正在下载 MCSManager 最新 Linux 版本..."
wget -O mcsmanager_linux_release.tar.gz https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gz
- name: Extract MCSManager
run: |
echo "正在解压..."
tar -zxf mcsmanager_linux_release.tar.gz
- name: Get version from package.json
id: get_version
run: |
# 从package.json提取版本号
VERSION=$(jq -r '.version' mcsmanager/daemon/package.json)
echo "从package.json提取到的版本号: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Check if release exists
id: check_release
run: |
# 检查该版本号是否已存在对应的release(包括草稿和预发布)
if gh release view "v${{ steps.get_version.outputs.version }}" > /dev/null 2>&1; then
echo "版本 v${{ steps.get_version.outputs.version }} 已存在"
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "版本 v${{ steps.get_version.outputs.version }} 不存在,准备创建"
echo "exists=false" >> $GITHUB_OUTPUT
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean up and prepare files
if: steps.check_release.outputs.exists == 'false'
run: |
echo "正在准备文件..."
rm -f mcsmanager_linux_release.tar.gz
# 复制lib文件
echo "正在复制lib文件..."
mkdir -p mcsmanager/daemon/lib
if [ -f "lib/file_zip_linux_arm" ] && [ -f "lib/pty_linux_arm" ]; then
cp lib/file_zip_linux_arm mcsmanager/daemon/lib/
cp lib/pty_linux_arm mcsmanager/daemon/lib/
else
echo "lib目录下的必要文件不存在,终止工作流"
exit 1
fi
# 修改启动脚本
echo "正在修改 start-daemon.sh 和 start-web.sh 的 --max-old-space-size 参数..."
sed -i 's/--max-old-space-size=8192/--max-old-space-size=1024/g' mcsmanager/start-daemon.sh
sed -i 's/--max-old-space-size=8192/--max-old-space-size=1024/g' mcsmanager/start-web.sh
# 压缩文件
echo "正在压缩MCSManager..."
tar -czf mcsmanager_armv7l_release.tar.gz mcsmanager
- name: Create Release and Upload Asset
if: steps.check_release.outputs.exists == 'false'
run: |
# 使用package.json中的版本号作为标签
TAG_NAME="v${{ steps.get_version.outputs.version }}"
RELEASE_NAME="MCSManager armv7l 版本 $TAG_NAME"
# 创建Release
gh release create "$TAG_NAME" \
--title "$RELEASE_NAME" \
--notes "自动构建的MCSManager armv7l版本(基于官方最新版)" \
--draft=false \
--prerelease=false
# 上传资产
gh release upload "$TAG_NAME" ./mcsmanager_armv7l_release.tar.gz --clobber
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit and push changes
if: steps.check_release.outputs.exists == 'false'
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
if ! git diff --quiet; then
git add .
git commit -m "自动更新: MCSManager ${{ steps.get_version.outputs.version }}"
git push
else
echo "没有更改需要提交"
fi