如何共享Travis-CI中使用的凭据

web*_*vet 5 travis-ci

如果我有一个私人注册表,例如Artifactory,与开发团队共享RW密钥的最佳方法是什么?当然,不希望所有开发者都拥有Travis-CI使用的通用RW密钥或凭据。(每个开发人员都有自己的)。

我想用私钥加密凭据,然后将该密钥提供给Travis-ci。这样就可以安全地分发加密的凭据并在travis-ui中使用作业设置。然后Travis将解密凭据并将其用于作业。

凭据不会泄漏,DevOps人员不会手动更新UI设置中的所有密钥,开发人员可以设置新的Travis作业并在Travis-ui中使用加密版本。大家都很开心 可能吗?

Car*_*ero 1

Travis 提供加密密钥

\n
\n

存储库\xe2\x80\x99s .travis.yml 文件可以具有\xe2\x80\x9c加密值\xe2\x80\x9d,例如环境变量、通知设置和部署 api 密钥。这些加密值可以由任何人添加,但只能由 Travis CI 读取。存储库所有者不保留任何秘密密钥材料。

\n

请注意,加密的环境变量不可用于来自 fork 的拉取请求

\n
\n

怎么运行的:

\n
    \n
  1. 下载并安装 Travis CLI

    \n
     gem install travis\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 加密变量

    \n
     travis encrypt SOMEVAR="secretvalue"\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
  5. .travis.yml然后您可以在using中使用加密值secure: (我猜这就是您所需要的,以免更改每个存储库中的环境变量)

    \n
     secure: ".... encrypted data ...."\n
    Run Code Online (Sandbox Code Playgroud)\n

    还可以.travis.yml通过执行以下命令自动将加密值包含到您的文件中:

    \n
     travis encrypt SOMEVAR="secretvalue" --add\n
    Run Code Online (Sandbox Code Playgroud)\n
  6. \n
\n

当 Travis 执行作业时,加密密钥,

\n
   env:\n     - secure: "encrypted string"\n
Run Code Online (Sandbox Code Playgroud)\n

变成

\n
   env:\n     - "decrypted string"\n
Run Code Online (Sandbox Code Playgroud)\n

我的管道也有同样的问题,我会尝试一下。

\n