Ищу причину, по которой DEV Environment не запускается сразу после этапа тестирования. Общее правило таково: у меня есть два конвейера: первый выполняет только тестирование, затем запускает второй конвейер, который должен выполнить фактическое развертывание с использованием Terraform в среде разработки. Первая часть работает, т. е. первый конвейер корректно запускает второй, но запущенный не запускает среду разработки.
конвейер.yaml
name: MySource
resources:
repositories:
- repository: Library
ref: test/pipeline
trigger:
batch: true
branches:
include:
- test/pipeline
parameters:
- name: pipelineMode
displayName: Pipeline Mode
type: string
default: main
values:
- auto
- feature
- main
- release
# rest of the code goes here
Это должно вызвать следующее:
зависимый_pipeline.yaml
trigger: none
resources:
repositories:
- repository: Library
ref: test/pipeline
pipelines:
- pipeline: test-triggered
project: DEV
source: 'library'
trigger:
branches:
include:
- test/pipeline
parameters:
- name: pipelineMode
displayName: Pipeline Mode
type: string
default: main
values:
- auto
- feature
- main
- release
extends:
template: main-pipeline.yml
parameters:
devEnv: dev
devVar: dev_variables.yml
deployEnvTemp: deploy.yml
Взглянув на ваш код, я вижу несколько проблем в dependant_pipeline.yaml
:
Не хватает нескольких параметров: devEnvironment
, devVariables
, deployEnvironmentTemplate
и deployParameters
.
Вы забыли передать параметр pipelineMode
в /templates/build.yml
@Kreg Я предлагаю вам исправить некоторые из упомянутых мной проблем, а затем создать минимальный воспроизводимый пример для решения проблем, которые вы обнаружите по одной. Без обид, но я не хочу тратить часы, пытаясь выяснить, что не так в таком количестве шаблонов, особенно зная, что в некоторых случаях вы не показываете все шаблоны.
Я понимаю, поэтому добавляю еще шаблоны, которые называются. Надеюсь, это поможет, если нет, дайте мне знать, чего не хватает.
@Крег, тебе все еще нужно исправить проблемы, которые я упомянул, например. передайте параметр pipelineMode
в /templates/options.yml
.
Я добавил изменения на основе вашего комментария (если я правильно понял), однако Dev env. пропускает. Я отредактировал основной вопрос, добавив свои изменения внизу.
@Kreg Я до сих пор не понимаю, где находятся переменные, которые я упомянул в своем ответе.
Эти изменения находятся в файле main-pipeline.yaml, я его тоже добавил.
Я сам теряюсь :( уже несколько дней никакого прогресса. Я отредактировал свой основной вопрос.
При указании среды в задании развертывания в конвейере YAML не указывайте только имя среды. Если вы укажете только имя среды, конвейер не будет использовать ресурсы, добавленные в среду, для задания развертывания.
Чтобы задание развертывания могло использовать ресурсы в указанной среде, вы можете выполнить любую из следующих конфигураций:
Укажите тип ресурса, используя клавишу «resourceType
». Например, в приведенном ниже примере при развертывании будут использоваться все ресурсы типа виртуальной машины из указанной среды. Он создаст задание развертывания для каждого ресурса типа виртуальной машины.
jobs:
- deployment: deployB
environment:
name: ${{ variables.myEnv }}
resourceType: virtualMachine
Вы также можете использовать клавишу «resourceName
», чтобы настроить развертывание только на использование определенного ресурса. Например, в приведенном ниже примере при развертывании будет использоваться только ресурс «Ubuntu2204-01
» из указанной среды. Он создаст только одно задание развертывания для указанного ресурса.
jobs:
- deployment: deployB
environment:
name: ${{ variables.myEnv }}
resourceName: Ubuntu2204-01
Спасибо также Брайту за ваше время и поддержку. Проблема заключалась в передаче параметра PipelineMode. Теперь это работает.
Руи, можем ли мы перейти в чат? У меня есть много шаблонов, которые могут быть запутаны для объяснения, и некоторые из них мне все равно придется вырезать.