SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Jenkins Pipeline as YAML
Second Evaluation by: Abhishek Gautam
12 July 2018
.
2
● I am a 3rd year Computer Science student from Visvesvaraya National
Institute of Technology, Nagpur, India.
● I am a regular competitive programmer.
● I have done two internships as a Game Programmer as well.
● My interest in automation motivated my participation in the Jenkins GSOC
2018 program
.
3
Introduction
● Use-case: Simple pull-request job definitions
○ Easy to use by non-experts
○ Minimal definition for common cases (Makefile, validated merge)
● Jenkins Pipeline is Groovy DSL
● Groovy DSL may be complex, even with Declarative Pipeline
● YAML definitions can be used to simplify.
4
Problem area
https://jenkins.io/projects/gsoc/2018/simple-pull-request-job-plugin/
1. Travis YML Plugin: Runs “.travis.yml” as jenkins pipeline job. Does not
support external pull request. Last commit for this plugin was on 14 Nov 2016.
2. CodeShip Plugin: Converts codeship "steps.yaml" and "services.yaml" to
scripted pipeline code. This plugin has never been released.
3. Jenkins pipeline builder: This is a external non-Java-based tool, which
cannot be easily converted to a Jenkins plugin.
5
Prior work
● Objective: New plugin for defining Jenkins jobs as YAML
● Links
○ GitHub: https://github.com/jenkinsci/simple-pull-request-job-plugin
○ Gitter Chat: https://gitter.im/jenkinsci/simple-pull-request-job-plugin
● Mentors:
○ Martin d'Anjou
○ Kristin Whetstone
○ Jeff Knurek
○ Oleg Nenashev (Organisation Admin)
6
My project
1. Configure job for pull requests using a YAML file.
2. Interaction with Bitbucket Server, Bitbucket Cloud, Gitlab and Github.
3. Detect the presence of certain types of reports at conventional location, and
publish them. Non-conventional report locations can be configured in the
YAML file.
4. Publish build status.
7
Project Objectives
1. Build on the top of multibranch pipeline plugin, leveraging:
a. Interface to show branch and pull requests build.
b. Detection of trusted revisions in a repository.
c. Publishing of build status to the repository.
1. Convert the YAML configuration to declarative pipeline.
a. Parse the yaml description extracting steps and configuration values.
b. Declarative step lookup handled by the CasC plugin.
8
Design
Example: Path provided: “./scripts/hello”
a. On UNIX machine “./scripts/hello.sh” will be called
b. On non-UNIX machine “./scripts/hello.bat” will be called.
9
Design (Specifying scripts to run)
1. Use a Jenkinsfile.yaml for build.
2. Git Push step (Users do not call git push explicitly)
3. Build and tests performed by user defined script called from Jenkinsfile.yaml
4. Agent configuration in “Jenkinsfile.yaml”
5. harvest results and reports.
a. junit()
b. findbugs()
c. archiveArtifacts section
6. Basic interface to parse and get build specifications from YAML file.
Phase 1 blog post: https://jenkins.io/blog/2018/06/15/simple-pull-request-plugin/
10
Coding phase 1 features
1. Step Configurator (Based on JCasC plugin)
a. Limitations:
i. Difficulty with Enums (will be resolved in next alpha release of JCasC plugin, PR 346)
ii. Difficulty with “JiraTestDataPublisher.class” and may be other classes (JENKINS-52444)
2. A format for “Jenkinsfile.yaml”. (All details present in Blog Post)
3. Tools property in agent section of Jenkinsfile.yaml.
4. Some tests for the plugin. (PR 14)
Code improvements:
● Manual indentation removed from PipelineSnippetGenerator class.
11
Current features
12
Step Code Generation
junit:
testResults: "target/**.xml"
allowEmptyResults: true
testDataPublishers:
- AutomateTestDataPublisher
- JunitResultPublisher:
urlOverride: "urlOverride"
junit allowEmptyResults: true, testDataPublishers:
[[$class: 'AutomateTestDataPublisher'], [$class:
'JunitResultPublisher', urlOverride: 'urlOverride']],
testResults: 'target/**.xml'
https://github.com/gautamabhishek46/dummy/blob/master/Jenkinsfile.yaml
13
Example YAML
https://github.com/gautamabhishek46/dummy
https://jenkins.io/blog/2018/06/15/simple-pull-request-plugin/#how-to-run-the-plugin
14
Plugin Configuration
Demo
15
1. Test Multi-Branch Pipeline features support:
a. Support for webhooks (JENKINS-51941)
b. Check if trusted people have approved a pull request and start build accordingly
(JENKINS-52517)
2. Finalize documentation (JENKINS-52518)
3. Release 1.0 (JENKINS-52519)
4. Plugin overview blogpost
16
Plan for Phase 3
Phase 3 EPIC: https://issues.jenkins-ci.org/browse/JENKINS-52452
1. Support the “when” Declarative Pipeline directive (JENKINS-52520)
2. Nice2have: Support hierarchical report types (JENKINS-52521)
3. Add unit tests, JenkinsRule tests, and ATH tests (JENKINS-52495, JENKINS-
52496)
4. Automatic Workspace Cleanup when PR is closed (JENKINS-51897)
5. Refactor snippet generator to extensions (JENKINS-52491)
17
Plan for Phase 3 - after the release
Phase 3 EPIC: https://issues.jenkins-ci.org/browse/JENKINS-52452
Gitter chat: https://gitter.im/jenkinsci/simple-pull-request-job-plugin
Jenkins blog post: (Not ready till now)
Github project: https://github.com/jenkinsci/simple-pull-request-job-plugin
Demo project: https://github.com/gautamabhishek46/dummy
Phase 1 presentation slides:
https://docs.google.com/presentation/d/1R63XK4Nmd5EBmMdF2rkevV1iZxjTom1
9XFHdgjY9qeA/edit?usp=sharing
Phase 2 presentation video:
https://www.youtube.com/watch?v=tuTODhJOTBU&t=3229s
18
Links
Thank You
19

Weitere ähnliche Inhalte

Was ist angesagt?

Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategyOpenDaylight
 
Gatling - Stress test tool
Gatling - Stress test toolGatling - Stress test tool
Gatling - Stress test toolKnoldus Inc.
 
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracleprohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for OracleJacek Gebal
 
Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Abhishek Bakshi
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youJacek Gebal
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightOpenDaylight
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9Deepu Xavier
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New FeaturesAli BAKAN
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven DevelopmentArif Huda
 
SBG Infrastructure Tools
SBG Infrastructure ToolsSBG Infrastructure Tools
SBG Infrastructure Tools🤘Ivan Vandot
 
Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Rossen Stoyanchev
 
JUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVMJUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVMVMware Tanzu
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patienceJacek Gebal
 
NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6Kostas Saidis
 
React table tutorial use filter (part 2)
React table tutorial use filter (part 2)React table tutorial use filter (part 2)
React table tutorial use filter (part 2)Katy Slemon
 

Was ist angesagt? (20)

Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategy
 
Gatling - Stress test tool
Gatling - Stress test toolGatling - Stress test tool
Gatling - Stress test tool
 
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracleprohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
 
Spring Test Framework
Spring Test FrameworkSpring Test Framework
Spring Test Framework
 
Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love you
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
XP Days Ukraine 2019
XP Days Ukraine 2019XP Days Ukraine 2019
XP Days Ukraine 2019
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylight
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New Features
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Development
 
Gatling
Gatling Gatling
Gatling
 
SBG Infrastructure Tools
SBG Infrastructure ToolsSBG Infrastructure Tools
SBG Infrastructure Tools
 
Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2Testing Web Apps with Spring Framework 3.2
Testing Web Apps with Spring Framework 3.2
 
JUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVMJUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVM
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patience
 
NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6
 
React table tutorial use filter (part 2)
React table tutorial use filter (part 2)React table tutorial use filter (part 2)
React table tutorial use filter (part 2)
 

Ähnlich wie Jenkins Pipeline YAML

Java programming concept
Java programming conceptJava programming concept
Java programming conceptSanjay Gunjal
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmAnton Shapin
 
CISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentCISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentBrad Rippe
 
Django Proposal.pdf
Django Proposal.pdfDjango Proposal.pdf
Django Proposal.pdfdeepak474135
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovyjgcloudbees
 
Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Alvaro Sanchez-Mariscal
 
Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Alvaro Sanchez-Mariscal
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling IntegrationKnoldus Inc.
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpNathan Handler
 
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»GoQA
 
Grails Plugin Best Practices
Grails Plugin Best PracticesGrails Plugin Best Practices
Grails Plugin Best PracticesBurt Beckwith
 
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...Igalia
 
Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Alvaro Sanchez-Mariscal
 
Spring Performance Gains
Spring Performance GainsSpring Performance Gains
Spring Performance GainsVMware Tanzu
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Kevin Sutter
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
 
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxPRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxharrisonhoward80223
 
Project3build.xml Builds, tests, and runs the project .docx
Project3build.xml      Builds, tests, and runs the project .docxProject3build.xml      Builds, tests, and runs the project .docx
Project3build.xml Builds, tests, and runs the project .docxwoodruffeloisa
 

Ähnlich wie Jenkins Pipeline YAML (20)

Java programming concept
Java programming conceptJava programming concept
Java programming concept
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvm
 
CISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentCISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 Development
 
Django Proposal.pdf
Django Proposal.pdfDjango Proposal.pdf
Django Proposal.pdf
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovy
 
Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016
 
Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling Integration
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at Yelp
 
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»
YEGOR MAKSYMCHUK «Using Kubernetes for organization performance tests»
 
Grails Plugin Best Practices
Grails Plugin Best PracticesGrails Plugin Best Practices
Grails Plugin Best Practices
 
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
 
Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016
 
Spring Performance Gains
Spring Performance GainsSpring Performance Gains
Spring Performance Gains
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Optimizing Your CI Pipelines
Optimizing Your CI PipelinesOptimizing Your CI Pipelines
Optimizing Your CI Pipelines
 
Enter the gradle
Enter the gradleEnter the gradle
Enter the gradle
 
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxPRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
 
Project3build.xml Builds, tests, and runs the project .docx
Project3build.xml      Builds, tests, and runs the project .docxProject3build.xml      Builds, tests, and runs the project .docx
Project3build.xml Builds, tests, and runs the project .docx
 

Kürzlich hochgeladen

FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 

Kürzlich hochgeladen (20)

FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 

Jenkins Pipeline YAML

  • 1. Jenkins Pipeline as YAML Second Evaluation by: Abhishek Gautam 12 July 2018 . 2
  • 2. ● I am a 3rd year Computer Science student from Visvesvaraya National Institute of Technology, Nagpur, India. ● I am a regular competitive programmer. ● I have done two internships as a Game Programmer as well. ● My interest in automation motivated my participation in the Jenkins GSOC 2018 program . 3 Introduction
  • 3. ● Use-case: Simple pull-request job definitions ○ Easy to use by non-experts ○ Minimal definition for common cases (Makefile, validated merge) ● Jenkins Pipeline is Groovy DSL ● Groovy DSL may be complex, even with Declarative Pipeline ● YAML definitions can be used to simplify. 4 Problem area https://jenkins.io/projects/gsoc/2018/simple-pull-request-job-plugin/
  • 4. 1. Travis YML Plugin: Runs “.travis.yml” as jenkins pipeline job. Does not support external pull request. Last commit for this plugin was on 14 Nov 2016. 2. CodeShip Plugin: Converts codeship "steps.yaml" and "services.yaml" to scripted pipeline code. This plugin has never been released. 3. Jenkins pipeline builder: This is a external non-Java-based tool, which cannot be easily converted to a Jenkins plugin. 5 Prior work
  • 5. ● Objective: New plugin for defining Jenkins jobs as YAML ● Links ○ GitHub: https://github.com/jenkinsci/simple-pull-request-job-plugin ○ Gitter Chat: https://gitter.im/jenkinsci/simple-pull-request-job-plugin ● Mentors: ○ Martin d'Anjou ○ Kristin Whetstone ○ Jeff Knurek ○ Oleg Nenashev (Organisation Admin) 6 My project
  • 6. 1. Configure job for pull requests using a YAML file. 2. Interaction with Bitbucket Server, Bitbucket Cloud, Gitlab and Github. 3. Detect the presence of certain types of reports at conventional location, and publish them. Non-conventional report locations can be configured in the YAML file. 4. Publish build status. 7 Project Objectives
  • 7. 1. Build on the top of multibranch pipeline plugin, leveraging: a. Interface to show branch and pull requests build. b. Detection of trusted revisions in a repository. c. Publishing of build status to the repository. 1. Convert the YAML configuration to declarative pipeline. a. Parse the yaml description extracting steps and configuration values. b. Declarative step lookup handled by the CasC plugin. 8 Design
  • 8. Example: Path provided: “./scripts/hello” a. On UNIX machine “./scripts/hello.sh” will be called b. On non-UNIX machine “./scripts/hello.bat” will be called. 9 Design (Specifying scripts to run)
  • 9. 1. Use a Jenkinsfile.yaml for build. 2. Git Push step (Users do not call git push explicitly) 3. Build and tests performed by user defined script called from Jenkinsfile.yaml 4. Agent configuration in “Jenkinsfile.yaml” 5. harvest results and reports. a. junit() b. findbugs() c. archiveArtifacts section 6. Basic interface to parse and get build specifications from YAML file. Phase 1 blog post: https://jenkins.io/blog/2018/06/15/simple-pull-request-plugin/ 10 Coding phase 1 features
  • 10. 1. Step Configurator (Based on JCasC plugin) a. Limitations: i. Difficulty with Enums (will be resolved in next alpha release of JCasC plugin, PR 346) ii. Difficulty with “JiraTestDataPublisher.class” and may be other classes (JENKINS-52444) 2. A format for “Jenkinsfile.yaml”. (All details present in Blog Post) 3. Tools property in agent section of Jenkinsfile.yaml. 4. Some tests for the plugin. (PR 14) Code improvements: ● Manual indentation removed from PipelineSnippetGenerator class. 11 Current features
  • 11. 12 Step Code Generation junit: testResults: "target/**.xml" allowEmptyResults: true testDataPublishers: - AutomateTestDataPublisher - JunitResultPublisher: urlOverride: "urlOverride" junit allowEmptyResults: true, testDataPublishers: [[$class: 'AutomateTestDataPublisher'], [$class: 'JunitResultPublisher', urlOverride: 'urlOverride']], testResults: 'target/**.xml'
  • 15. 1. Test Multi-Branch Pipeline features support: a. Support for webhooks (JENKINS-51941) b. Check if trusted people have approved a pull request and start build accordingly (JENKINS-52517) 2. Finalize documentation (JENKINS-52518) 3. Release 1.0 (JENKINS-52519) 4. Plugin overview blogpost 16 Plan for Phase 3 Phase 3 EPIC: https://issues.jenkins-ci.org/browse/JENKINS-52452
  • 16. 1. Support the “when” Declarative Pipeline directive (JENKINS-52520) 2. Nice2have: Support hierarchical report types (JENKINS-52521) 3. Add unit tests, JenkinsRule tests, and ATH tests (JENKINS-52495, JENKINS- 52496) 4. Automatic Workspace Cleanup when PR is closed (JENKINS-51897) 5. Refactor snippet generator to extensions (JENKINS-52491) 17 Plan for Phase 3 - after the release Phase 3 EPIC: https://issues.jenkins-ci.org/browse/JENKINS-52452
  • 17. Gitter chat: https://gitter.im/jenkinsci/simple-pull-request-job-plugin Jenkins blog post: (Not ready till now) Github project: https://github.com/jenkinsci/simple-pull-request-job-plugin Demo project: https://github.com/gautamabhishek46/dummy Phase 1 presentation slides: https://docs.google.com/presentation/d/1R63XK4Nmd5EBmMdF2rkevV1iZxjTom1 9XFHdgjY9qeA/edit?usp=sharing Phase 2 presentation video: https://www.youtube.com/watch?v=tuTODhJOTBU&t=3229s 18 Links

Hinweis der Redaktion

  1. Here I will switch to jenkins instance and show how to configure the plugin.