Top Banner
© 2015 CloudBees, Inc. All Rights Reserved © 2015 CloudBees, Inc. All Rights Reserved Pipeline-as-Code mit Jenkins Pipeline Bernhard Cygan Senior Solution Architect CloudBees
16

Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

Sep 01, 2018

Download

Documents

tranduong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Pipeline-as-Code mit Jenkins Pipeline

Bernhard CyganSenior Solution ArchitectCloudBees

Page 2: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

CloudBees

- die Enterprise Jenkins Company

- 2010 gegründet von Sacha Labourey

- seit Ende 2014 ausschließlich Jenkins

- viele Jenkins-Entwickler sind Mitarbeiter

Page 3: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

CloudBees

- zwei Releases pro Jahr, basierend auf Jenkins LTS

- Support mit SLA für Jenkins, inklusive OSS

- Ausrichtung Jenkins User Conference

- Professional Services

- Training

- Certified Jenkins Engineer

- Certified CloudBees Jenkins Platform Engineer

Page 4: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Relevante Features für Pipeline-as-Code

● Jenkins Pipeline DSL

● Jenkinsfile

● Multi-Branch Support

● Repository Scanning

Page 5: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Jenkins Pipeline DSL

● Bis vor kurzem noch Jenkins Workflow

● Pipeline Jobs können im SCM liegen

○ Git, Mercurial, Subversion

● Pipeline Jobs können in der IDE editiert werden

● Syntax Coloring support

● Pipeline Jobs übernehmen Änderungen automatisch

● automatische Versionierung für Pipeline Jobs

Page 6: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Pipeline-as-Code - Jenkinsfile

● Build Pipeline Job dort definieren, wo auch der Source Code

steht.

● Feature Branches auch für Pipelines

Page 7: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Multi-Branch-Support

● Nicht mehr für jeden Branch einen eigenen Job anlegen

● Nur noch die Root-Url des SCMs eintragen

Page 8: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Repository Scanning

● Ab der Root-URL des SCMs wird periodisch gescannt

● Folder und Jobs können automatisch angelegt werden

● Folder und Jobs können gelöscht oder aufgehoben werden

Page 9: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Pipeline-as-Code Multi-Branch

Master

Feature Branch 1

Feature Branch 2

Master Pipeline Job

FB 1 Pipeline Job

FB 2 Pipeline Job

Page 10: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Organizational Folders

● Bei Anlegen eines neuen Repositories mit Jenkinsfile wird

automatisch ein Multibranch Pipeline Project angelegt

● Folder und Jobs können automatisch gelöscht oder

aufbewahrt werden

Page 11: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Pipeline-as-Code Organization Folders

Page 12: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Pipeline-as-Code Support

Enterprise Cloud ServerWorkflow

Multibranch Jobs

OSS OSS CJPOSS* OSS*

Pull Requests CJP CJP CJP CJP

Organization Folders OSS OSS CJP CJP

* OSS supported via GIT or Mercurial plugin. CJP features optimized to use APIs.

Page 13: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

OSS - Pipeline-as-Code Organization Folders (GitHub)

● Jenkins Folder ⇔ GitHub Organization

○ die gesamte Pipeline im Jenkinsfile definieren

○ Pipeline Job automatisch generieren für jedes Repository, das ein

Jenkinsfile enthält

○ Pipeline Job automatisch erzeugen für jeden Branch, der ein Jenkinsfile

enthält

Page 14: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

CJP - Pipeline-as-Code Pull Request Branches

● Pull Requests = New Branch

○ die gesamte Build Pipeline im Jenkinsfile definieren

○ automatisch einen Pipeline Job anlegen für Pull Requests, die ein

Jenkinsfile beinhalten

○ Build Ergebnisse an das SCM zurückmelden

○ automatisch Jobs löschen für Merged Pull Requests

○ unterstützt:

■ GitHub

■ GitHub Enterprise

■ BitBucket Git

■ BitBucket Mercurial

Page 15: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

Noch Fragen ?

Page 16: Pipeline-as-Code mit Jenkins Pipeline - doag.org · Jenkins Pipeline DSL ... * OSS supported via GIT or Mercurial plugin. ... automatisch einen Pipeline Job anlegen für Pull Requests,

© 2

015

Clo

ud

Bee

s, In

c. A

ll R

igh

ts R

eser

ved

PointersPipeline DSL DZone Reference Card

https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow

Dokumentation für Pipeline-as-Code

http://documentation.cloudbees.com/docs/cookbook/pipeline-as-code.html

Blog Artikel über Pipeline-as-Code mit Multi-Branch Support

https://jenkins-ci.org/blog/2015/12/03/pipeline-as-code-with-multibranch-

workflows-in-jenkins/