在 travis-ci 中的阶段之间传递信息
Pass information between stages in travis-ci
我想使用免费的在线服务 transfer.sh 在 travis ci 的阶段之间共享构建工件。虽然 uploading/downloading 很简单,但问题是结果 URL 包含不可预测的部分,因此整个 URL 变得不可预测。
在早期上传工件时,我需要将结果 URL 传递给后期。 AFAIK,多阶段构建中的作业彼此严格隔离。
- 因此,我正在寻找如何在阶段之间传递 URLs 的想法。
- 也欢迎提出如何使用(注册)免费服务传递工件的想法。
我找到了在 Travis 上的构建阶段之间传递工件的解决方案-CI:滥用 github 版本。
- 在 github 存储库中创建一个标签,例如"travis-ci"
- 在.travis.yml中,设置TRAVIS_TAG=travis-ci.
- 向需要存储工件的阶段添加部署(部署到 github)步骤。创建并使用加密的 github 令牌进行身份验证。这甚至适用于 Windows 禁用了秘密环境变量的主机。此步骤需要 TRAVIS_TAG,否则它会创建一个我们不需要的新标签。
- 在每个文件名中包含当前的TRAVIS_BUILD_NUMBER
- 后期使用curl下载神器,因为URL现在可以预测了。
构建标签时,可以省略覆盖 TRAVIS_TAG 并使用该特定标签来存储中间工件。然后可以稍后手动删除它们。
[编辑] 我刚刚注意到 Travis 引入了一个名为 workspaces 的功能,这正是我想要的。无需上述解决方法。
我想使用免费的在线服务 transfer.sh 在 travis ci 的阶段之间共享构建工件。虽然 uploading/downloading 很简单,但问题是结果 URL 包含不可预测的部分,因此整个 URL 变得不可预测。
在早期上传工件时,我需要将结果 URL 传递给后期。 AFAIK,多阶段构建中的作业彼此严格隔离。
- 因此,我正在寻找如何在阶段之间传递 URLs 的想法。
- 也欢迎提出如何使用(注册)免费服务传递工件的想法。
我找到了在 Travis 上的构建阶段之间传递工件的解决方案-CI:滥用 github 版本。
- 在 github 存储库中创建一个标签,例如"travis-ci"
- 在.travis.yml中,设置TRAVIS_TAG=travis-ci.
- 向需要存储工件的阶段添加部署(部署到 github)步骤。创建并使用加密的 github 令牌进行身份验证。这甚至适用于 Windows 禁用了秘密环境变量的主机。此步骤需要 TRAVIS_TAG,否则它会创建一个我们不需要的新标签。
- 在每个文件名中包含当前的TRAVIS_BUILD_NUMBER
- 后期使用curl下载神器,因为URL现在可以预测了。
构建标签时,可以省略覆盖 TRAVIS_TAG 并使用该特定标签来存储中间工件。然后可以稍后手动删除它们。
[编辑] 我刚刚注意到 Travis 引入了一个名为 workspaces 的功能,这正是我想要的。无需上述解决方法。