You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bitbucket-pipelines.yml中为步骤的YAML锚点传递参数

原生YAML锚点本身不支持直接传递参数,但你可以结合Bitbucket Pipelines的步骤变量特性 + YAML合并语法实现需求,最终配置写法非常接近你预期的效果,不需要再重复编写after-script逻辑,可直接运行的配置如下:

definitions:
  steps:
    - step: &node-build
        name: Build React app
        image: node:lts-alpine
        script:
          - npm install --no-optional
          - npm run build
        artifacts:
          - build/**
    - step: &aws-ecr-s3
        name: AWS S3 deployment
        image: amazon/aws-cli
        script:
          - aws configure set aws_access_key_id "${AWS_KEY}"
          - aws configure set aws_secret_access_key "${AWS_SECRET}"
          - aws s3 cp ./build s3://${S3_BUCKET} --recursive

pipelines:
  branches:
    master:
      - step: *node-build
      - step:
          <<: *aws-ecr-s3
          variables:
            S3_BUCKET: "my-app-site-dev"
    staging:
      - step: *node-build
      - step:
          <<: *aws-ecr-s3
          variables:
            S3_BUCKET: "my-app-site-uat"

实现逻辑说明:

  • 所有需要动态传入的参数都可以提前在可复用步骤的script中用变量占位,不需要提前在项目的仓库变量中定义这些参数
  • 调用锚点时只需要通过variables字段给对应变量赋值即可,其余配置会完全继承锚点的定义,不需要重复编写逻辑
  • 如果后续需要新增动态参数,只需要在variables中新增键值对即可,扩展性强

内容的提问来源于stack exchange,提问作者LuisEnMarroquin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:21:02