我已经定义了一个管道来运行我的赛普拉斯测试,这对于通过CRON任务运行自动化测试,或者当我们希望通过手动执行来运行自动化测试时效果很好:
schedules:
- cron: "0 6 * * *"
displayName: Daily 6AM test run
branches:
include:
- master
always: true
strategy:
parallel: 2
pool:
vmImage: "ubuntu-latest"
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.x"
displayName: "Install Node.js"
- task: CacheBeta@1
inputs:
key: npm | $(Agent.OS) | package-lock.json
path: /home/vsts/.npm
restoreKeys: npm | $(Agent.OS) | package-lock.json
displayName: Cache NPM packages
- task: CacheBeta@1
inputs:
key: cypress | $(Agent.OS) | package-lock.json
path: /home/vsts/.cache/Cypress
restoreKeys: cypress | $(Agent.OS) | package-lock.json
displayName: Cache Cypress binary
- script: npm ci
displayName: "Install NPM dependencies"
- script: npm run cy:verify
displayName: "Cypress verify"
- script: npm run cy:run:staging
displayName: "run Cypress"
- task: PublishPipelineArtifact@0
inputs:
artifactName: "screenshots"
targetPath: "cypress/screenshots"
condition: failed()
displayName: "Publish Screenshots (Cypress)"
- task: PublishPipelineArtifact@0
inputs:
artifactName: "videos"
targetPath: "cypress/videos"
condition: succeededOrFailed()
displayName: "Publish Videos (Cypress)"
- task: PublishTestResults@2
inputs:
testResultsFormat: "JUnit"
testResultsFiles: "**/test-output-*.xml"
testRunTitle: "Cypress Test Results"
publishRunAttachments: true
condition: succeededOrFailed()
continueOnError: true
但是,我们有一个用例,我们希望在生成新版本时针对新版本的管道运行赛普拉斯测试。
但是,我看不到将在管道中定义的YAML文件用作发布管道的“任务”的方法。
我想做的是可能的吗?
答案 0 :(得分:1)
您可以安装Trigger Build Task扩展名,并从发行版中排队YAML管道:
答案 1 :(得分:0)
我看不到使用在管道中定义的YAML文件的方法 作为发布管道的“任务”。
对于这个问题,如果您引用在发布管道中重用yaml管道中定义的任务,恐怕这是不可能实现的。您需要将yaml管道中定义的任务一一转换为经典管道中的相应任务。
您可以选择在发布管道中创建一个任务组,以包含需要重用的这些任务,然后,当您需要重用这些任务时,只需添加此任务组。这是document。
或者您可以将发布管道集成到到create a Multi-Stage pipeline的yaml管道中。每个阶段都描述CI / CD流程的一部分。
然后,您可以为赛普拉斯测试创建模板yaml文件。当creating a template时,您将创建一个单独的YAML文件,其中包含要重用的一组任务。要运行所有这些任务,您只需参考模板即可。如果您需要在不同的管道上运行同一组任务,并且为每个管道使用单独的YAML文件,则可以让每个YAML文件引用这些任务的模板。
关于YAML语法,请参阅this。