GoCI was made to be a simple continuous integration system made with Go (Golang).
It use a simple plugin mechanism that let you use some different plugins to execute tasks. Today we have two main plugins:
- CLI = Execute anything from command line
- JS = Execute a javascript file
Some project advantages:
- With javascript you can create scripts that have own logic inside and use bultin function like: http request, regexp, command line execution, json parser and more - dont need use bash script for it
- Everything is a simples JSON file - yes, you dont need one database!
- From project to results - you can versioning everything if you want
- You dont need reload the server for nothing - unless a crash or bug :)
- It use a workspace directory, so you can have a lot of workspaces or one for all projects
- The web interface if nice - made with bootstrap - all results need send HTML
- Each job execution has progress, html ouput compatible with bootstrap, status, etc
- Everything work with API and you can consume using external tools
- It is open-source - you can collaborate
- You can DONATE!
GoCI configuration is a simple INI file called "config.ini".
Example of:
[server]
host = :8080
workspaceDir = YOUR-WORKSPACE-DIRECTORY
resourcesDir = YOUR-GOPATH-DIRECTORY + /src/github.com/prsolucoes/goci
I have created a sample project file, a sample config file and a sample javascript file. Check it on extras/sample directory.
- Execute: go get -u github.com/prsolucoes/goci
- Execute: cd $GOPATH/src/github.com/prsolucoes/goci
- Execute: make deps
- Execute: make install
- Create config file (config.ini) based on some above example
- Execute: goci -f=config.ini
- Open in your browser: http://localhost:8080
** dont use character / on any configuration path **
Check file: controllers/api.go
Today we dont have a API doc - but is simple looking code [TODO]
You can use some make commands to control GoCI service, like start, stop and update from git repository.
- make stop = it will kill current GoCI process
- make update = it will update code from git and install on $GOPATH/bin directory
- make deps = download all dependencies
- make format = format all files (use it before make a pull-request)
So if you want start your server for example, you only need call "make start".
- go build
- ./goci -f=config.ini
Today, only some functions are implemented. If you need one, you can make a pull-request or send a message in Github Issue.
MIT