【发布时间】:2023-01-30 18:04:51
【问题描述】:
我在专门的回购协议中进行了赛普拉斯测试。前端代码在不同的仓库中。当开发人员打开合并请求时,我希望他们可以选择触发一部分测试。这可能吗?因为我找不到这方面的任何例子。
【问题讨论】:
我在专门的回购协议中进行了赛普拉斯测试。前端代码在不同的仓库中。当开发人员打开合并请求时,我希望他们可以选择触发一部分测试。这可能吗?因为我找不到这方面的任何例子。
【问题讨论】:
有多种解决方案:
你可以只使用
- name: Check out my e2e tests
uses: actions/checkout@v3
with:
repository: orgname/reponame
path: ./my-e2e-tests
这会将 e2e 测试存储库克隆到新的 my-e2e-tests 目录,然后您可以签出当前(前端)代码并执行其余步骤。
见:https://github.com/actions/checkout#checkout-multiple-repos-side-by-side
您可以创建一个 reusable workflow 并为您的 e2e 测试执行必要的设置,然后从您的前端存储库调用新的可重用工作流作为作业,例如:
jobs:
run-e2e-tests:
uses: my-org/example-repo/.github/workflows/reusable-e2e-workflow.yml@main
with:
base-url: http://baseurl.org
secrets:
token: ${{ secrets.envPAT }}
如您所知,此作业将与您的其他作业并行运行,因此您可能希望使用 needs 参数让您的部署作业等待此 e2e 测试作业。
您可以创建一个 composite action 来为您的 e2e 测试做一组准备工作,其中之一是使用 actions/checkout 操作从他们的存储库中提取 e2e 测试。这将提取准备端到端测试所需的所有步骤,因为您只会在 PR 管道中调用共享操作。
其他可能有帮助的链接:
【讨论】: