📚 abstruse - Awesome Go Library for Continuous Integration

Go Gopher mascot for abstruse

Abstruse is a distributed CI platform.

🏷️ Continuous Integration
📂 Tools for help with continuous integration.
937 stars
View on GitHub 🔗

Detailed Description of abstruse

Abstruse CI

Discord Go Report Card

Abstruse CI is a lightweight, yet powerful distributed CI/CD written in Golang. Its default configuration uses single node cluster with n workers, however, this cluster can be easily extended with more nodes if necessary.

This is the branch for v2.0.0 or later. If you are looking for Node.JS based v1.x.x version please check here.

Screenshot

Check Out Live Demo

Go to https://ci.abstruse.app and login with username [email protected] and password abstruse.

Note: A demo user has only read permissions and can't add new repositories.

Get the Demo Running Locally

If you are interested about the status of this project, the easiest way to get Abstruse 2.x running is:

git clone https://github.com/bleenco/abstruse.git
cd abstruse
docker-compose -f configs/demo/default/docker-compose.yml up -d

You can also build docker images locally:

make docker
docker-compose -f configs/demo/default/docker-compose.yml up -d

This command will run abstruse-server with a single worker node abstruse-worker and MySQL database. You should be able to open up the installation wizard in your browser at http://localhost and finish the setup.

Building the Project from Source

To build the project from source, first clone or download repository, then:

make install_dependencies
make

Development

If you are interested in helping with the new release, you can get the development environment running like:

make install_dependencies

This will install all dependencies for building the project. Please note that you need Node.JS, yarn and go installed, preferably latest releases.

For UI development run:

cd web/abstruse
yarn start

For abstruse-server development with live-reload enabled run:

make dev

And for abstruse-worker development with live-reload run:

make dev_worker

License

See the license.