git - Travis-CI:将不同的分支部署到不同的服务器

标签 git deployment continuous-integration travis-ci cloud-foundry

目前,我正在尝试结合使用 github 存储库和 Travis-CI 为持续集成设置一个概念项目。

My.travis.yml 看起来像这样

language: java
jdk:
- oraclejdk8
before_cache:
- rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- "$HOME/.gradle/caches/"
- "$HOME/.gradle/wrapper/"
branches:
 only:
 - master
 - develop

deploy:
 provider: cloudfoundry
 api: https://api.eu-gb.bluemix.net
 username: j.cuppen@acuity.nl
 password:
  secure: [key]
 organization: 'Acuity\ Stagiairs'
 space: 'stage\ job'
 on:
  repo: JasonLighthunter/GradleTest
  branch: develop

我的 manifest.yml 看起来像这样:

---
applications:
- name: gradleweb
  memory: 512M
  host: gradleTest
  path: build/libs/GradleTest.war

目前,当我 push 开发时,它会构建并部署到 gradleTest.eu-gb.mybluemix.net

我想弄清楚的是我如何配置 travis,以便在推送主服务器时将其部署到,比方说:gradleProd.eu-gb.mybluemix.net

提前致谢

最佳答案

您可以为每个部署指定 manifest 文件。将您的 .travis.yml 更改为:

deploy:
  - provider: cloudfoundry
    edge: true
    username: ${CF_USERNAME}
    password: ${CF_PASSWORD}
    organization: ${CF_ORGANIZATION}
    space: ${CF_SPACE}
    api: https://api.ng.bluemix.net/
    manifest: manifest.master.yml
    on:
      branch: master
  - provider: cloudfoundry
    edge: true
    username: ${CF_USERNAME}
    password: ${CF_PASSWORD}
    organization: ${CF_ORGANIZATION}
    space: ${CF_SPACE}
    api: https://api.ng.bluemix.net/
    manifest: manifest.develop.yml
    on:
      branch: develop

在这种情况下,您可以添加两个文件:manifest.develop.ymlmanifest.master.yml

关于git - Travis-CI:将不同的分支部署到不同的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506192/

相关文章:

git-commit - git commit --squash 选项有什么作用,为什么会有用?

windows - Git - 无法在 Windows 上推送到本地裸存储库

git - 我怎样才能回去测试哪里出了问题?

docker - Gitlab CI 服务端口是如何公开的?

Jenkins Pipeline - 如何从并行构建中获取日志

git - 为什么我不能将这个目录添加到git?

java - Eclipse 中的链接项目/文件夹不会部署在 tomcat 中

C# 应用程序在特定日期自毁

python - 使用 uWSGI 部署 Pylons

c# - 使用 MSBuild 在 Jenkins 中构建 .net 应用程序