_ ___
|\/| o _ ._ _ / |
| | | (_ | (_) \_ _|_
.
":"
___:_____ |"\/"|
,' \ \ /
| O \___/ |
~^~^~^~^~^~^~^~^~^~^~^~^~
MicroCI is minimalistic Continuous Integration (CI) tool, that implements a super simple CI pipeline for Docker-based microservices.
The Docker container technology simplifies build, deployment and operation of Microservices.
MicroCI takes several assumptions about how development lifecycle of Docker-based microservices:
- Docker image is a core package format and main deployment artifact
- One git repository for one microservice
- One Dockerfile to create and unit test microservice image, use multi-stage build for advanced built/test pipelines
- Docker Registry (public or private) is used to store built Docker images
- Service build should be triggered by Push, Branch or Tag event
- Build report should be sent into Team group chat (Slack, or other)
- Build report should be sent as WebHook payload for further integrations
- Trigger - GitHub event:
push
,branch
,tag
- Build -
docker build
for Git "event" commit SHA - Deploy -
docker push
to Docker Registry (private, public) - Notify - send build report (status, duration, output, etc.) to STDOUT/Slack/WebHook
MicroCI is available as a single binary for every platform (Linux, Mac and Windows). It's statically linked without any external dependency.
TBD
TBD:
MicroCI can is working with Docker daemon through official Docker API (Go SDK). It can connect either to a local Docker daemon (no configuration is required in this case) or with a remote Docker daemon.
MicroCI respects all Docker environment variables when connecting to a Docker server.
Use DOCKER_HOST
to set the url to the docker server. Use DOCKER_API_VERSION
to set the version of the API to reach, leave empty for latest. Use DOCKER_CERT_PATH
to load the TLS certificates from. Use DOCKER_TLS_VERIFY
to enable or disable TLS verification, off by default.