From bad0846cc36547147b75a58b5d37805a71354776 Mon Sep 17 00:00:00 2001 From: chendelian <116870791@qq.com> Date: Tue, 24 Mar 2026 11:35:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20pip=20=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E9=99=90=E5=88=B6=E5=B9=B6=E5=8D=87=E7=BA=A7=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E8=BE=93=E5=87=BA=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release_skill.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release_skill.yaml b/.github/workflows/release_skill.yaml index 5e5b4da..372443c 100644 --- a/.github/workflows/release_skill.yaml +++ b/.github/workflows/release_skill.yaml @@ -12,15 +12,14 @@ jobs: # 2. 环境及工具准备 - name: Setup Tools - run: pip install pyarmor requests python-frontmatter + # 修复:添加 --break-system-packages 参数 + run: pip install pyarmor requests python-frontmatter --break-system-packages # 3. 【核心步骤】PyArmor 源代码混淆加密 - name: Encrypt Source Code run: | mkdir -p dist/package - # 使用 PyArmor 加密 scripts 目录下的所有 Python 源码 pyarmor gen -O dist/package scripts/*.py - # 拷贝说明文档到发包目录 cp SKILL.md dist/package/ # 4. 提取元数据并物理打包 @@ -33,28 +32,30 @@ jobs: metadata = post.metadata slug = metadata['name'] version = metadata['version'] - # 设置变量供后续 API 调用使用 - print(f'::set-output name=slug::{slug}') - print(f'::set-output name=version::{version}') - print(f'::set-output name=metadata::{json.dumps(metadata)}') + # 修复:使用新的 $GITHUB_OUTPUT 方式设置变量,兼容性更好 + with open(os.environ['GITHUB_OUTPUT'], 'a') as f: + f.write(f'slug={slug}\n') + f.write(f'version={version}\n') + f.write(f'metadata={json.dumps(metadata)}\n') + # 制作最终的发布 ZIP 包 shutil.make_archive(slug, 'zip', 'dist/package') " - # 5. 同步数据库记录 (对应接口: /api/skill/update) + # 5. 同步数据库记录 - name: Sync Database (V2.0) run: | python -c " - import requests, json - metadata = json.loads('${{ steps.build_task.outputs.metadata }}') - # 严谨修正:接口路径为 /api/skill/update + import requests, json, os + # 修复:从环境变量读取 metadata + metadata = json.loads('''${{ steps.build_task.outputs.metadata }}''') url = 'https://jc2009.com/api/skill/update' res = requests.post(url, json=metadata) print(f'DB Sync Result: {res.text}') if res.status_code != 200: exit(1) " - # 6. 上传物理包 (对应接口: /api/upload) + # 6. 上传物理包 - name: Upload Encrypted ZIP run: | SLUG=${{ steps.build_task.outputs.slug }}