azure-pipelines - 使用参数化模板来避免代码重复会导致错误消息:'A sequence was expected'
问题描述
对于我们的构建,我想使用一个为每个推送/拉取请求触发的阶段,构建矩阵中的参数组合数量有限。
另一个阶段,每晚使用预定的构建执行,我想使用带有所有参数组合的完整构建矩阵。由于 Azure Pipelines不支持构建矩阵的紧凑表示,我至少想将构建矩阵放入一个单独的文件中,以便该文件至少排列清楚。
azure-pipelines.yml(主文件)
stages:
- stage: ci_build_on_default_pool
jobs:
- template: tools/azure-pipelines/azure-jobs.yml
parameters:
stage_name: ci_build_on_default_pool
pool_definition:
name: Default
test_strategy:
- template: tools/azure-pipelnes/ci-build-matrix.yml
- stage: ci_build_on_azure_os_free_pool
jobs:
- template: tools/azure-pipelines/azure-jobs.yml
parameters:
stage_name: ci_build_on_azure_os_free_pool
pool_definition:
vmImage: 'ubuntu-latest'
test_strategy:
- template: tools/azure-pipelnes/ci-build-matrix.yml
# Special stage for midnight build:
- stage: cron_build_on_azure_os_free_pool
condition: eq(variables['Build.Reason'], 'Schedule')
jobs:
- template: tools/azure-pipelines/azure-jobs.yml
parameters:
stage_name: cron_build_on_azure_os_free_pool
pool_definition:
vmImage: 'ubuntu-latest'
test_strategy:
matrix:
core:
parameter: core
python:
parameter: python
libraries:
parameter: libraries
azure-jobs.yml(包含构建作业定义的文件)
parameters:
pool_definition:
stage_name:
test_strategy: {}
jobs:
[ ... ]
- job: runOnAzure_test
pool: ${{parameters.pool_definition}}
container: flink-build-container
strategy: ${{parameters.test_strategy}}
steps:
ci-build-matrix.yml(两个阶段共享的默认矩阵定义)
matrix:
core:
parameter: core
python:
parameter: python
libraries:
parameter: libraries
[ ... ]
完整的源代码可在此处获得。
使用这些输入,我收到以下错误:
/tools/azure-pipelines/azure-jobs.yml (Line: 60, Col: 13): A sequence was not expected
我该如何解决这个问题?
解决方案
我记得当我第一次开始使用模板时遇到过这个问题。我很确定它必须与模板的第一步有关,这必须是一项任务。
推荐阅读
- java - 如何使用“group by”从 mybatis sql 获取 Map 结果?
- c++ - xy::isfinite 可在 Linux、BSD 和 Windows 上编译,但不能在 SmartOS 上编译
- tensorflow - 'NumpyArrayIterator' 中的输入数据应该有 4 级。你传递了一个形状为数组的数组', (120000, 0)
- flutter - 在颤动中渲染时间后将子小部件的大小获取到父小部件
- java - 如何在 thymeleaf 页面中显示来自 BindingResult.reject("message") 的消息
- matlab - 在 simscape 多体中建模 segway 机器人
- spring-boot - Spring Boot - 本地化到达自定义(DWR)AbstractController 的请求,本地化子线程,LocaleResolver 与 LocaleChangeInterceptor
- python - 如何将二维 numpy 数组中的所有数字转换为字符串?
- spring-boot - Spring Boot Maven 插件 > 2.4.x 构建镜像在 GitLab 注册表上发布
- sql-server - 无法使用特殊主体 'sa' - ant sql 任务