Created by [ Rowan Dempster], last modified by [ Charles Zhang] on Feb 18, 2021
What is Continuous Integration?
Continuous Integration (CI) refers to the practice of automating
integration of code changes into a single software project, then using
tools to assert the new code's correctness before integration
(source).
GitLab has a built-in CI service, which allows automated building and
testing of code.
How is CI useful for WATOnomous?
For WATO, CI can be used to automatically compile a
build (e.g. catkin_make) and run tests when new code changes are
pushed.
How does CI work?
CI jobs are executed by provisioned machines called runners, through
the coordinator API of GitLab CI. A service called gitlab_runner runs
on the runner, and waits on GitLab's API to send it a job. When code is
pushed to a repository, GitLab chooses a runner to execute the job. The
output of the job is displayed on GitLab's UI.
How are GitLab runners configured?
See https://docs.gitlab.com/ee/ci/runners/.
How can I enable CI for my repository?
Please get in touch with the Infrastructure team, and we will set up a
meeting to gather requirements.
Docker In Docker CI:
**To build images, we use docker in
docker https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-the-docker-executor-with-the-docker-image-docker-in-docker
**
**Kubernetes K3s Runners:
**All CI jobs run in docker containers, and are managed by Kubernetes
Clusters. Conversation between Ben &
Charles: https://discord.com/channels/478659303167885314/614894097504665601/793894805914255360
Setup Instructions from
Ben: https://gist.github.com/ben-z/c7e4ccf4465b3dd15ed6e4bb4e532acb
Document generated by Confluence on Dec 10, 2021 04:01