name: Publish to npm on: push: tags: - 'v*.*.*' workflow_dispatch: jobs: publish: runs-on: ubuntu-latest environment: release # npm Trusted Publisher 环境 permissions: id-token: write # OIDC 认证 contents: read # 读取仓库 steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 # 完整 history 用于版本分析 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' registry-url: 'https://registry.npmjs.org' # 从 tag 提取版本号 - name: Get version from tag id: version run: | VERSION=${GITHUB_REF#refs/tags/v} echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Package version: $VERSION" # 修改 package.json 版本号 - name: Update package.json version run: | npm pkg set version=${{ steps.version.outputs.version }} - name: Install dependencies run: npm ci - name: Build run: npm run build # Trusted Publisher 发布(无需 token) - name: Publish to npm run: npm publish --access public - name: Create GitHub Release uses: softprops/action-gh-release@v1 with: body: | ## @simcu/simapi v${{ steps.version.outputs.version }} See [changelog](https://github.com/simcu/simapi-vue/releases) for details. draft: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}