Azure DevOps中来自不同repo的Cypress管道 [英] Cypress pipeline from different repo in Azure DevOps

查看:23
本文介绍了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)'

步骤简介:

  1. 触发器将是"开发"分支。
  2. 然后将必要的Cypress存储库定义为资源。
  3. 变量是可选的,但在可在管道定义外部配置的变量组中维护Cypress测试的必要机密或凭据(例如,测试用户的密码)是有意义的。
  4. 我没有添加单元测试作业的详细信息,因为您可能已经有了该作业。Cypress测试作业首先签出Cypress存储库(使用默认分支),安装Node和所有必需的软件包,最后执行您的Cypress测试。
作为提示,我还添加了如何将环境变量动态注入到Cypress测试执行中。这可以通过使用cypress_命名空间来完成,如here所述。

这篇关于Azure DevOps中来自不同repo的Cypress管道的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆