根据文档中提到的 -
https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/
没有提到将所有秘密变量存储在单个文件中,然后将该文件完全暴露给管道。
将每个变量定义为单独的秘密意味着每次添加新变量时我们都需要更新管道脚本。但是,如果有一个文件来保存所有秘密并动态公开所有这些秘密变量,我们就不需要在每次添加新变量时更新脚本。
FWIW,这与 Flutter 的情况类似 -
单独定义每个变量 -
--dart-define=someVariable=someValue --dart-define=otherVariable=otherValue --dart-define=thirdVariable=thirdValue
VS
将它们全部定义在一个文件中 -
--dart-define-from-file=<use-define-config.json>
那么,有没有办法在 bitbucket 秘密中实现类似的事情(通过 dart-define-from-file)?
安全免责声明:此答案中描述的方法有效地破坏了 Bitbucket Pipelines 安全功能,该功能可以防止在管道日志中打印秘密时意外泄露秘密。
您可以将整个点文件存储为秘密变量,然后导出其内容或将内容转储到某些工具可以加载的文件中。
但请注意
此外,所有步骤都应以
开头definitions:
yaml-anchors:
- &export-secrets >-
export $(echo $SECRETS | base64 --decode)
pipelines:
default:
- step:
script:
- *export-secrets
- # ...
或
definitions:
yaml-anchors:
- &dump-secrets >-
echo $SECRETS | base64 --decode > .env
pipelines:
default:
- step:
script:
- *dump-secrets
- # ...
恕我直言,不太值得。