首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GHA需要时的情况

在GHA需要时的情况
EN

Stack Overflow用户
提问于 2022-05-03 08:44:25
回答 1查看 181关注 0票数 0

我有以下工作:

代码语言:javascript
复制
jobs:
 build:
 name: Build
 runs-on: [ self-hosted, linux ]
 steps:
 - uses: actions/checkout@v2
 - name: Build
   run: dotnet build

unit-test:
 name: Unit test
 if: github.event_name != 'release'
 runs-on: [ self-hosted, linux ]
 needs: build
 steps:
 - uses: actions/checkout@v2
 - name: Run tests
   run: dotnet test

publish:
 name: Publish artifacts.zip
 runs-on: [ self-hosted, linux ]
 needs: unit-test
 steps:
 - uses: actions/checkout@v2
 - run: dotnet publish
 - name: Create artifact
   run: |
     mkdir -p ./code

我不想在发行版上运行单元测试,但我仍然需要发布才能在构建后运行,而且我也想不出如何做到这一点。

我想将发布作业更改为: if github.event_name != 'release',然后needs: build,否则就像现在的needs: unit-test一样。在这种情况下,如何定义条件?

EN

回答 1

Stack Overflow用户

发布于 2022-11-03 11:09:09

我认为您可以通过将条件设置在步骤级别而不是在工作级别来实现您想要的结果。这样,即使没有运行任何步骤,GHA也会将作业视为run。如果由于没有运行任何步骤而没有将作业视为运行,则可以添加一个虚拟步骤(例如。- run: echo "Done!"),这将始终被运行。

代码语言:javascript
复制
jobs:
 build:
 name: Build
 runs-on: [ self-hosted, linux ]
 steps:
 - uses: actions/checkout@v2
 - name: Build
   run: dotnet build

unit-test:
 name: Unit test
 runs-on: [ self-hosted, linux ]
 needs: build
 steps:
 - uses: actions/checkout@v2
   if: github.event_name != 'release'
 - name: Run tests
   run: dotnet test
   if: github.event_name != 'release'

publish:
 name: Publish artifacts.zip
 runs-on: [ self-hosted, linux ]
 needs: unit-test
 steps:
 - uses: actions/checkout@v2
 - run: dotnet publish
 - name: Create artifact
   run: |
     mkdir -p ./code
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72096859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档