This is GitLab CI Multi-purpose Runner repository an unofficial GitLab CI runner written in Go, this application run tests and sends the results to GitLab CI. GitLab CI is the open-source continuous integration server that coordinates the testing.
This project was made as Go learning opportunity. The initial release was created within two days.
None. This project is designed for the Linux, OS X and Windows operating systems.
- Allows to run:
- multiple jobs concurrently
- use multiple tokens with multiple server (even per-project)
- limit number of concurrent jobs per-token
- Jobs can be run:
- locally
- using Docker container
- using Docker container and executing job over SSH
- connecting to remote SSH server
- Is written in Go and distributed as single binary without any other requirements
- Supports Bash, Windows Batch and Windows PowerShell
- Works on Ubuntu, Debian, OS X and Windows (and anywhere you can run Docker)
- Allows to customize job running environment
- Automatic configuration reload without restart
- Easy to use setup with support for docker, docker-ssh, parallels or ssh running environments
- Enables caching of Docker containers
- Easy installation as service for Linux, OSX and Windows
- Install using Debian/Ubuntu/CentOS/RedHat package (preferred)
- Install on OSX (preffered)
- Install on Windows (preffered)
- Install as Docker Service
- Manuall installation (advanced)
If you want to add another project, token or image simply RE-RUN SETUP. You don't have to re-run the runner. He will automatically reload configuration once it changes.
Have any problems. Please Go To Issues.
Visit Changelog to view recent changes.
$ gitlab-ci-multi-runner --help
NAME:
gitlab-ci-multi-runner - a GitLab-CI Multi Runner
USAGE:
gitlab-ci-multi-runner [global options] command [command options] [arguments...]
VERSION:
dev
AUTHOR:
Kamil Trzciński - <ayufan@ayufan.eu>
COMMANDS:
run, r run multi runner service
install install service
uninstall uninstall service
start start service
stop stop service
restart restart service
setup, s setup a new runner
run-single start single runner
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug debug mode [$DEBUG]
--log-level, -l 'info' Log level (options: debug, info, warn, error, fatal, panic)
--help, -h show help
--version, -v print the version
- It should be simple to add additional executors: DigitalOcean? Amazon EC2?
- Maybe script annotations?
Kamil Trzciński, 2015, Polidea
GPLv3