Skip to content

Merge pull request #30 from LBY123165/main #8

Merge pull request #30 from LBY123165/main

Merge pull request #30 from LBY123165/main #8

name: Build and Release EasyBot-MCDR
on:
push:
branches:
- main
workflow_dispatch:
# 允许手动触发工作流
inputs:
version:
description: '手动指定版本号(可选)'
required: false
default: ''
permissions:
contents: write
# 授予创建和更新Release所需的权限
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') || github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: softprops/action-gh-release@v2
with:
# 如果是标签推送,使用标签作为版本号
tag_name: ${{ startsWith(github.ref, 'refs/tags/v') && github.ref || format('v{0}', env.VERSION) }}
name: EasyBot-MCDR ${{ env.VERSION || 'Development Build' }}
body: |
## EasyBot-MCDR ${{ env.VERSION || 'Development Build' }}
### 版本信息
- 插件版本: ${{ env.VERSION || 'Development Build' }}
- MCDReforged: >= 2.14
### 更新内容
draft: false
prerelease: contains('${{ env.VERSION }}', 'beta') || contains('${{ env.VERSION }}', 'alpha')
generate_release_notes: true
files: |
${{ env.MCDR_PATH }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}