diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index caa2882..7583b01 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -39,11 +39,29 @@ jobs: # 确保在正确的分支 git checkout develop - # 创建snapshot版本 - pnpm changeset version --snapshot snapshot + # 配置npm认证 + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc - # 发布snapshot版本到npm - pnpm changeset publish --tag snapshot + # 获取当前时间戳和短commit hash + TIMESTAMP=$(date +%Y%m%d%H%M%S) + SHORT_COMMIT=$(git rev-parse --short HEAD) + + # 读取当前版本,移除任何现有的snapshot标识 + CURRENT_VERSION=$(node -p "require('./package.json').version.split('-')[0]") + + # 生成唯一的snapshot版本号:base-snapshot.timestamp.commit + SNAPSHOT_VERSION="${CURRENT_VERSION}-snapshot.${TIMESTAMP}.${SHORT_COMMIT}" + + echo "生成snapshot版本号: $SNAPSHOT_VERSION" + + # 直接设置版本号 + npm version $SNAPSHOT_VERSION --no-git-tag-version + + # 发布snapshot版本 + npm publish --tag snapshot + + # 输出版本信息供后续步骤使用 + echo "SNAPSHOT_VERSION=$SNAPSHOT_VERSION" >> $GITHUB_ENV env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -55,9 +73,8 @@ jobs: script: | const { execSync } = require('child_process'); - // 获取当前版本号 - const packageJson = require('./package.json'); - const version = packageJson.version; + // 获取snapshot版本号 + const version = process.env.SNAPSHOT_VERSION; // 查找相关的PR const { data: prs } = await github.rest.pulls.list({ @@ -70,9 +87,19 @@ jobs: const comment = `🚀 **Snapshot版本已发布!** 📦 版本号: \`${version}\` - 🔗 安装命令: \`npm install -g dpml-prompt@snapshot\` + 🔗 安装命令: \`npx dpml-prompt@${version} \` + 或者: \`npx dpml-prompt@snapshot \` - 你可以使用这个snapshot版本测试最新功能。`; + 📚 使用示例: + \`\`\`bash + npx dpml-prompt@${version} hello + npx dpml-prompt@${version} init + \`\`\` + + 你可以使用这个snapshot版本测试最新功能。包含以下改进: + - ✅ 修复了Windows平台platform-folders兼容性问题 + - ✅ 解决了协议路径警告问题 + - 🔧 使用env-paths替代platform-folders,提升跨平台兼容性`; // 为每个相关PR添加评论 for (const pr of prs) { diff --git a/package.json b/package.json index 840c2fb..63b6679 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dpml-prompt", - "version": "0.0.2-snapshot.6", + "version": "0.0.2", "description": "DPML-powered AI prompt framework - Revolutionary AI-First CLI system based on Deepractice Prompt Markup Language. Build sophisticated AI agents with structured prompts, memory systems, and execution frameworks.", "main": "src/lib/index.js", "bin": {