Skip to content

Merge branch 'easybot-team:main' into main #5

Merge branch 'easybot-team:main' into main

Merge branch 'easybot-team:main' into main #5

name: Build and Release EasyBot-MCDR
on:
push:
branches:
- main
workflow_dispatch:
# 允许手动触发工作流
inputs:
version:
description: '手动指定版本号(可选)'
required: false
default: ''
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 设置Python环境
uses: actions/setup-python@v5
with:
python-version: '3.12.8'
cache: 'pip'
- name: 安装依赖
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: 安装MCDReforged
run: pip install mcdreforged>=2.14
- name: 使用MCDReforged打包插件
run: mcdreforged pack
- name: 获取版本号
id: get_version
run: |
if [[ "${{ github.event.inputs.version }}" != "" ]]; then
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV
elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
else
echo "VERSION=$(grep -o '"version": "[^"]*"' mcdreforged.plugin.json | sed 's/"version": "\([^"]*\)"/\1/')" >> $GITHUB_ENV
fi
- name: 查找打包生成的文件
id: find_files
run: |
# 查找mcdreforged pack生成的.mcdr文件
MCDR_FILE=$(find . -name "*.mcdr" | sort -r | head -n 1)
echo "MCDR_PATH=$MCDR_FILE" >> $GITHUB_ENV
echo "MCDR_NAME=$(basename $MCDR_FILE)" >> $GITHUB_ENV
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: easybot_mcdr-${{ env.VERSION }}
path: |
${{ env.MCDR_PATH }}
- name: 发布到GitHub Release
if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: |
${{ env.MCDR_PATH }}
name: EasyBot-MCDR ${{ env.VERSION || 'Development Build' }}
body: |
### 更新内容
draft: false
prerelease: contains('${{ env.VERSION }}', 'beta') || contains('${{ env.VERSION }}', 'alpha') || contains('${{ env.VERSION }}', 'release')
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}