RAIDERS
of the LOST CICD

and the quest of the
INNERSOURCE GRAAL

conference
conference

Speaker

Matthieu VINCENT
Tech Advocate
youpi
youpi
company
company

Disclaimer

We will made our demo with Golang & GitLab, because we love Gophers & Tanukis.

But all we explain in this talk can be applied to other programming languages and adapted to other platforms (Github, …)

At the beginning…
🎬

A lonely raider working on his project

lonely
lonely

Speaker

Thomas BONI
CTO & Co-Founder
thomas
thomas
company
company

A lonely raider working on his project

lonely
lonely

His hardcoded CI

pipeline
pipeline

stages:
  - test
  - build

[...]
go_dependency_scanning:
  stage: test
  image:
    name: aquasec/trivy:0.55.2
    entrypoint: [""]
  script:
    - trivy fs --exit-code 1 --severity "MEDIUM,HIGH,CRITICAL" ./

go_sast:
  stage: test
  image: securego/gosec:2.21.3
  script:
    - gosec ./...

build_container_image:
  stage: build
  image:
    name: gcr.io/kaniko-project/executor:v1.23.2-debug
    entrypoint: ['']
  script:
[...]

🦊 GitLab CI documentation
➡️ Full example available here

but there is another raider with an idea

two
two

GitLab CI component

A quick sample

spec:
  inputs:
    stage:
      default: test
---
go_lint:
  stage: $[[ inputs.stage ]]
  image: golangci/golangci-lint:v1.61-alpine
  script:
    - golangci-lint run --timeout 5m -v
🦊 GitLab Components
🔗 Components source code

When they realized that they add the same goal but they didn't know

quest
quest

Reuse the components



From 57 lines to 14 🤯



stages:
  - test
  - build

include:
  - component: gitlab.com/yodamad-workshops/[...]/go_lint@0.1.1
    inputs:
      stage: build
  - component: gitlab.com/yodamad-workshops/[...]/dockerfile_lint@0.1.0
  - component: gitlab.com/yodamad-workshops/[...]/go_unit-tests@0.1.0
  - component: gitlab.com/yodamad-workshops/[...]/secret_detection@0.1.0
  - component: gitlab.com/yodamad-workshops/[...]/go_dependency_scanning@0.1.0
  - component: gitlab.com/yodamad-workshops/[...]/go_sast@0.1.0
  - component: gitlab.com/yodamad-workshops/[...]/build_container_image@0.1.0

Now, they ride the same boat in the chaos

journey
journey

GitLab native CICD catalog ?

cicd_catalog
cicd_catalog

🔗 GitLab.com CICD Catalog

They find the Graal ! Innersource approach to save their world

graal
graal

R2Devops to the rescue

Demo !

company
company

🔗 Demo available here
ℹ️ All features shown are free ones on the platform

Moral of the story
🧙🏻‍♂️

Why InnerSource approach for CICD

Key points to have a successful InnerSource strategy

Thank you !

qrcode
qrcode

See you !

conference
conference