5

我正在尝试将一些加密的变量与 travis-ci.com 一起使用,当 travis 从提交执行构建时,它们没有正确解码。您可以看到它何时执行导出它只是一个胡言乱语的 VAR。

设置:

  1. 在 Ubuntu 上运行:buster/sid
  2. 我已经安装了 ruby​​-full
  3. 我已经安装了宝石 travis: 1.8.8
  4. 我已经提取了我的存储库,并且正在使用 .travis.yml 在文件夹中执行加密命令
  5. 在我第一次运行 encrypt 命令时,它要求我验证它是否有正确的 repo。
  6. 我希望我得到正确的公钥,但它肯定看起来不像。
  7. 这一切都发生在 docker 容器中。
  8. 我致力于掌握。没有拉取请求。

我已经尝试或搞砸的其他事情:

  1. var 周围的单引号。
  2. 多个变量或缺少破折号。拥有多个变量会稍微改变格式,因为它们在安全前面有一个“-”。该行将如下所示: - secure INXfNQealZn84xzQ6M0g...
  3. 在错误的 repo 文件夹中运行加密。

用于生成 MYVAR 的命令:

root@31ee1eba15d3:~/tigelane/stuff# travis encrypt MYVAR="somestuff" --add env.global
root@31ee1eba15d3:~/tigelane/stuff# tail -3 .travis.yml
env:
  global:
    secure: INXfNQealZn84xzQ6M0gyhqPOeF1GhOZ8g7V6bqqqZbbgPsW1eOUntJOMo/uilvG8j6BbV3SW8kiDjmH4TjrTCKJ4hevzunoKumXXGpiYQNj74LsCPgyiohebyWgf4cP/F71ay6vHzghfGYAnu2svBMHKIFTj8s8aOCVDIo/ntsmkeeRVfOMMMNFbNQEHTqSw0981xYdrMVrISFw/BgEHia0PQn7Ll9YUN0/lQ9AFamyrflfp8dS3toP0fZiPnfgxIaENXS1wsQkCheday6quyAG8j6LE9YUHLq4Yzv5ZyRp/aOivugc8MKA+qAcFGpwhrcAGz5Rbo9lNXFnrcF93mqBs2FO0OLOWExjBryPH5shO/YWGNYWDX8cykOC4+AXmlUMcsgIHihKXSHB0E5Qo+dFyVKKSeLfpLOVHg+utf1thm9pxhW2DGynqCktHS26Bnfhr5Hay2CCYrv+eI8E5sv8ZzqRPDNdtuCsIxO1+UCVfavp9BDW3YxtZg44TNR+fA258SFa7KZtJtG95kOPNwWnBJQiITuu85OjY36pCwsJX0vq883RAOA/jIdNn+eYsyvyHi5cfQGUPD3HGLh9+zN+LQURXHrYu6tfjPjcIk83c37MtGEfmYcwgLzAxYL61SXJbr0IIEVc1x3+sqI72mUtHwsyUxmgpoGVoyZcJrg=

我在 Travis 工作日志中得到的输出:

Setting environment variables from .travis.yml
$ export sqI72mUtHwsyUxmgpoGVoyZcJrg=[secure]

我在 Travis 工作日志中预期的输出:

Setting environment variables from .travis.yml
$ export MYVAR=[secure]
4

2 回答 2

1

我知道解决方案,至少在我的情况下。当您使用 travis 加密时。您应该指定是否在 travis-ci.com 域上运行。如果您正在使用链接到 travis 集成的公共 github。您需要使用 --com 参数

例子:

travis encrypt --com "MYVAR='something'"

这给出了正确的输出。在手册中,它没有为这个标志提供足够的状态,所以我起初忽略了它,并不确定它做了什么。显然这是因为它具有不同的加密密钥。

于 2019-04-22T07:45:51.637 回答
0

你忘记了一个破折号:

env:
  global:
    - secure: INXfNQe…

请参阅https://docs.travis-ci.com/user/environment-variables/#defining-encrypted-variables-in-travisyml

于 2018-08-12T20:52:19.907 回答