gitlab.cs.ut.ee¶
gitlab.cs.ut.ee is UTHPC center's maintained GitLab instance for primarily Institute of Computer Science use, but anyone with University of Tartu account can make use of it.
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager that provides wiki, issue-tracking and continuous integration and deployment pipeline features.
Connecting and starting¶
GitLab is available from the Internet at gitlab.cs.ut.ee with your UT credentials.
For logging in, use the ’LDAP’ method and your University of Tartu username and password.
After logging in, you can see the projects you have access to. You can also ’Explore Projects’ to see which ones are available for everyone.
Important
Please keep in mind, that GitLab has three different ’Visibility Levels’ when making projects. The main one, ’Private’ means, that only you and people you give permissions have access to your projects. ’Internal’ means, that everyone that can access GitLab, can see your project, while ’Public’ means that even unauthenticated users can see repositories.
Problems and requests¶
If you notice problems or would like any more extensions or features, then please write to support@hpc.ut.ee . Please provide the following details via the email:
- Your username,
- The project you were working on.
Examples¶
Here's some examples about how to utilize GitLab and it's CI/CD capabilities. You need to enable shared runners under ’Project Settings’ ’CI/CD’
Running CI/CD in Docker containers¶
Start the .gitlab-ci.yml
file with the following:
image:
name: alpine
before_script:
- echo "Hello Pre-Script"
stages:
- example
example:
stage: example
script:
- echo "Hello World"
Building a Docker container and pushing it into GitLab registry automatically¶
Inside the .gitlab-ci.yml
file, append the following snippet into appropriate places:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
stages:
- image-build
- deploy-prod
image-build:
stage: image-build
only:
- master
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --cache=true
FAQ¶
How do use Continuous Integration/Continuous Deployment?
By default everyone can use an unprivileged Docker-in-Docker runner to run their pipelines.