Wie macht GitLab mit GitLab GitLab?

Winnie Hellmann

2019-04-23

Wie macht GitLab mit GitLab GitLab?

Winnie Hellmann

2019-04-23

DevOps cycle 

devops cycle diagram

https://about.gitlab.com/stages-devops-lifecycle/

DevOps cycle 

devops cycle diagram with dev stages highlighted

https://about.gitlab.com/stages-devops-lifecycle/

Plan

devops cycle diagram with Plan highlighted

https://about.gitlab.com/stages-devops-lifecycle/plan/

New Issue

screenshot of a bug report
screenshot of a bug report

https://about.gitlab.com/handbook/communication/#everything-starts-with-an-issue

https://docs.gitlab.com/ee/user/project/description_templates.html

Labels

screenshot of labels on an issue
screenshot of labels on an issue

https://docs.gitlab.com/ee/development/contributing/issue_workflow.html

https://docs.gitlab.com/ee/user/project/labels.html

Milestones

screenshot of no assigned milestone screenshot of awaiting demand milestone

screenshot of backlog milestone screenshot of release milestone

https://about.gitlab.com/handbook/engineering/workflow/#scheduling-issues

https://docs.gitlab.com/ee/user/project/milestones/

Issue Board

screenshot of issues in an issue board

https://docs.gitlab.com/ee/user/project/issue_board.html

Issue Assignee(s)

screenshot of issue assignee
screenshot of issue assignee
screenshot of multiple issue assignees
screenshot of multiple issue assignees

https://docs.gitlab.com/ee/user/project/issues/issue_data_and_actions.html#3-assignee

https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html

Issue Dashboard

screenshot of the issue dashboard
screenshot of the issue dashboard

https://docs.gitlab.com/ee/user/profile/preferences.html#default-dashboard https://gitlab.com/gitlab-org/gitlab-ce/issues/60755

Workflow Labels

screenshot of issue board showing workflow labels
screenshot of issue board showing workflow labels

https://about.gitlab.com/handbook/engineering/workflow/

https://docs.gitlab.com/ee/user/project/labels.html#scoped-labels-premium

Create

devops cycle diagram with Create highlighted

https://about.gitlab.com/stages-devops-lifecycle/create/

coden, coden, coden…

animation of a cat typing on a laptop
animation of a cat typing on a laptop

Git it

$ git push
Enumerating objects: 87, done.
Counting objects: 100% (87/87), done.
Delta compression using up to 12 threads
Compressing objects: 100% (53/53), done.
Writing objects: 100% (53/53), 5.08 KiB | 69.00 KiB/s, done.
Total 53 (delta 48), reused 0 (delta 0)
remote:
remote: To create a merge request for winh-simplify-frontend-fixtures, visit:
remote:   https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/new?merge_request%5Bsource_branch%5D=winh-simplify-frontend-fixtures
remote:

Merge Request

screenshot of new merge request

Review Comments

screenshot of review comment
screenshot of review comment

https://docs.gitlab.com/ee/development/code_review.html

https://docs.gitlab.com/ee/user/discussions/#merge-request-reviews-premium

Verify

devops cycle diagram with Verify highlighted

https://about.gitlab.com/stages-devops-lifecycle/verify/

Was ist Verify?

  • Teil von GitLabs CI/CD (Continuous Integration / Continuous Delivery)
  • ursprünglich mit GitLab CI separates Produkt
  • inzwischen vollständig Integriert

Wie sieht CI aus?

many small characters running around busy with different tasks
many small characters running around busy with different tasks

Wie sieht CI aus?

diagram of an assembly belt that represents CI pipelines
diagram of an assembly belt that represents CI pipelines

Was macht CI?

  • automatisierte Tests
  • statische Code-Analyse
    • potentielle Bugs
    • Sicherheitslücken
    • Lizenzprobleme
  • Code-Style prüfen

Wie geht CI?

  • in GitLab per Konfiguration in .gitlab-ci.yml
  • üblicherweise eine pro Projekt
  • prinzipiell eine pro Branch bzw. Commit möglich

Wie geht CI?

  • im einfachsten Fall:
screenshot of pipeline with one job
screenshot of pipeline with one job

Wie geht CI?

screenshot of job log
screenshot of job log

Wie geht Parallelität?

screenshot of parallel pipeline jobs
screenshot of parallel pipeline jobs

Wie geht Parallelität?

screenshot of parallel pipeline jobs
screenshot of parallel pipeline jobs

Wie geht Unparallelität?

screenshot of pipeline with two stages
screenshot of pipeline with two stages

Wie geht Unparallelität?

Wie entstehen neue Pipelines?

Trödeln

https://docs.gitlab.com/ee/ci/yaml/#whendelayed

Handarbeit

screenshot of manual pipeline job
screenshot of manual pipeline job

https://docs.gitlab.com/ee/ci/yaml/#whenmanual

Inklusion und Exklusion

https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic

Advanced Awesomeness

GitLab Pipeline

screenshot of a GitLab pipeline
screenshot of a GitLab pipeline

GitLab Pipeline

build:
- review-docs-deploy-manual

prepare:
- compile-assets
- retrieve-tests-metadata
- setup-test-env

test:
- cache gems
- code_quality
- db:check-schema-pg
- db:migrate:reset-mysql
- db:migrate:reset-pg
- db:rollback-mysql
- db:rollback-pg
- dependency_scanning
- docs lint
- gitlab:assets:compile
- gitlab:setup-mysql
- gitlab:setup-pg
- gitlab_git_test
- jest
- karma
- migration:path-mysql
- migration:path-pg
- no_ee_check
- package-and-qa
- qa-frontend-node:8
- qa-frontend-node:10
- qa-frontend-node:latest
- qa:internal
- qa:selectors
- rspec-fast-spec-helper
- rspec-mysql
- rspec-mysql-quarantine
- rspec-pg
- rspec-pg-/50
- rspec-pg-quarantine
- sast
- static-analysis

post-test:
- coverage
- jsdoc
- lint:javascript:report
- update-tests-metadata

pages:
- pages

post-cleanup:
- review-docs-cleanup

deploy:
- pages:deploy

GitLab Pipeline

https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab-ci.yml

Fragen?

später gerne an:
winnie(🐒)gitlab📍com