Azure DevOps中来自不同repo的Cypress管道 [英] Cypress pipeline from different repo in Azure DevOps
本文介绍了Azure DevOps中来自不同repo的Cypress管道的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将Cypress测试添加到ASP.NET应用程序。这是一个.NET4.5网站,我不确定如何将其添加到现有的repo中,所以我决定在同一个Azure DevOps项目中为它创建一个单独的网站。因此,我的Azure DevOps项目有两个Repos:一个用于Web应用程序,另一个用于Cypress。
我需要创建一条管道,每当Web应用程序repo的开发分支发生更改时,该管道就会运行。它需要从Web应用程序存储库构建并运行单元测试,然后还需要从Cypress存储库运行Cypress测试。
我很难把这些组合在一起。是否有人可以帮助创建完成这些任务的通用管道?一些可以帮助我弄清楚我需要往哪个方向走的东西。
推荐答案
因为您要从Web App管道中的另一个单独的存储库运行Cypress测试,所以必须从Web App的Yaml文件中签出Cypress存储库。
假设您的流水线没有阶段并且由多个作业组成,例如一个用于执行Web App中的任何内容,另一个用于Cypress测试,这将是一种可能的方法:
trigger:
- develop
resources:
repositories:
- repository: your-cypress-repo
type: git
name: your-azure-devops-project/your-cypress-repo
variables:
- group: cypress-variables
jobs:
- job:
# execute the unit tests or build of your web app here
- job: cypress_tests
displayName: 'Cypress Tests'
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: your-cypress-repo
- task: NodeTool@0
inputs:
versionSpec: '14.x'
workingDirectory: $(Build.SourcesDirectory)
displayName: 'Install Node.js'
- task: Npm@1
inputs:
command: 'ci'
workingDirectory: $(Build.SourcesDirectory)
displayName: 'Execute npm clean-install'
- script: |
npm run {your package.json script for cypress test execution}
workingDirectory: $(Build.SourcesDirectory)
displayName: Cypress Tests
env:
CYPRESS_BASE_URL: '$(baseUrl)'
CYPRESS_someOtherEnvVariable: '$(someOtherEnvVariable)'
步骤简介:
- 触发器将是"开发"分支。
- 然后将必要的Cypress存储库定义为资源。
- 变量是可选的,但在可在管道定义外部配置的变量组中维护Cypress测试的必要机密或凭据(例如,测试用户的密码)是有意义的。
- 我没有添加单元测试作业的详细信息,因为您可能已经有了该作业。Cypress测试作业首先签出Cypress存储库(使用默认分支),安装Node和所有必需的软件包,最后执行您的Cypress测试。
这篇关于Azure DevOps中来自不同repo的Cypress管道的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文