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

GitLab CI使用artifacts跨作业传参时出现reports应为哈希类型报错

问题原因

  • 直接触发报错的原因是artifacts:reports的配置格式错误。GitLab CI要求该字段为哈希(键值对)结构,你当前配置使用了-开头的列表格式,不符合语法要求。
  • 额外存在文件名不匹配问题:你在script中将变量写入了deploy-prod.env文件,但dotenv配置中指向的是不存在的infra.env,即使修复语法问题也无法正常传递变量。

修正后的配置片段

before-script:
  script:
    - terraform --version
    - export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
    - export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
    - export TF_VAR_API_KEY=${TF_VAR_API_KEY}
    - export GIT_TOKEN=${GIT_TOKEN}

prepare-infra-code:
  stage: build
  script:
    - cd iac/
    - terraform init -force-copy -backend-config="address=https://gitlab.com/api/v4/projects/XXX/terraform/state/main" -backend-config="lock_address=https://gitlab.com/api/v4/projects/XX/terraform/state/main/lock" -backend-config="unlock_address=https://gitlab.com/api/v4/projects/XXX/terraform/state/main/lock" -backend-config="username=XXX" -backend-config="password=$GIT_TOKEN" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5"
    - terraform plan   
 ...
deploy-prod:
  stage: deploy
  script:
    - cd iac/
    - terraform init -force-copy -backend-config="address=https://gitlab.com/api/v4/projects/XXX/terraform/state/main" -backend-config="lock_address=https://gitlab.com/api/v4/projects/XXX/terraform/state/main/lock" -backend-config="unlock_address=https://gitlab.com/api/v4/projects/XXX/terraform/state/main/lock" -backend-config="username=XXX" -backend-config="password=$GIT_TOKEN" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5"
    - terraform apply --auto-approve
    - URL=$(terraform output api_url | cut -c2- | sed 's/.$//')
    - S3=$(terraform output bucket_name | cut -c2- | sed 's/.$//')
    - echo "REACT_APP_PORTFOLIO_API=$URL/portfolio" >> deploy-prod.env
    - echo "REACT_APP_TRANSACTION_API=$URL/transaction" >> deploy-prod.env
    - echo "FRONTEND_BUCKET=$S3" >> deploy-prod.env
  artifacts:
    reports:
      dotenv: deploy-prod.env

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:36:03