如何在Bitbucket Pipeline中获取当前日期时间作为变量?
解决Bitbucket Pipeline中使用当前日期时间作为变量的问题
你的配置里variables块中的$(date +%Y-%m-%d_%H:%M:%S)无法被解析,是因为Bitbucket Pipeline的变量定义阶段不支持执行Shell命令——这个阶段的变量值会被直接当作字符串处理,不会触发Shell的命令替换。
下面是两种可行的解决方法:
方法1:在Step的Script中直接生成变量
在Step的script块里定义变量,这里是在Shell环境中执行,能正常解析date命令:
pipelines: custom: build-docker-img: - step: name: Build my image script: # 直接在Shell中生成带日期的标签变量 - MY_TAG=$(date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER - docker build -t myname/myapp:$MY_TAG .
如果需要统一时区(比如UTC),可以给date命令指定时区:
MY_TAG=$(TZ=UTC date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER
方法2:跨Step复用日期变量
如果需要在多个Step中使用这个日期标签,可以通过生成环境变量文件并传递 artifacts 的方式实现:
pipelines: custom: build-docker-img: - step: name: Generate build tag script: # 将变量写入环境文件 - echo "MY_TAG=$(date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER" > build-tag.env # 标记需要传递到下一个Step的文件 artifacts: - build-tag.env - step: name: Build my image script: # 加载环境变量文件 - source build-tag.env - docker build -t myname/myapp:$MY_TAG .
内容的提问来源于stack exchange,提问作者user842225
相关产品推荐
相关产品推荐

