如何用动态股票代码数组并行运行GitLab CI自动化测试
GitLab CI 动态股票代码并行测试配置方案
核心实现思路
通过GitLab CI的parallel:matrix特性结合动态变量生成,实现股票代码的并行测试,同时配置allow_failure: true保证单个测试失败不会终止整个流水线流程。
具体配置方案
1. 静态预定义股票代码列表(适用于固定测试标的)
直接在CI配置中定义股票代码数组,快速生成并行测试任务:
stages: - run-stock-tests stock-calculation-test: stage: run-stock-tests parallel: matrix: - TICKER: ["AAPL", "GOOGL", "MSFT", "AMZN"] allow_failure: true script: - echo "启动股票代码 $TICKER 的计算测试" - # 替换为你的自动化测试命令,比如:python stock_calc.py --ticker $TICKER - echo "测试完成,结果输出到 $TICKER-result.log" artifacts: paths: - "$TICKER-result.log" when: always
2. 动态生成股票代码列表(适用于从文件/接口获取标的)
如果股票代码需要动态获取(比如从配置文件、数据库或外部接口),可以通过前置任务生成变量传递给测试阶段:
stages: - prepare-tickers - run-stock-tests # 前置任务:生成动态股票代码列表 prepare-ticker-list: stage: prepare-tickers script: - # 示例:从本地文件读取股票代码并转为逗号分隔字符串 - ticker_str=$(cat tickers.txt | tr '\n' ',' | sed 's/,$//') - echo "TICKER_ARRAY=$ticker_str" >> variables.env artifacts: reports: dotenv: variables.env # 动态并行测试任务 stock-calculation-test: stage: run-stock-tests needs: [prepare-ticker-list] parallel: matrix: - TICKER: $TICKER_ARRAY allow_failure: true script: - echo "启动股票代码 $TICKER 的计算测试" - python stock_calc.py --ticker $TICKER artifacts: paths: - "$TICKER-result.csv" when: always
关键配置说明
parallel:matrix:通过TICKER数组自动生成独立并行job,每个job对应一个股票代码的测试任务allow_failure: true:单个测试失败不会中断整个流水线,其他股票的测试任务仍会正常执行artifacts: when: always:无论测试成功或失败,都会保留对应股票的输出结果文件,方便后续排查- 动态变量传递:通过
dotenv报告传递生成的股票代码字符串,GitLab CI会自动将其解析为数组
注意事项
- 动态生成的
TICKER_ARRAY必须是逗号分隔的字符串(如"AAPL,GOOGL,MSFT"),才能被GitLab CI正确解析为数组 - 如果股票代码包含特殊字符,需要在生成变量时做好转义处理
- 可通过
parallel:count参数限制并行job的数量,避免资源占用过高
内容的提问来源于stack exchange,提问作者ANSOLO
相关产品推荐
相关产品推荐

