#azure-devops #azure-pipelines
#azure-devops #azure-конвейеры
Вопрос:
По некоторым причинам я хочу, чтобы мой A.yml вызывал другой B.yml из другого репозитория. Конвейер A считается «пустым» конвейером, его работа в основном заключается в вызове конвейера B, и B выполнил реальную работу. Но B — это не просто шаги, он содержит все детали, он также включает в себя «Ресурсы».
Вот как я это делаю:
Трубопровод А:
trigger:
- main
resources:
repositories:
- repository: script
type: github
name: xxx/script
ref: refs/heads/main
endpoint: smartracks
steps: **<---- What should I put ?**
- template: B.yml@script
Трубопровод B:
resources:
repositories:
- repository: rcu-service
type: github
name: abc/rcu-service
ref: refs/heads/main
endpoint: test
jobs:
- job: OpenEmbedded_Build_And_Export
steps:
- checkout: rcu-service
- script: |
......
Если я исключу «ресурсы» из конвейера B, это будет успешным (нужно добавить эти ресурсы в конвейер A).
Но как только я включил ресурс в конвейер B, он завершается с этим сообщением:
B.yml@script(Line: 1, Col: 1): Unexpected value 'resource' B.yml@script(Line: 24, Col: 1): Unexpected value 'jobs'
В конвейере A, вот как я вызываю конвейер B, я использую шаги, но, похоже, это не работает.
steps: **<---- What should I put ?**
- template: B.yml@script
Я пробую с этапами, заданиями, но тоже терплю неудачу.
Итак, я задаюсь вопросом, что мне делать? Пожалуйста, научи меня, спасибо.
Комментарии:
1. Вы проверили следующие ответы? Полезны ли они?
Ответ №1:
Azure Pipelines поддерживает четыре типа шаблонов:
- Этап
- Задание
- Шаг
- Переменная
Он не поддерживается resources
, вам нужно поместить resources
его в свой A.yml.
Ответ №2:
Представьте , что вы должны были развернуть шаблон так , чтобы он отображался в файле , который вы разместили - template:...
. В этом случае у вас будет
steps:
- jobs:
...
Это не работает, потому что схема требует, чтобы шаги были частью задания.
jobs:
- template: B.yml@script
или
stages:
- stage: stageName
displayName: "my stage"
jobs:
- template: B.yml@script
Комментарии:
1. Привет, спасибо, что поделились. Есть ли какой-нибудь способ / обходной путь, чтобы заставить это работать?
2. Вы могли бы попытаться структурировать свой основной файл конвейера, как один из двух примеров, которые я включил в свой ответ?