cf plugin for using a github remote for managing cf app deployments
On OSX using release binaries
$ wget -O $GOPATH/bin/deploycloud https://github.com/xchapter7x/deploycloud/releases/download/v1.0.1/deploycloud_darwin_amd64
$ cf install-plugin $GOPATH/bin/deploycloud
On Linux using release binaries
$ wget -O $GOPATH/bin/deploycloud https://github.com/xchapter7x/deploycloud/releases/download/v1.0.1/deploycloud_linux_amd64
$ cf install-plugin $GOPATH/bin/deploycloud
On Windows using release binaries
#in your browser download https://github.com/xchapter7x/deploycloud/releases/download/v1.0.1/deploycloud_windows_amd64.exe and place it in $GOPATH/bin/deploycloud.exe
$ cf install-plugin $env:GOPATH/bin/deploycloud.exe
*On nix using go get
$ go get github.com/xchapter7x/deploycloud
$ cf install-plugin $GOPATH/bin/deploycloud
On Windows using go get
$ go get github.com/xchapter7x/deploycloud
$ cf install-plugin $env:GOPATH/bin/deploycloud.exe
available args
--list "list apps available in config file (defaults to false)"
--run "run the selected deployment (takes a string value)"
--show "show the selected deployment's details (takes a string value)"
--config "path to remote config file (takes a string value & has default `config.yml`"
--org "the target org in github (takes a string value)"
--repo "the target repo in github (takes a string value)"
--branch "the target branch in your github repo (takes a string value)"
--url "the target github base url (takes a string value & defaults to https://raw.github.com/)"
--token "the oauth token for your github account (uses GH_TOKEN Env var by default)"
--cfuser "the cf username to use when logging in to the deployment target (uses CF_USER Env var by default)"
--cfpass "the cf user's password to use when logging in to the deployment target (uses CF_PASS Env var by default)"
--no-manifest "allows the user to not have the plugin auto append a `-f <manifest.yml>` to the given command
sample calls
#List available apps to deploy
$ cf cloud-deploy --list --org xchapter7x --repo deploycloud --branch master
#Show details of deployment
$ cf cloud-deploy --show myapp.development --org xchapter7x --repo deploycloud --branch master
#Run an available application deployment
$ cf cloud-deploy --run myapp.development --org xchapter7x --repo deploycloud --branch master
by setting the following env vars you can avoid the need to pass them into the cli
`GH_TOKEN` - env var name to store your github oauth token
`CF_USER` - env var name to store your cf user
`CF_PASS` - env var name to store your cf user's password
By default the plugin will look for a config.yml
file in the root of the given repo.
You can overwrite this default by passing the --config
flag to the plugin with the relative path of the config in the repo
** Sample repo to use as reference https://github.com/xchapter7x/deployments **
Sample:
---
applications:
#an application record
myapp1:
#list of deployments associated with this app
deployments:
# one of the deployement details records
- name: development #name of deployment
url: api.pivotal.io #url to target during push
org: myorg # org to target during push
space: thespace # space to target during push
path: myapp1/development #path to desired manifest (relative to the root of this repo)
push_cmd: cf push appname -i 2 #push command to execute (note: the above manifest will be used via a added `-f`, so dont add it here)
# another deployment definition for the myapp1 application
- name: production
url: api.pivotal.io
org: myorg
space: prodspace
path: myapp1/production
push_cmd: cf push-zdd appname_prod -i 8
myotherapp:
deployments:
- name: dev
url: api.other.pivotal.io
org: otherorg
space: otherspace
path: myotherapp/development
push_cmd: cf push appname_dev -i 2