Rackspace Cloud Files 部署
此页面记录了使用 dpl v1 进行的部署,该版本目前是默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。请参阅 我们的博文 获取详细信息。 dpl v2 文档可在此处找到。
在构建成功后,Travis CI 可以自动将您的构建上传到 Rackspace Cloud Files。
对于最简单的配置,您只需将以下内容添加到您的 .travis.yml
中
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
此示例几乎肯定不是理想的,因为您可能希望上传构建的二进制文件和文档。将 skip_cleanup 设置为 true 以防止 Travis CI 删除您的构建工件。
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
建议您加密 Rackspace api 密钥。假设您已安装 Travis CI 命令行客户端,您可以按以下方式进行操作
travis encrypt --add deploy.api-key
系统会提示您在命令行中输入您的 api 密钥。
您还可以让 travis
工具为您设置所有内容
travis setup cloudfiles
请记住,上述命令必须在您的项目目录中运行,以便它可以为您修改 .travis.yml
。
按标签部署 #
通常,您只想在发布代码的新版本时进行部署。
您可以告诉 Travis CI 仅在标签上部署,如下所示
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
on:
tags: true
仅部署到一个文件夹 #
通常,您不希望将整个项目上传到 Cloud Files。您可以告诉 Travis CI 仅将单个文件夹上传到 Cloud Files。此示例将项目的构建目录上传到 Cloud Files
before_deploy: "cd build"
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
部署到多个容器: #
如果要上传到多个容器,可以执行以下操作
deploy:
- provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
- provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
要从中发布的分支 #
您可以使用 on 选项显式指定要从中发布的分支
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
on:
branch: production
或者,您还可以配置 Travis CI 从所有分支发布
deploy:
provider: cloudfiles
username: "RACKSPACE USERNAME"
api_key: "RACKSPACE API KEY"
region: "CLOUDFILE REGION"
container: "CLOUDFILES CONTAINER NAME"
skip_cleanup: true
on:
all_branches: true
从拉取请求触发的构建永远不会触发发布。
条件发布 #
您只有在满足某些条件时才能部署。请参阅 使用 on:
进行条件发布。
在发布前后运行命令 #
有时您希望在发布 gem 前或后运行命令。为此,您可以使用 before_deploy
和 after_deploy
阶段。只有在 Travis CI 实际推送发布时才会触发这些阶段。
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh