GitLab CI Module - Kate Grechishkina
Tackle stage 1 first and the last stage last, but the others can be completed in any order you prefer.
Goal of this checklist: Set a clear path for GitLab-CI training
Stage 1: Commit and Become familiar with what GitLab CI is
-
Done with Stage 1
-
Ping your manager on the issue to notify them you have started @rspainhower, trainer - @atanayno -
Commit to this by notifying the current experts that they can start routing non-technical GitLab CI questions to you -
Commit to this by adding yourself to the knowledge areas page. -
GitLab University -
Getting started with GitLab and GitLab CI. Read the articles from Introduction to GitLab CI/CD section. -
The Basics of GitLab CI -
Continuous Integration, Delivery, and Deployment with GitLab -
10 Things to Know About GitLab CI -
GitLab Container Registry -
GitLab & Docker - Recording
-
-
CI Training Video by Jose Tores - Slides - Example App -
CI Backend Architecture walkthrough video | Diagram - watch to learn how everything connects together.
Stage 2: Basic CI
-
Done with Stage 2
-
Read the Table Of Contents for the .gitlab-ci.yml docs and make sure you know the meaning of every heading. -
Set up a repository on GitLab.com and create a .gitlab-ci.yml file to get a pipeline running using the free shared runners on GitLab.com (this can be a basic toy project). -
Note that your builds may show as Pending until a shared runner becomes available (the next step will solve this). -
Install your own Runner (locally or hosted somewhere) following the Setup Instructions -
Read about the different Executors -
Register your runner as a Specific Runner on your project, and test that it now runs the builds for your project. -
Create an example project on your own GitLab instance. -
Register a shared runner on your GitLab instance and make sure it can successfully run the build for your project. -
Optional, for GitLab.com: Watch this video on ways to troubleshoot runner on GitLab.com. Refer to this issue for questions and links. Note: As it was recorded August 2018, some links may be out of date.
Stage 3: Intermediate CI
-
Done with Stage 3
-
Read about Pipelines and Jobs. -
Check how to see the status of Pipeline and Jobs. -
Read about using Docker Images with GitLab CI. -
Register a Docker Runner and change your .gitlab-ci.ymlto use a Docker image for your language of choice. -
Read about Artifacts. -
Change .gitlab-ci.ymlto create artifacts. -
Set the Maximum Artifacts size in Admin and create artifacts above the limit, then check the build log for errors. ERROR: Uploading artifacts as "archive" to coordinator... too large archive id=247 responseStatus=413 Request Entity Too Large status=413 token=A3F5U24S
https://cos7ob.kate.gitlab.support/kate/ci-module-tests/-/pipelines/106
-
Read about Multi-project pipelines. -
Change your .gitlab-ci.ymlto trigger a pipeline in another project.https://cos7ob.kate.gitlab.support/kate/ci-module-tests/-/pipelines/108
-
Review the Runner Troubleshooting guide and try to reproduce issues where possible. -
https://docs.gitlab.com/runner/faq/#enable-debug-mode-logging-in-configtoml -
https://docs.gitlab.com/runner/faq/#im-seeing-x509-certificate-signed-by-unknown-authority [root@kate-cos8runner khrechyshkina]# gitlab-runner register Runtime platform arch=amd64 os=linux pid=201829 revision=e95f89a0 version=13.4.1 Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): https://kategrechishkina-gitlab-1.sr.gitlab.support/ Please enter the gitlab-ci token for this runner: Q_s_6c7supti9YxAuprS Please enter the gitlab-ci description for this runner: [kate-cos8runner]: Please enter the gitlab-ci tags for this runner (comma separated): ERROR: Registering runner... failed runner=Q_s_6c7s status=couldn't execute POST against https://kategrechishkina-gitlab-1.sr.gitlab.support/api/v4/runners: Post https://kategrechishkina-gitlab-1.sr.gitlab.support/api/v4/runners: x509: certificate signed by unknown authority PANIC: Failed to register this runner. Perhaps you are having network problems
-
-
Read the rest of the GitLab CI Documentation. -
Set up a project with a basic web application that has some tests. Your CI script should deploy it to Heroku automatically when all the tests pass.
Pipeline: https://cos7ob.kate.gitlab.support/kate/ci-module-stage3-12/-/pipelines/177
Application: https://khrechyshkina-ruby-test-app.herokuapp.com/
-
Create a basic GitLab Pages project on GitLab.com and make sure the CI script builds it and that the website is visible afterwards.
Stage 4: Advanced CI
Please ensure that you review with your trainer/manager if they would like you to do all the tasks in this stage.
-
Done with Stage 4
-
Set up a container registry for your project. -
Build a Docker image and upload it to the project registry as part of the CI pipeline. -
Add or integrate a Kubernetes cluster to your project. -
Deploy your application to Kubernetes via GitLab CI using the Docker container you built. One option is to customize the Auto DevOps template. -
Set up Review Apps to be deployed to Kubernetes. -
Create a custom image to speed up your build times by having the dependencies pre-installed (the same way it is done for GitLab CE and EE). See it in action on the first line here. -
Set up a manual deploy step, so that it does not deploy to production unless someone clicks the button to do so. -
Speed up a pipeline using caching.
Stage 5: Tickets
-
Done with Stage 5
-
Answer 20 GitLab CI tickets and paste the links here, even if a ticket seems too advanced for you to answer. Find the answers from an expert and relay it to the customer. - https://gitlab.zendesk.com/agent/tickets/183358
- https://gitlab.zendesk.com/agent/tickets/183768 - this one is mostly about npm registry but it touched on CI as well.
- https://gitlab.zendesk.com/agent/tickets/182472
- https://gitlab.zendesk.com/agent/tickets/183814
- https://gitlab.zendesk.com/agent/tickets/184573
- https://gitlab.zendesk.com/agent/tickets/185252
- https://gitlab.zendesk.com/agent/tickets/183961
- https://gitlab.zendesk.com/agent/tickets/186106
- https://gitlab.zendesk.com/agent/tickets/185923 - it is more of a runner issue
- https://gitlab.zendesk.com/agent/tickets/184925
- https://gitlab.zendesk.com/agent/tickets/187166
- https://gitlab.zendesk.com/agent/tickets/187457
- https://gitlab.zendesk.com/agent/tickets/187565
- https://gitlab.zendesk.com/agent/tickets/188911
- https://gitlab.zendesk.com/agent/tickets/188985
- https://gitlab.zendesk.com/agent/tickets/189487
- https://gitlab.zendesk.com/agent/tickets/188966
- https://gitlab.zendesk.com/agent/tickets/188995
- https://gitlab.zendesk.com/agent/tickets/190362
- https://gitlab.zendesk.com/agent/tickets/190033
Stage 6: Pair on Customer Calls
-
Done with Stage 6
-
Participate on two customer calls regarding Sales or Troubleshooting GitLab CI. - call with Shekhar Aryal - https://gitlab.zendesk.com/agent/tickets/193905
- call with ___
Final Stage
-
Have your trainer and manager review this issue. -
Manager: Have a CI expert in Support review 5-7 of the tickets from Stage 5 and report back to you on whether sufficient CI knowledge has been demonstrated. -
Manager: schedule a call (or integrate into 1:1) to review how the module went once you have reviewed this issue. -
Submit a MR to declare yourself a CI Expert on the team page.
