Javascript Vue

Hermes CI – An open-source continuous integration platform2 min read

Hermes CI

Hermes CI is an open-source continuous integration platform mainly written in Go.

Name

Hermes is the winged herald and messenger of the Olympian gods. In addition, he is also a divine trickster, and the god of roads, flocks, commerce, and thieves. … Hermes was the only Olympian capable of crossing the border between the living and the dead.

Stability and Compatibility

DO NOT USE IT IN PRODUCTION

Status: The library is currently undergoing heavy development with frequent, breaking API changesç-.

How it works

Components

Backend: a web server written in Go receive code hosting platforms webhooks and schedule the job
Queue: a Message broker written in Go and uses Asynq library
Runner: a cross-platform Queue consumer written in Go and can run anywhere with docker
Frontend: a web application written in Vue.js/Typescript (Nuxt) allows users to configure Hermes and show jobs logs/status

requirement

MongoDB server: make sure you update .env files in both backend and runner

Redis server (you can use dockernized version)

docker run –name my-redis -p 6379:6379 -d redis

Buildah : a tool that facilitates building Open Container Initiative (OCI) container images.

Run dev

Backend

Fill the ./backend/env.example and rename it to ./backend/.env

make -C ./backend dev

Runner

Fill the ./runner/env.example and rename it to ./runner/.env

make -C ./runner dev

Client

Fill the ./client/env.example and rename it to ./client/.env

make -C ./backend dev

Repository configuration

Hermes is listing to Github webhooks and run the Dockerfile in your Repository for that you need to have:

Dockerfile: put whatever you want on in it

FROM yauritux/busybox-curl

RUN echo “Running build”
RUN echo “We don’t need to build anything”

RUN echo “Getting Ouarzazate weather”
RUN echo “weather is goood”

Hermes.yaml: a Hermes config file for now accepts only name, version, schema and for schema accepts only docker for now

name: Build
version: 1.0.0
schema: docker

GitHub

View Github

Leave a Reply

Your email address will not be published.

Pin It on Pinterest