bar*_*iro 18 versioning git-tag npm package.json github-actions
由于Github Release s 实际上是一个Git Tag s,我想package.json在有新的 Release (和标签)时使用Github Action自动升级我的版本。
我知道我需要触发 a job on: release,但是根据Github Actions 文档,我不知道我是否需要触发 when created,published, both or all?
Github 说:
注意:发布
release不会触发该事件draft。
我创建了两个管道:一个on: release, type: created和一个on: release, type: published。
然后我创建了一个draft版本,然后我发布了它。
只有published管道触发,而且是在我发布版本的时候。
Luc*_*cia 18
我的经历与论坛上描述的相反。测试时:
/releases页面上的“Draft a new release”按钮创建的,随着发布从状态“draft”变为“published”,这两个事件都将触发。release-it,绕过“草稿”阶段并直接“发布”,只会release:published触发所以很明显,一个版本可以在没有创建的情况下发布。确实很奇怪。我会去的published。
Luc*_*cio 13
如果您尝试将从 Github Action 触发的发布的创建和发布捕获到另一个工作流程中,那么它是行不通的。
解决方案是将两个工作流程统一为一个工作流程,以便在创建版本后继续下一个工作流程。
来源:https ://twitter.com/ethomson/status/1183838077166477316
例子:
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}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2416 次 |
| 最近记录: |