OpenShift 部署
此页面记录了使用 dpl v1 进行的部署,dpl v1 目前是默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。有关详细信息,请参阅 我们的博文。您可以在 此处找到 dpl v2 文档。
Travis CI 可以在构建成功后自动部署您的 OpenShift 应用程序。
对于最小配置,您只需将以下内容添加到您的 .travis.yml
中
deploy:
provider: openshift
user: "YOU USER NAME"
password: "YOUR PASSWORD" # can be encrypted
domain: "YOUR OPENSHIFT DOMAIN"
目前,无法使用令牌代替密码,因为这些令牌过期得太快。我们正在与 OpenShift 团队合作寻找解决方案。
您还可以让 travis
工具为您设置所有内容
travis setup openshift
请记住,上述命令必须在您的项目目录中运行,以便它可以为您修改 .travis.yml
。
为了提供尽可能好的服务,Travis CI 已与 OpenShift 合作成为 合作伙伴,并且有一个官方的 Travis CI 快速入门 来帮助您入门。
要部署的应用程序 #
默认情况下,我们将尝试部署到与存储库同名的应用程序。例如,如果您从 GitHub 存储库 travis-ci/travis-chat 部署应用程序,而没有显式指定应用程序的名称,则 Travis CI 将尝试部署到名为 travis-chat 的 OpenShift 应用程序。
您可以通过 app 选项显式设置名称
deploy:
provider: openshift
...
app: my-app-123
也可以将不同的分支部署到不同的应用程序
deploy:
provider: openshift
...
app:
master: my-app-staging
production: my-app-production
如果这些应用程序属于不同的 OpenShift 域,则必须对域执行相同的操作
deploy:
provider: openshift
...
domain:
master: ...
production: ...
app:
master: my-app-staging
production: my-app-production
要从中部署的分支 #
如果您有特定于分支的选项,如 上面所示,Travis CI 将自动确定要从中部署的分支。否则,它将仅从您的 master 分支部署。
您还可以使用 on 选项显式指定要从中部署的分支
deploy:
provider: openshift
...
on: production
或者,您还可以将其配置为从所有分支部署。
deploy:
provider: openshift
...
on:
all_branches: true
从 Pull Request 触发的构建永远不会触发部署。
部署构建工件 #
在您的测试运行完毕且在部署之前,Travis CI 将清理您进行的任何其他文件和更改。
这可能不是您想要的,因为您可能会生成一些也应该部署的工件(例如资产编译)。现在有一个选项可以跳过清理
deploy:
provider: openshift
...
skip_cleanup: true
条件发布 #
只有在满足某些条件时才能部署。请参阅 使用 on:
进行条件发布。
关于 .gitignore
的说明 #
由于此部署策略依赖于 git
,请注意部署将遵守 .gitignore
。
如果您的 .gitignore
文件匹配构建创建的内容,请使用 before_deploy
更改其内容。
在部署前后运行命令 #
有时您希望在部署之前或之后运行命令。您可以为此使用 before_deploy
和 after_deploy
阶段。只有在 Travis CI 实际进行部署时才会触发这些阶段。
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh
部署分支 #
OpenShift 可以配置为通过 rhc app-configure --deployment-branch mybranch
从与默认 master
不同的分支进行部署。
如果您已对您的应用程序执行此操作,请使用 deployment_branch
指定此所需分支
deploy:
provider: openshift
...
deployment_branch: mybranch