GoCI was made to be a simple and generic continuous integration system made with Go (Golang).
GoCI uses a simple plugin system that let you use some different ways to execute tasks. Today we have two plugins:
- CLI = Execute anything from command line interface (CLI).
Why GoCI? Why a new tool?
- Small memory usage, only 10MB
- You can call your existing CLI script (bash file, sh file, BAT file) using CLI plugin
- The GoCI project is a simple JSON file - you dont need a database and you can put on Git
- All execution log are a json file too, you can put all in Git or ignore it
- You dont need reload the server to create new projects or tasks, when change the project file, click on Refresh button from GoCI web interface
- The web interface is clean, perfect and mobile ready, you can use desktop, smartphone or tablet to use GoCI
- All tasks uses HTML to show the results on web interface (GoCI uses bootstrap)
- GoCI expose all in API model, so you can consume using your own external tools if need
- Your tasks can have options to be typed/selected in a modal dialog when you run it
- It is open-source, so you can collaborate too
- You can DONATE!
- Workspace in GoCI is any directory and is inside workspace directory that your projects and logs will be store. When start GoCI it will create inside our workspace some other folders automatically.
1 - Create a configuration file (config.ini):
[server] host = localhost:8080 workspaceDir = YOUR-GOPATH-DIRECTORY/src/github.com/prsolucoes/goci/extras/sample
3 - Execute from terminal: goci -f config.ini
4 - Open in your browser: http://localhost:8080
GoCI come with all functions, project options, integrations and capabilities inside "extras/samples" directory. Check it for more information and javscript task.
Downloading and installing
If you dont want install Go (golang), you can get GoCI compiled from this repository inside folder "build". We always compile binary to OSX, Linux and Windows.
If you have Go (golang) installed, follow this steps:
- Execute: go get -u github.com/prsolucoes/goci
- Execute: cd $GOPATH/src/github.com/prsolucoes/goci
- Execute: make deps
- Execute: make install
** Dont use the character / on end of any configuration path **
Check file: controllers/api.go
Today we dont have a API doc - but is simple looking code [TODO]
Command line interface
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)
Alternative method to Build and Start project
- go build
- ./goci -f extras/sample/config.ini
- go run -f extras/sample/config.ini
Task options for web interface
Today we support this types of fields for task option:
Today we support this integrations:
- SendGrid (send emails)
- PushBullet (send push message)
- HttpGet (call any URL using GET method)
- SlackWebHook (send message using web hook to Slack)
Support with donation
# PROJECT LIST
# TASK LIST OF SELECTED PROJECT
# TASK RESULTS VIEW
# RUNNING AND LAST JOBS
# TASK PARAMS WHEN RUN
Supported By Jetbrains IntelliJ IDEA