Streszczenie:
The thesis describes the building of a Cloud-based Continuous Integration system. A
Continuous Integration system is a system that automatically and continuously tests given code
to make sure it is capable of going to the production environment. Usually it is used together
with the Continuous Delivery system, which deployed the application after the integration
passes.
The system works using Google Cloud Platform’s possibilities. There is a single Go
microservice, a master application, that is deployed on Google Cloud Run. The master
application manipulates minions, Google Compute Engine virtual machines. The system
provides an HTTP API using which a user can request a pipeline run for a Github repository. It
prepares a virtual machine with a specified Docker container inside using a configuration file
described in a target repository. The system connects to the machine using SSH and to Docker
using HTTP API. Next, the system pulls the repository into the container and executes pipeline
steps inside the repository. The logs from each execution are saved to Google Cloud Storage,
which is a strongly consistent NoSQL document storage. After the execution, a user can request
the logs with the API.
The thesis includes a theoretical part, which serves as a foundation for the work. Concepts,
theories, patterns, technologies and the language of choice are described well enough so anyone
without a prior experience in the topic can read and understand the work. The part covers such
topics as CAP theorem, Google Cloud Platform, distributed systems and Go programming
language.