我之前有一个 GitHub Action,其中有一个 Job 做了 3 件事:
现在,我将这项工作分成了 3 个不同的部分,因为:
这是当前的 GitHub 操作:
name: Pull Request Checks
on:
pull_request:
types: [opened, synchronize, reopened, labeled]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Buid VS solution
id: build
run: dotnet build "FSharp project/MyProject.sln" -c RELEASE
unit-tests:
name: Unit Tests
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Unit Tests
id: unit-tests
run: dotnet test "FSharp project/UnitTests/UnitTests.fsproj" -c Release --no-build --filter "TestCategory!=SKIP_ON_DEPLOY"
integration-tests:
name: Integration Tests
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Integration Tests
id: integration-tests
if: github.event.action == 'labeled' && github.event.label.name == 'pr:ready'
run: dotnet test "FSharp project/IntegrationTests/IntegrationTests.fsproj" -c Release --no-build --filter "TestCategory!=SKIP_ON_DEPLOY"
Run Code Online (Sandbox Code Playgroud)
理想情况下,集成测试作业仅在 PR 标记为“pr:ready”时运行(这一点可能仍需调整/解决)。
整个过程有效。
我必须在每个作业中重复“结账”步骤,这意味着它们是完全不同的“机器”。
如果这是真的,为什么dotnet testwith--no-build仍然能够工作?
MS 更改了该标志的行为,所以老实说,我不记得此处运行的 dotnet cli 版本是否能够重用可能执行的构建,或者如果需要的话它本身会运行构建。
所以我不完全确定结帐结果在“连续”作业中拥有一个完全新鲜的环境,如果是这种情况......有一种方法可以以简单的方式重用以前的“状态”(就像一个简单的方法)参数,不使用工件和类似的东西)?
| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |