Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/npm/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Npm Github操作在创建的版本和发布的版本之间有所不同_Npm_Versioning_Package.json_Github Actions_Git Tag - Fatal编程技术网

Npm Github操作在创建的版本和发布的版本之间有所不同

Npm Github操作在创建的版本和发布的版本之间有所不同,npm,versioning,package.json,github-actions,git-tag,Npm,Versioning,Package.json,Github Actions,Git Tag,由于Github发行版实际上是一个Git标记,所以我想在有新发行版(和标记)时使用Github操作自动升级我的package.json版本 我知道我需要在:release上触发一个作业,但根据,我不知道在创建、发布时是否需要触发,是同时触发还是全部触发 Github说: 注意:对于草稿发布,不会触发发布事件 我创建了两个管道:一个on:release,type:created和一个on:release,type:published 然后我创建了一个草案发布,然后我发布了它 只有发布的管道被触发,

由于Github发行版实际上是一个Git标记,所以我想在有新发行版(和标记)时使用Github操作自动升级我的
package.json
版本

我知道我需要在:release上触发一个
作业
,但根据,我不知道在
创建
发布
时是否需要触发,是同时触发还是全部触发

Github说:

注意:对于
草稿
发布,不会触发
发布
事件

我创建了两个管道:一个
on:release,type:created
和一个
on:release,type:published

然后我创建了一个
草案
发布,然后我发布了它


只有
发布的
管道被触发,它是在我发布发布时触发的。

可以创建发布,但不能发布。草案版本就是这样


我建议使用
发布的
类型的发行版。

我的经验与所描述的相反。测试时:

  • 如果发布是通过
    /releases
    页面上的“Draft a new release”(起草新发布)按钮创建的,则当发布状态从“Draft”(起草)变为“published”(已发布)时,这两个事件都将触发
  • 如果发布是由脚本创建的,比如绕过“草稿”阶段并直接变成“发布”,那么只有
    release:published
    才会触发

所以很明显,一个发布版可以在不创建的情况下发布。真奇怪。如果您试图将Github操作触发的发布的创建和发布捕获到另一个工作流中,那么它将无法工作

解决方案是将两个工作流统一为一个工作流,以便在创建发布后继续下一个工作流

资料来源:

例如:

name: Create Release and Publish

# Trigger the create release workflow
on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    name: Create Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          draft: false
          prerelease: false

  publish-gpr:
    needs: release # After release is created then run the second workflow
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 10
          registry-url: https://npm.pkg.github.com/
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

请参阅我问题中的链接。Github说“注意:
release
事件不会为
draft
发布触发”。但是我要检查一下。为什么不在:release:types:[已创建]