Use this at your own risk. This is created solely for personal use!
A Continuous Delivery tool written in Go.
$ make
Create a file go-deploy.yml and add your configuration in it
build_directory: "~"
projects:
project_name:
vcs:
link: "https://github.com/ruudvdd/go-deploy"
environments:
production:
vcs:
branch: "staging"
build:
cmd:
- "build"
- "deploy"
build_directory
: The directory where to clone the projects for preparing the deployprojects
: Add your different project configrations here in the same format as above example with key (project_name) the name of the projectvcs.link (project)
: Required on project level. The URL where the project is stored. Currently only git repositories are supported. WIP: Support for private repositories via OAuthenvironments
: Add your different environment configurations herevcs (environment)
branch
: The branch you want to deploy and will be checked out during the process
build.cmd
: List of bash commands to run to deploy the project. The deploy will stop when one of these commands fail (return code <> 0).
Run
$ go-deploy <project_name> <environment_name>
By default the go-deploy.yml configuration file in the current working directory will be used. To use a configuration file in another directory, you have to specify it with the -config flag
$ go-deploy -config /path/to/config/go-deploy.yml <project_name> <environment_name>
- Implement actual deploy process
- Config validation
- Binary for adding projects and environments to a configuration file via the command line
- Support OAuth for Github and Bitbucket
- ...
Copyright (C) 2017 Ruud Van den Dungen
This project is distributed under the MIT license. See the LICENSE file for details.