SlideShare une entreprise Scribd logo
1  sur  18
Jenkins User Meetup
  "XTrigger, EnvInject
  and DryRun plugins"

                     Grégory BOISSINOT
                          (@gboissinot)
                            2012-02-06


           Jenkins                        1
•  Senior Consultant and Trainer at Zenika
    – Setting up CI processes in major companies

•  Hudson Committer since February 2008

•  Active Jenkins contributor and committer
    – Creator and maintainer ~30 plugins
    – Mainly on my free time

•  A pragmatic guy:
     – Clearcase is a great VCS tools
     – Ivy is the best dependency manager
     – FarManager is the best file manager on Windows
                                 Jenkins                2
Development	
       JAVA   ...




         Event	
  




Environment                       Jenkins




                                               Development	
  
                                                 Integrator	
  
                                              Project	
  Manager	
  
                                    Jenkins                        3
Jenkins roles
   1.  Monitor an external infrastructure environment
   2.  Prepare the running environment of the CI process
   3.  Start the integration process
   4.  Ensure traceability tool with the software configuration
       management from the source to the generated binaries
       (bidirectional)
   5.  Orchestrating quality tools code
   6.  Notify the development team

Jenkins is focuses on the developer needs

                              Jenkins                             4
SCMTrigger
Environment
                                                         FSTrigger


                               Polling                  URLTrigger


                                                        IvyTrigger
                                         Jenkins

                                                       MavenTrigger


                                                   BuildResultTrigger


                                                      ScriptTrigger
•  ot only a SCM
 N
                                                       XTrigger
•  any ways to trigger a job
 M

                               Jenkins                                  5
•  OB_A is triggered if there are changes in
                              J
                             SCM

                             •  OB_B is triggered only if there are new
                              J
                             artefacts in the file system repository

                             •  OB_A and JOB_B are not tied together.
                              J

      POLL



     JOB_A            PUSH
"Build & UnitTests"                            POLL
                             Artifact


             RUN                                    JOB_B
                                                "Functional Tests"


                                                             RUN




                             Jenkins                                        6
JOB1           JOB2         JOB3             JOB4



   Polling jobs status
such as "looking for new
         failures"


                           Clean JOB
                                                    Environment




                              Launch a clean
                                Procedure


                                          Jenkins                 7
CommonF1	
  
                                                                                Build dependencies and
                                                                                  the usage of latest
                                                                          ivy.xml
                                                                                        strategy
                                         ivy.xml

                            Client	
                         Server	
  




         POLL	
  

                                                                                      Client	
                      PUSH	
                  Ivy	
  
                          PUSH	
  
CommonF1	
                                         Ivy	
  
                                                                                                   IvyTrigger	
  
                                                                           POLL	
  
         SCMTrigger	
                Common	
                                                                       PUSH	
     Client	
           Server	
  
                                                                                      Server	
  
                                                                                                   IvyTrigger	
  


                   Jobs are triggered by events
                   No dependencies between Jenkins jobs
                   You build only jobs that have to build (incremental build
             at     Jenkins level)             Jenkins                                                                                                         8
JOB_A         PUSH
                                                  Environment




     Jenkins

                                     POLL
                       JOB_B


•  o static dependencies between jobs
 N

•  ependencies in the build chain are driven to a change of an external resource
 D

•  ou can rebuild your application without a dependency on Jenkins
 Y
                                                                          DEMO
                                        Jenkins                                    9
•  In practice
     – Do not exceed polling in your system
     – Choosing the right schedule is indispensable

•  However, except for SCM, handle events (hooks) is difficult
    – FileSystem?
    – Binary Repository ?
    – URL?

    Maybe an evolution



                                 Jenkins                         10
•  For the FSTrigger plugin
    – Implement the core in Python (or other language close to OS)

•  For the IvyTrigger plugin
    – Add credentials

•  XTrigger
    – Add GradleTrigger typlogy
    – Add a DSL on top of for describing a build chain




                                Jenkins                              11
DOXYGEN_HOME
                ANT_HOME
                    ..




                                             EnvInject
                                VARA=..       Plugin
                                VARB=..


              DOXYGEN_HOME
                ANT_HOME
                    ..



                                                         VARA
                                                         VARB
                                                           ..


                              Prepare Env
Prepare Env
 vars from                   vars from job
   node




                                  Jenkins                       12
•  Removes inherited environment variables by the Jenkins Java
   process
•  Injects environment variables at node (master/slave) startup
•  Executes a setup script before or/and after a SCM checkout
•  Injects environment variables before or/and after a SCM checkout
•  Injects environment variables as a build step.
•  Exports environment variables at the end of the build in order to to
   know the set of environment variables used for each build




                                                                DEMO
                                  Jenkins                                 13
•  Share objects and populate these objects as environment
   variables
     – Public File Path
     – Simple Value
     – Clearcase Object
     – ...




                                Jenkins                      14
•  Get your build context and export it
    – Delegate to EnvInject for getting environment variables used
      in your build




                                Jenkins                              15
•  Makes a dry-run at job level
    – Exectutes the jobs steps with the dry-run option
       •  obProperty/RunListeners
        J
       •  uildWrappers
        B
       •  uilders
        B
       •  ublishers
        P

•  Supported plugins at the moment
    – Gradle builder
    – xUnit publisher



                                                         DEMO
                                    Jenkins                     16
•  Acitivate dry-un
    – on RunListeners
    – on SCMs

•  Add a dry-run mode to the following plugins
    – Ant/Ivy (build+ publisher)
    – ArtifactDeployer




                                 Jenkins         17
•  Trying to federate the plugins
     – xUnit, xTrigger, ...

•  Do not put all business value in Jenkins
    – DTKit for managing metric reports (conversion,
      validation, database, rest server, ...)

•  Having an industry approach
    – Manage your environment with the EnvInject
    – Capture your build context with the BuildContextCapture
    – Do not grow the number of tools in your continuous build

                                Jenkins                          18

Contenu connexe

Tendances

Java build tools
Java build toolsJava build tools
Java build tools
Sujit Kumar
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
GR8Conf
 

Tendances (13)

Java build tools
Java build toolsJava build tools
Java build tools
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for Dummies
 
Continuous delivery chernivcy
Continuous delivery chernivcyContinuous delivery chernivcy
Continuous delivery chernivcy
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshots
 
Tccc10 tooling testingci-vs2010teamcity
Tccc10 tooling testingci-vs2010teamcityTccc10 tooling testingci-vs2010teamcity
Tccc10 tooling testingci-vs2010teamcity
 
CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
 
Scrumbox ece2011.pptx
Scrumbox ece2011.pptxScrumbox ece2011.pptx
Scrumbox ece2011.pptx
 
Agile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business ManagersAgile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business Managers
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Improve DB2 testing environments
Improve DB2 testing environmentsImprove DB2 testing environments
Improve DB2 testing environments
 
Evolutionary change with Kanban
Evolutionary change with KanbanEvolutionary change with Kanban
Evolutionary change with Kanban
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 

Similaire à Jenkins-meetup

Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
Promet Source
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Bamdad Dashtban
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012
Anton Arhipov
 
Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)
Joram Barrez
 
Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activiti
Alfresco Software
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
Toni de la Fuente
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
XebiaLabs
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt project
Eyal Edri
 

Similaire à Jenkins-meetup (20)

Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)
 
Managing Jenkins with Python
Managing Jenkins with PythonManaging Jenkins with Python
Managing Jenkins with Python
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling Integration
 
Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activiti
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt project
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testable
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Scaling Jenkins Devops presentation
Scaling Jenkins Devops presentationScaling Jenkins Devops presentation
Scaling Jenkins Devops presentation
 

Plus de Gregory Boissinot

JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
Gregory Boissinot
 
Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105
Gregory Boissinot
 

Plus de Gregory Boissinot (20)

Practical Software Architecture DDD
Practical Software Architecture DDDPractical Software Architecture DDD
Practical Software Architecture DDD
 
DDD Introduction
DDD IntroductionDDD Introduction
DDD Introduction
 
SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
 
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDDDevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
 
Beyond Relational Databases
Beyond Relational DatabasesBeyond Relational Databases
Beyond Relational Databases
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup Introduction
 
Paris Redis Meetup Starting
Paris Redis Meetup StartingParis Redis Meetup Starting
Paris Redis Meetup Starting
 
PZ_Microservices101_20150210
PZ_Microservices101_20150210PZ_Microservices101_20150210
PZ_Microservices101_20150210
 
Spring Integration JUG SummerCamp 2013
Spring Integration JUG SummerCamp 2013Spring Integration JUG SummerCamp 2013
Spring Integration JUG SummerCamp 2013
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 
gradle_lavajug
gradle_lavajuggradle_lavajug
gradle_lavajug
 
JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Gradle_Paris2010
Gradle_Paris2010Gradle_Paris2010
Gradle_Paris2010
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Gradle_NormandyJUG
Gradle_NormandyJUGGradle_NormandyJUG
Gradle_NormandyJUG
 
Gradle_BreizJUG
Gradle_BreizJUGGradle_BreizJUG
Gradle_BreizJUG
 
Gradle_BordeauxJUG
Gradle_BordeauxJUGGradle_BordeauxJUG
Gradle_BordeauxJUG
 
Gradle_ToulouseJUG
Gradle_ToulouseJUGGradle_ToulouseJUG
Gradle_ToulouseJUG
 
Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Jenkins-meetup

  • 1. Jenkins User Meetup "XTrigger, EnvInject and DryRun plugins" Grégory BOISSINOT (@gboissinot) 2012-02-06 Jenkins 1
  • 2. •  Senior Consultant and Trainer at Zenika – Setting up CI processes in major companies •  Hudson Committer since February 2008 •  Active Jenkins contributor and committer – Creator and maintainer ~30 plugins – Mainly on my free time •  A pragmatic guy: – Clearcase is a great VCS tools – Ivy is the best dependency manager – FarManager is the best file manager on Windows Jenkins 2
  • 3. Development   JAVA ... Event   Environment Jenkins Development   Integrator   Project  Manager   Jenkins 3
  • 4. Jenkins roles 1.  Monitor an external infrastructure environment 2.  Prepare the running environment of the CI process 3.  Start the integration process 4.  Ensure traceability tool with the software configuration management from the source to the generated binaries (bidirectional) 5.  Orchestrating quality tools code 6.  Notify the development team Jenkins is focuses on the developer needs Jenkins 4
  • 5. SCMTrigger Environment FSTrigger Polling URLTrigger IvyTrigger Jenkins MavenTrigger BuildResultTrigger ScriptTrigger •  ot only a SCM N XTrigger •  any ways to trigger a job M Jenkins 5
  • 6. •  OB_A is triggered if there are changes in J SCM •  OB_B is triggered only if there are new J artefacts in the file system repository •  OB_A and JOB_B are not tied together. J POLL JOB_A PUSH "Build & UnitTests" POLL Artifact RUN JOB_B "Functional Tests" RUN Jenkins 6
  • 7. JOB1 JOB2 JOB3 JOB4 Polling jobs status such as "looking for new failures" Clean JOB Environment Launch a clean Procedure Jenkins 7
  • 8. CommonF1   Build dependencies and the usage of latest ivy.xml strategy ivy.xml Client   Server   POLL   Client   PUSH   Ivy   PUSH   CommonF1   Ivy   IvyTrigger   POLL   SCMTrigger   Common   PUSH   Client   Server   Server   IvyTrigger    Jobs are triggered by events  No dependencies between Jenkins jobs  You build only jobs that have to build (incremental build at Jenkins level) Jenkins 8
  • 9. JOB_A PUSH Environment Jenkins POLL JOB_B •  o static dependencies between jobs N •  ependencies in the build chain are driven to a change of an external resource D •  ou can rebuild your application without a dependency on Jenkins Y DEMO Jenkins 9
  • 10. •  In practice – Do not exceed polling in your system – Choosing the right schedule is indispensable •  However, except for SCM, handle events (hooks) is difficult – FileSystem? – Binary Repository ? – URL?  Maybe an evolution Jenkins 10
  • 11. •  For the FSTrigger plugin – Implement the core in Python (or other language close to OS) •  For the IvyTrigger plugin – Add credentials •  XTrigger – Add GradleTrigger typlogy – Add a DSL on top of for describing a build chain Jenkins 11
  • 12. DOXYGEN_HOME ANT_HOME .. EnvInject VARA=.. Plugin VARB=.. DOXYGEN_HOME ANT_HOME .. VARA VARB .. Prepare Env Prepare Env vars from vars from job node Jenkins 12
  • 13. •  Removes inherited environment variables by the Jenkins Java process •  Injects environment variables at node (master/slave) startup •  Executes a setup script before or/and after a SCM checkout •  Injects environment variables before or/and after a SCM checkout •  Injects environment variables as a build step. •  Exports environment variables at the end of the build in order to to know the set of environment variables used for each build DEMO Jenkins 13
  • 14. •  Share objects and populate these objects as environment variables – Public File Path – Simple Value – Clearcase Object – ... Jenkins 14
  • 15. •  Get your build context and export it – Delegate to EnvInject for getting environment variables used in your build Jenkins 15
  • 16. •  Makes a dry-run at job level – Exectutes the jobs steps with the dry-run option •  obProperty/RunListeners J •  uildWrappers B •  uilders B •  ublishers P •  Supported plugins at the moment – Gradle builder – xUnit publisher DEMO Jenkins 16
  • 17. •  Acitivate dry-un – on RunListeners – on SCMs •  Add a dry-run mode to the following plugins – Ant/Ivy (build+ publisher) – ArtifactDeployer Jenkins 17
  • 18. •  Trying to federate the plugins – xUnit, xTrigger, ... •  Do not put all business value in Jenkins – DTKit for managing metric reports (conversion, validation, database, rest server, ...) •  Having an industry approach – Manage your environment with the EnvInject – Capture your build context with the BuildContextCapture – Do not grow the number of tools in your continuous build Jenkins 18