Pipeline-as-Code mit Jenkins Pipeline - doag.org · PDF fileBis vor kurzem noch Jenkins...

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

Transcript of Pipeline-as-Code mit Jenkins Pipeline - doag.org · PDF fileBis vor kurzem noch Jenkins...

Page 1: Pipeline-as-Code mit Jenkins Pipeline - doag.org · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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 · PDF fileBis vor kurzem noch Jenkins Workflow Pipeline Jobs können im SCM liegen Git, Mercurial, Subversion Pipeline Jobs können

© 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/