我已经创建了一个新的OneBuild管道,并将OneBuild.Buddy.yml
与之关联。但当尝试在此处运行验证时:
我们得到:
验证:/. pipelines/一个分支.好友. yml:按名称模板找不到存储库
但是文件存在--这很清楚,因为内容就显示在那里。那么这个错误意味着什么呢?
注意:这个问题与一个类似名称的问题ADO YAML failing: No repository found by name templates不同,因为那个问题有语法错误,而我的问题传递了一个独立的yml验证器
这里是管道yaml
# Pipeline that builds whl file
trigger:
- feature/*
variables:
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
ENABLE_PRS_DELAYSIGN: 1
ROOT: $(Build.SourcesDirectory)
REPOROOT: $(Build.SourcesDirectory)
OUTPUTROOT: $(REPOROOT)\out
NUGET_XMLDOC_MODE: none
WindowsContainerImage: 'cdpxwin1809.azurecr.io/global/vse2019:latest' # Docker image which is used to build the project https://aka.ms/obpipelines/containers
BLACK_OPTS: '-vv --diff -t py38 --check'
pool:
vmImage: ubuntu-latest
extends:
template: v2/OneBranch.Official.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
parameters:
cloudvault: # https://aka.ms/obpipelines/cloudvault
enabled: false
globalSdl: # https://aka.ms/obpipelines/sdl
tsa:
enabled: false # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
# credscan:
# suppressionsFile: $(Build.SourcesDirectory)\.config\CredScanSuppressions.json
binskim:
break: true # always break the build on binskim issues in addition to TSA upload
policheck:
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
# suppression:
# suppressionFile: $(Build.SourcesDirectory)\.gdn\global.g
stages:
- stage: test
jobs:
- job: Run Tests
steps:
- script: |
python -m pip install --upgrade pip
python -m pip install pytest
displayName: "Install dependencies"
# this runs the unit tests
- script: |
make test
displayName: "Run unit tests"
- task: Bash@3
inputs:
filePath: $(Build.SourcesDirectory)/src/framework/scripts/run-unit-tests-report
- stage: build
jobs:
- job: Build Wheel
steps:
# This builds the whl from the code repo using the path defined in workingDirectory
- task: Bash@3
inputs:
targetType: 'inline'
workingDirectory: $(Build.SourcesDirectory)/src/framework
script: |
make dist
displayName: Make the whl
- stage: publish
jobs:
- job: Copy Wheel Artifact
steps:
# This copies the whl generated in the previous step to the artifact staging directory
- task: CopyFiles@2
inputs:
SourceFolder: $(Build.SourcesDirectory)/src/framework/dist
Contents: '**.whl'
targetFolder: $(Build.ArtifactStagingDirectory)
displayName: Copy to artifact staging
- job: Publish Wheel
steps:
# Publishes the whl artifact to the artifact feed
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'dist'
displayName: Publish to artifact feed
2条答案
按热度按时间dsekswqp1#
在您的管道中,您有以下部件:
问题是
v2/OneBranch.Official.CrossPlat.yml@templates
意味着:从资源
templates
获取文件v2/OneBranch.Official.CrossPlat.yml
但是我根本没有看到资源
templates
和任何其他资源的任何定义。如果我们参考文档:
蔚蓝管道|模板类型和用法
因此,您需要:
1.定义名为
templates
的资源(存储库)。1.稍后使用
template: v2/OneBranch.Official.CrossPlat.yml@templates
引用其中的文件。nvbavucw2#
您需要定义
repository
资源,以便管道知道@templates
的位置。即
参考:https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/resources-repositories-repository?view=azure-pipelines
如果模板与管道位于同一个存储库中,则不需要指定
@templates
--@templates
将引用名为templates
的存储库资源。