【发布时间】:2020-10-15 10:33:30
【问题描述】:
我正在尝试实现一些简单的事情。以下 bash 脚本在 Teamcity 中运行
#!/bin/bash
awsEnv=%env.environment%
s3Bucket="%%env.${'$'}{awsEnv^^}_S3_BUCKET%%"
aws s3 cp test.json s3://${'$'}s3Bucket/artifacts/output.json
我有一个环境变量%env.environment%,其值可以是DEV 或stg 或PROD。如果DEV 是输入时提供的值,则 bash 脚本会尝试构造另一个
在这种情况下动态环境变量 %env.DEV_S3_BUCKET% 如第 2 行所示。这又在 aws s3 cp 步骤中使用。
但是,当它在 Teamcity 中运行时,这是它抛出的错误
upload failed: test.json to s3://%env.DEV_S3_BUCKET%/artifacts/output.json Parameter validation failed:
04:54:07
Invalid bucket name "%env.DEV_S3_BUCKET%" : Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
我原以为它会用 %env.DEV_S3_BUCKET% 的值替换它,但它没有。
我在这里缺少什么?这可以在 Teamcity 中一步完成吗?
附:环境变量%env.DEV_S3_BUCKET% 已在 Teamcity 中定义。
【问题讨论】:
标签: continuous-integration teamcity