Files
mcmtrdy/.gitea/workflows/updateR2.yaml
T
DMB-codegang-Mac 85cd1d43f9
Release Modpack / release (push) Successful in 30s
ci(workflows/updateR2): 测试action
2026-07-04 01:48:33 +08:00

100 lines
3.1 KiB
YAML

name: Release Modpack
on:
push:
branches:
- main
- upload-to-server
jobs:
release:
runs-on: ubuntu-latest
steps:
# 创建版本号
- name: Generate version
run: echo "VERSION=$(date +'%Y.%m.%d-%H%M%S')-alpha" >> $GITHUB_ENV
# 检出代码
- name: Checkout
uses: actions/checkout@v4
# 创建 modpack 档案
- name: Create modpack archive
run: |
mkdir -p dist/client
zip -r dist/client/mcmtrdy-modpack.zip client/server-manifest.json client/overrides/
mkdir -p dist/client/modpack
cp -r client/overrides dist/client/modpack/overrides
cp -r client/server-manifest.json dist/client/modpack/server-manifest.json
# 创建发布
# - name: Create Release
# uses: https://gitea.com/actions/gitea-release-action@v1
# with:
# tag_name: ${{ env.VERSION }}
# name: Modpack ${{ env.VERSION }}
# files: dist/client/mcmtrdy-modpack.zip
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# 初始化并配置 Rclone
# - name: Setup Rclone
# run: |
# curl https://rclone.org/install.sh | sudo bash
# mkdir -p ~/.config/rclone
# echo "${{ secrets.RCLONE_CONFIG }}" | base64 -d > ~/.config/rclone/rclone.conf
# # 上传 modpack 档案
# - name: Upload Modpack
# run: |
# rclone copyto dist/client/mcmtrdy-modpack.zip mcmtrdy:mcmtrdy/mcmtrdy.zip
# rclone sync ./dist/client/modpack mcmtrdy:mcmtrdy/modpack
# 清除配置
# - name: Clear config
# run: |
# rm -rf ~/.config/rclone/rclone.conf
# 创建服务器mod
- name: Create Server Mod
run: |
mkdir -p dist/server
# 读取黑名单
blacklist=$(jq -r '.[]' server/blacklist.json)
# 遍历客户端 mods,跳过黑名单中的 mod
for mod in client/overrides/mods/*.jar; do
filename=$(basename "$mod")
skip=false
for pattern in $blacklist; do
if echo "$filename" | grep -qi "$pattern"; then
echo "跳过: $filename (匹配黑名单: $pattern)"
skip=true
break
fi
done
if [ "$skip" = false ]; then
echo "复制: $filename"
cp "$mod" dist/server/
fi
done
# 复制 server/addmod 中的额外 mod
echo "复制 server/addmod 中的 mod..."
cp server/addmod/*.jar dist/server/ 2>/dev/null || echo "server/addmod 中无 jar 文件"
echo "dist/server 内容:"
ls -la dist/server/
# 上传服务器 mods 到远程服务器
- name: Upload Server Mods
run: |
sudo apt update -y
sudo apt install -y sshpass
sshpass -p "${{ secrets.SSH_PASSWORD }}" scp -o StrictHostKeyChecking=no \
dist/server/* \
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.SSH_TARGET_DIR }}/
echo "服务器 mods 上传完成"