添加CC、网页展示器、不停吃和无中生有附属与补充添加超级拴绳

This commit is contained in:
叁玖领域 2026-05-31 13:26:00 +08:00
parent 88a24fec37
commit ccb868e7db
10 changed files with 107 additions and 113 deletions

View File

@ -30,7 +30,6 @@ jobs:
ls -la ./packet/packwiz
else
echo "⚠️ 未找到 packet/packwiz 文件"
# 列出 packet 目录内容,帮助调试
echo "packet 目录内容:"
ls -la packet/
fi
@ -43,7 +42,6 @@ jobs:
echo "找到 .project/globe.json 文件"
cat .project/globe.json
# 使用 jq 解析 JSON 文件
VERSION=$(jq -r '.version // "0.0.0.0"' .project/globe.json)
INITIALIZED=$(jq -r '.initialized // "false"' .project/globe.json)
NAME=$(jq -r '.name // "MyPack"' .project/globe.json)
@ -62,7 +60,6 @@ jobs:
echo "模组加载器版本: $MODLOADER_VERSION"
echo "索引文件: $INDEX_FILE"
# 设置输出变量
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "initialized=$INITIALIZED" >> $GITHUB_OUTPUT
echo "name=$NAME" >> $GITHUB_OUTPUT
@ -72,7 +69,6 @@ jobs:
echo "modloader-version=$MODLOADER_VERSION" >> $GITHUB_OUTPUT
echo "index-file=$INDEX_FILE" >> $GITHUB_OUTPUT
# 根据配置决定是否使用保留文件
if [ "$INITIALIZED" = "true" ]; then
echo "项目已初始化,将使用保留文件: $KEEP_FILES"
echo "use_keep_files=true" >> $GITHUB_OUTPUT
@ -104,7 +100,6 @@ jobs:
echo "当前版本: $CURRENT_VERSION"
echo "新版本: $NEW_VERSION"
# 更新版本号
if [ "$CURRENT_VERSION" != "$NEW_VERSION" ]; then
sed -i "s/version = \"$CURRENT_VERSION\"/version = \"$NEW_VERSION\"/" packet/pack.toml
echo "✅ pack.toml 版本已更新为: $NEW_VERSION"
@ -112,7 +107,6 @@ jobs:
echo "版本相同,无需更新"
fi
# 显示更新后的文件内容
echo "=== 更新后的 pack.toml ==="
cat packet/pack.toml
else
@ -123,7 +117,6 @@ jobs:
if: steps.project-config.outputs.initialized == 'true'
run: |
echo "=== 更新所有模组 ==="
# 进入 packet 目录执行命令
cd packet
chmod +x ./packwiz
./packwiz update --all
@ -142,15 +135,12 @@ jobs:
echo "模组加载器版本: ${{ steps.project-config.outputs.modloader-version }}"
echo "索引文件: ${{ steps.project-config.outputs.index-file }}"
# 进入 packet 目录执行初始化
cd packet
# 给 packwiz 添加执行权限
echo "=== 设置 packwiz 执行权限 ==="
chmod +x ./packwiz
ls -la ./packwiz
# 执行 packwiz 初始化命令
./packwiz init \
--name "${{ steps.project-config.outputs.name }}" \
--author "${{ steps.project-config.outputs.author }}" \
@ -163,11 +153,9 @@ jobs:
echo "✅ packwiz 初始化完成"
# 显示生成的 pack.toml
echo "=== 生成的 pack.toml ==="
cat pack.toml
# 返回上级目录
cd ..
- name: Display repository files
@ -187,159 +175,160 @@ jobs:
echo "packet 目录文件数: $(find packet/ -type f 2>/dev/null | wc -l || echo 0)"
echo "packet 目录数: $(find packet/ -type d 2>/dev/null | wc -l || echo 0)"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
cat > ~/.ssh/config << EOF
Host $REMOTE_HOST
HostName $REMOTE_HOST
User $REMOTE_USER
Port $SSH_PORT
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
EOF
# ========== 使用官方 SSH Action 替代手动写入私钥 ==========
- name: Clean remote directory (conditionally)
if: steps.project-config.outputs.use_keep_files == 'true'
run: |
ssh $REMOTE_HOST "
mkdir -p '$REMOTE_PATH'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
script: |
mkdir -p '${{ env.REMOTE_PATH }}'
echo '=== 清理目录(保留文件不会被删除)==='
echo '保留文件: $KEEP_FILES'
cd '$REMOTE_PATH'
echo '保留文件: ${{ env.KEEP_FILES }}'
cd '${{ env.REMOTE_PATH }}'
# 获取当前目录的所有文件和文件夹(除了隐藏文件和保留文件)
find . -mindepth 1 -not -path '*/\.*' | while read item; do
should_keep=false
for pattern in $KEEP_FILES; do
# 检查是否匹配保留模式
if [[ \"\$item\" == *\"\$pattern\"* ]] || [[ \"\$item\" == \"\$pattern\" ]] || [[ \"\$pattern\" == *\"*\"* && \"\$item\" == \${pattern%%/*}* ]]; then
for pattern in ${{ env.KEEP_FILES }}; do
if [[ "$item" == *"$pattern"* ]] || [[ "$item" == "$pattern" ]] || [[ "$pattern" == *"*"* && "$item" == ${pattern%%/*}* ]]; then
should_keep=true
break
fi
done
if [ \"\$should_keep\" = \"false\" ]; then
echo \"删除: \$item\"
rm -rf \"\$item\" 2>/dev/null || true
if [ "$should_keep" = "false" ]; then
echo "删除: $item"
rm -rf "$item" 2>/dev/null || true
else
echo \"保留: \$item\"
echo "保留: $item"
fi
done
echo '目录清理完成'
"
- name: Clean remote directory (full cleanup)
if: steps.project-config.outputs.use_keep_files == 'false'
run: |
ssh $REMOTE_HOST "
mkdir -p '$REMOTE_PATH'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
script: |
mkdir -p '${{ env.REMOTE_PATH }}'
echo '=== 完全清理目录(无保留文件)==='
find '$REMOTE_PATH' -mindepth 1 -delete 2>/dev/null || true
find '${{ env.REMOTE_PATH }}' -mindepth 1 -delete 2>/dev/null || true
echo '目录清理完成'
"
- name: Deploy packet directory
run: |
echo "开始部署 packet 目录..."
echo "项目版本: ${{ steps.project-config.outputs.version }}"
echo "已初始化: ${{ steps.project-config.outputs.initialized }}"
# 进入 packet 目录进行打包
cd packet
# 如果有保留文件,创建排除列表
if [ "${{ steps.project-config.outputs.use_keep_files }}" = "true" ]; then
echo "使用保留文件: $KEEP_FILES"
echo "=== 创建排除列表 ==="
uses: appleboy/scp-action@v0.1.5
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
source: "packet/"
target: ${{ env.REMOTE_PATH }}
rm: false
strip_components: 1
overwrite: true
- name: Remove excluded files if keep_files is true
if: steps.project-config.outputs.use_keep_files == 'true'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
script: |
cd '${{ env.REMOTE_PATH }}'
echo "=== 移除需要排除的文件 ==="
echo ".git" > exclude_list.txt
echo ".gitea" >> exclude_list.txt
# 排除 .git 和 .gitea
rm -rf .git .gitea 2>/dev/null || true
# 添加保留文件到排除列表
for pattern in $KEEP_FILES; do
# 排除保留文件列表中的文件
for pattern in ${{ env.KEEP_FILES }}; do
if [[ "$pattern" == *"*"* ]]; then
# 对于通配符模式,找到所有匹配的文件并排除
# 通配符模式,删除匹配的文件
for file in $pattern; do
if [ -e "$file" ]; then
echo "$file" >> exclude_list.txt
if [ -e "$file" ] && [ ! -d "$file" ]; then
echo "删除排除文件: $file"
rm -f "$file" 2>/dev/null || true
fi
done
else
echo "$pattern" >> exclude_list.txt
if [ -e "$pattern" ] && [ ! -d "$pattern" ]; then
echo "删除排除文件: $pattern"
rm -f "$pattern" 2>/dev/null || true
fi
fi
done
echo "排除列表:"
cat exclude_list.txt
# 使用排除列表打包 packet 目录内容
tar czf - --exclude-from=exclude_list.txt . | ssh $REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -"
rm -f exclude_list.txt
else
# 没有保留文件,直接打包 packet 目录所有文件
echo "无保留文件,部署 packet 目录所有文件"
tar czf - --exclude='.git' --exclude='.gitea' . | ssh $REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -"
fi
echo "✅ packet 目录部署完成"
echo "排除文件清理完成"
- name: Update project configuration on server
run: |
echo "=== 更新服务器上的项目配置 ==="
# 创建项目配置目录并上传配置信息
ssh $REMOTE_HOST "
mkdir -p '$REMOTE_PATH/.project'
cat > '$REMOTE_PATH/.project/globe.json' << 'EOF'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
script: |
echo '=== 更新服务器上的项目配置 ==='
mkdir -p '${{ env.REMOTE_PATH }}/.project'
cat > '${{ env.REMOTE_PATH }}/.project/globe.json' << 'EOF'
{
\"version\": \"${{ steps.project-config.outputs.version }}\",
\"initialized\": ${{ steps.project-config.outputs.initialized }},
\"name\": \"${{ steps.project-config.outputs.name }}\",
\"author\": \"${{ steps.project-config.outputs.author }}\",
\"mc-version\": \"${{ steps.project-config.outputs.mc-version }}\",
\"modloader\": \"${{ steps.project-config.outputs.modloader }}\",
\"modloader-version\": \"${{ steps.project-config.outputs.modloader-version }}\",
\"index-file\": \"${{ steps.project-config.outputs.index-file }}\"
"version": "${{ steps.project-config.outputs.version }}",
"initialized": ${{ steps.project-config.outputs.initialized }},
"name": "${{ steps.project-config.outputs.name }}",
"author": "${{ steps.project-config.outputs.author }}",
"mc-version": "${{ steps.project-config.outputs.mc-version }}",
"modloader": "${{ steps.project-config.outputs.modloader }}",
"modloader-version": "${{ steps.project-config.outputs.modloader-version }}",
"index-file": "${{ steps.project-config.outputs.index-file }}"
}
EOF
echo '服务器项目配置已更新'
cat '$REMOTE_PATH/.project/globe.json'
"
cat '${{ env.REMOTE_PATH }}/.project/globe.json'
- name: Verify deployment
run: |
ssh $REMOTE_HOST "
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.REMOTE_HOST }}
username: ${{ env.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ env.SSH_PORT }}
script: |
echo '=== 部署验证 ==='
echo '目录: $REMOTE_PATH'
echo '大小: \$(du -sh \"$REMOTE_PATH\")'
echo '文件数量: \$(find \"$REMOTE_PATH\" -type f | wc -l)'
echo '目录: ${{ env.REMOTE_PATH }}'
echo "大小: $(du -sh '${{ env.REMOTE_PATH }}')"
echo "文件数量: $(find '${{ env.REMOTE_PATH }}' -type f | wc -l)"
echo '=== 项目配置 ==='
if [ -f \"$REMOTE_PATH/.project/globe.json\" ]; then
cat \"$REMOTE_PATH/.project/globe.json\"
if [ -f '${{ env.REMOTE_PATH }}/.project/globe.json' ]; then
cat '${{ env.REMOTE_PATH }}/.project/globe.json'
else
echo '⚠️ 未找到项目配置文件'
fi
echo '=== pack.toml 内容 ==='
if [ -f \"$REMOTE_PATH/pack.toml\" ]; then
cat \"$REMOTE_PATH/pack.toml\"
if [ -f '${{ env.REMOTE_PATH }}/pack.toml' ]; then
cat '${{ env.REMOTE_PATH }}/pack.toml'
else
echo '⚠️ 未找到 pack.toml 文件'
fi
echo '=== 目录结构 ==='
ls -la '$REMOTE_PATH'
ls -la '${{ env.REMOTE_PATH }}'
echo '=== 保留文件状态 ==='
if [ \"${{ steps.project-config.outputs.use_keep_files }}\" = \"true\" ]; then
for pattern in $KEEP_FILES; do
if [ -e \"$REMOTE_PATH/\$pattern\" ]; then
echo \"✅ 保留文件: \$pattern\"
if [ "${{ steps.project-config.outputs.use_keep_files }}" = "true" ]; then
for pattern in ${{ env.KEEP_FILES }}; do
if [ -e '${{ env.REMOTE_PATH }}/$pattern' ]; then
echo "✅ 保留文件: $pattern"
else
echo \"⚠️ 保留文件不存在: \$pattern\"
echo "⚠️ 保留文件不存在: $pattern"
fi
done
else
echo '无保留文件设置'
fi
"
fi

View File

@ -2,6 +2,11 @@
## 更新日志
2026/05/31 - 1次 v1.0.5
* 添加CC电脑、网页展示器、超级拴绳、不停吃
* 补充添加无中生有附属
2026/05/30 - 3次 v1.0.4-fix1
* 补充修正加了救救我的答辩网络

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.