SlideShare a Scribd company logo
1 of 21
CI for ALL
Agenda
● CI - Why, What & How
● YAML file and JJB
● CI Work-flow
● Build triggers
● Parameterize the jobs
● Build jobs using JJB
● Q&A session
Why CI?
● Company Goal
● Delay in response
● Env issues & User errors
● Inefficient use of tools/resources
● Duplicate test reports
● Compromise in Quality
What does CI do?
● Automatic execution of tests
● Integrate different tools
● Latest & greatest pkgs
● Clean env
● TIER based runs
● Centralized reporting
How to setup CI?
● Jenkins Master/Slave
– Install/Config/Plugin
● Requirements and project details
– YAML file
– JJB – Jenkins Job Builder
● Triggers
● Repo creation
● Provision & teardown
● Runtest
● YAML file and JJB
YAML file
Global defaults
Project vars & Jobs
Jenkins vars
Json file
Restraint xml
Builders
Parameters
Jobs
Jenkins Jobs
Trigger
Repo creation
Provision
Runtest
Teardown
Build jobs from Jenkins
JJB(Python script)
GIT repo
Jenkins
Master
Config
file(Creds)
● CI work-flow
Brew
Trigger
Provision
Resources
Runtest
Teardown
Resources
Brew build
Redhat CI
PluginYAML file
Mail
Notifications
IRC
Notifications
JMS
Selector
Brew
bus
Jenkins Jobs
JJB
Project variables
● jobs:
- '{prefix}-{testsuite}-{arch}-provision'
- '{prefix}-{testsuite}-{arch}-runtest'
- '{prefix}-{testsuite}-{arch}-teardown'
● testsuite:
- test1
- test2
- test3
● Prefix: rhds
● brew-tag: rhel-7.2-candidate
● arch: x86_64
Variables contd...
● Replace variable with values:
– Variable within YAML file
● '{release}'
● '{prefix}-{testsuite}-{arch}-provision'
– Parameters
● $PATCH_ID
● $BUILD_ID
– Jenkins env variables
● $WORKSPACE
● $JENKINS_HOME
Build triggers
● Upstream job - Trigger
● Downstream – Provision
● Triggers:
- ci-trigger:
jms-selector: |
CI_TYPE IN ('brew-tag')
AND
CI_NAME IN ('389-ds-base','nss','openldap')
AND
tag IN '{brew-tag}'
Build triggers contd...
● Periodic build trigger
● Jenkins job trigger
– Build when jobs built
– Build when jobs promoted
– Build based on results of multiple jobs
● Script trigger – Shell script
● Gerrit trigger
– Gerrit server details
– When patchset created, merged
Provision
● Beaker/Openstack
– JSON File
– provision_resources.sh
● Upstream job - Trigger
● Downstream job - Runtest
● Copy artifcats
– Inject information to RESOURCES.txt
Provision contd...
- builder:
name: 'provision-resources'
builders:
- shell: |
#!/bin/bash
$WORKSPACE/ci-ops-
central/bootstrap/provision_resources.sh --site=$SITE 
--project_defaults=dirsrv-tests/config/project_defaults 
--topology={topology}-$PROVISIONER 
--ssh_keyfile=dirsrv-tests/config/keys/idm-jenkins 
--name={testsuite}
TR_STATUS=$?
JSON File
"family": "RedHatEnterpriseLinux7",
“arch": "x86_64",
"tag": ["RTT_ACCEPTED"],
"variant": "Server",
"hostrequire": ["arch=x86_64"]
"name": "ci-ops-rhel-7-1",
"count": "1",
"flavor": "m1.medium",
"image": "RHEL-7.2-Server-x86_64-latest",
"ip": "10.8.60.20",
"name": "nocp9.idm.lab.eng.rdu2.redhat.com",
"private_ip": "10.8.60.20”
Runtest
● Restraint xml file
– Beaker task
– Install, configure and execute tests
● Ansible
– Ansible playbook
– Install pkgs
– Run your tests
● Upstream – provision
– Bkr job ID, IP address & Hostname
● Downstream - teardown
Config file
[jenkins]
user=idm-jenkins
password=Secret123
url=https://idm-qe-jenkins.rhev-ci-
vms.eng.rdu2.redhat.com
ignore_cache=False
● Jenkins Job Builder
builders:
- shell: |
JENKINS_URL=${JENKINS_URL:-"https://localhost/"}
pushd $WORKSPACE/dirsrv-tests
Popd
cd $WORKSPACE
python -m jenkins_jobs.cmd --conf $WORKSPACE/
$CONIG_FILE --flush-cache update $WORKSPACE/
$GIT_REPO/$CI_DIR
Example for RHDS:
python -m jenkins_jobs.cmd --conf
$WORKSPACE/dirsrv-tests/jobs/config --flush-cache update
$WORKSPACE/dirsrv-tests/jobs/rhel72
Parameterize jobs
● Change variable values
– Troubleshooting & Manual execution
● choice:
name: tag
choices:
- rhel-7.2-z-candidate
- rhel-7.2-candidate
description: "Brew tag for this build."
● string:
name: REPORT_EMAIL
default: redhat-list@redhat.com
description: Default email id for reports
JJB with Gerrit refspec
● Add a parameter - GERRIT_REFSPEC
● Add a build step – Execute shell
pushd $WORKSPACE/dirsrv-tests
git pull
https://code.engineering.redhat.com/gerrit/dirsrv-tests
$GERRIT_REFSPEC
popd
● cd $WORKSPACE
● python -m jenkins_jobs.cmd --conf
$WORKSPACE/dirsrv-tests/jobs/config --flush-cache
update $WORKSPACE/dirsrv-tests/jobs/
$GIT_BRANCH
References
About CI in MOJO - https://mojo.redhat.com/search.jspa?q=CI
%20workflow
Setup CI with Jenkins -
http://www.vogella.com/tutorials/Jenkins/article.html
Jenkins CI plugin - https://mojo.redhat.com/docs/DOC-986839
CI Reference guide - https://mojo.redhat.com/docs/DOC-1030059
Questions

More Related Content

What's hot

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
 
以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用Shengyou Fan
 
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Ovadiah Myrgorod
 
Environmental variables
Environmental variablesEnvironmental variables
Environmental variablesAlena Holligan
 
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON APIShengyou Fan
 
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Julian Dunn
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker PresentationKyle Dorman
 
以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用Shengyou Fan
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具用 Kotlin 做自動化工具
用 Kotlin 做自動化工具Shengyou Fan
 
運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫Shengyou Fan
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistranonickblah
 
Cut your hair and get an azure webjob
Cut your hair and get an azure webjobCut your hair and get an azure webjob
Cut your hair and get an azure webjobMark Greenway
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCPDana Hoffman
 
DevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and WebminDevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and Webminpostrational
 
What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)Julian Dunn
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeMario IC
 
[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidlyShengyou Fan
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internalscarlo-rtr
 
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL MeetupAnsible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL MeetupJeff Geerling
 
以 Kotlin 快速打造 Mobile Backend
以 Kotlin 快速打造 Mobile Backend以 Kotlin 快速打造 Mobile Backend
以 Kotlin 快速打造 Mobile BackendShengyou Fan
 

What's hot (20)

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
 
以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用
 
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
 
Environmental variables
Environmental variablesEnvironmental variables
Environmental variables
 
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
 
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
 
以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具用 Kotlin 做自動化工具
用 Kotlin 做自動化工具
 
運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Cut your hair and get an azure webjob
Cut your hair and get an azure webjobCut your hair and get an azure webjob
Cut your hair and get an azure webjob
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCP
 
DevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and WebminDevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and Webmin
 
What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
 
[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internals
 
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL MeetupAnsible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL Meetup
 
以 Kotlin 快速打造 Mobile Backend
以 Kotlin 快速打造 Mobile Backend以 Kotlin 快速打造 Mobile Backend
以 Kotlin 快速打造 Mobile Backend
 

Viewers also liked

Viewers also liked (20)

Persuasive speeches in history
Persuasive speeches in historyPersuasive speeches in history
Persuasive speeches in history
 
Trabajo práctico
Trabajo prácticoTrabajo práctico
Trabajo práctico
 
Ensayo final
Ensayo finalEnsayo final
Ensayo final
 
Conexión remota-a-oracle-database
Conexión remota-a-oracle-databaseConexión remota-a-oracle-database
Conexión remota-a-oracle-database
 
Оскари "Глисо"
Оскари "Глисо"Оскари "Глисо"
Оскари "Глисо"
 
The Denial of Alfred Wegener's Continental Drift. Allan Krill, NTNU
The Denial of Alfred Wegener's Continental Drift. Allan Krill, NTNUThe Denial of Alfred Wegener's Continental Drift. Allan Krill, NTNU
The Denial of Alfred Wegener's Continental Drift. Allan Krill, NTNU
 
presentaciones e imagenes
presentaciones e imagenespresentaciones e imagenes
presentaciones e imagenes
 
портфоліо
портфоліопортфоліо
портфоліо
 
8. otsingumootorid
8. otsingumootorid8. otsingumootorid
8. otsingumootorid
 
AA-ATS
AA-ATSAA-ATS
AA-ATS
 
Tech Interview Job Prep
Tech Interview Job PrepTech Interview Job Prep
Tech Interview Job Prep
 
Investigacion invertebrados
Investigacion invertebradosInvestigacion invertebrados
Investigacion invertebrados
 
Aspect-Oriented Programming for PHP
Aspect-Oriented Programming for PHPAspect-Oriented Programming for PHP
Aspect-Oriented Programming for PHP
 
Analisis Estructural I - Metodo de la Viga Conjugada
Analisis Estructural I - Metodo de la Viga ConjugadaAnalisis Estructural I - Metodo de la Viga Conjugada
Analisis Estructural I - Metodo de la Viga Conjugada
 
Using Text Embeddings for Information Retrieval
Using Text Embeddings for Information RetrievalUsing Text Embeddings for Information Retrieval
Using Text Embeddings for Information Retrieval
 
Transparencias dinamica orden
Transparencias dinamica ordenTransparencias dinamica orden
Transparencias dinamica orden
 
Resume
ResumeResume
Resume
 
Jord
JordJord
Jord
 
HOANG MINH DOAN
HOANG MINH DOANHOANG MINH DOAN
HOANG MINH DOAN
 
IoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM InformixIoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM Informix
 

Similar to Ci for all

Make BDD great again
Make BDD great againMake BDD great again
Make BDD great againYana Gusti
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with PuppetKris Buytaert
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppSmartLogic
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationDavid Amend
 
Declarative Infrastructure Tools
Declarative Infrastructure Tools Declarative Infrastructure Tools
Declarative Infrastructure Tools Yulia Shcherbachova
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris Buytaert
 
Yaetos Tech Overview
Yaetos Tech OverviewYaetos Tech Overview
Yaetos Tech Overviewprevota
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
Yaetos_Meetup_SparkBCN_v1.pdf
Yaetos_Meetup_SparkBCN_v1.pdfYaetos_Meetup_SparkBCN_v1.pdf
Yaetos_Meetup_SparkBCN_v1.pdfprevota
 
一种多屏时代的通用 web 应用架构
一种多屏时代的通用 web 应用架构一种多屏时代的通用 web 应用架构
一种多屏时代的通用 web 应用架构勇浩 赖
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOpsОмские ИТ-субботники
 
Build Automation of PHP Applications
Build Automation of PHP ApplicationsBuild Automation of PHP Applications
Build Automation of PHP ApplicationsPavan Kumar N
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaKévin Margueritte
 
Implementing a build manager in Ada
Implementing a build manager in AdaImplementing a build manager in Ada
Implementing a build manager in AdaStephane Carrez
 
Craft CMS: Beyond the Small Business; Advanced tools and configurations
Craft CMS: Beyond the Small Business; Advanced tools and configurationsCraft CMS: Beyond the Small Business; Advanced tools and configurations
Craft CMS: Beyond the Small Business; Advanced tools and configurationsNate Iler
 

Similar to Ci for all (20)

Make BDD great again
Make BDD great againMake BDD great again
Make BDD great again
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
 
Declarative Infrastructure Tools
Declarative Infrastructure Tools Declarative Infrastructure Tools
Declarative Infrastructure Tools
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Yaetos Tech Overview
Yaetos Tech OverviewYaetos Tech Overview
Yaetos Tech Overview
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Yaetos_Meetup_SparkBCN_v1.pdf
Yaetos_Meetup_SparkBCN_v1.pdfYaetos_Meetup_SparkBCN_v1.pdf
Yaetos_Meetup_SparkBCN_v1.pdf
 
一种多屏时代的通用 web 应用架构
一种多屏时代的通用 web 应用架构一种多屏时代的通用 web 应用架构
一种多屏时代的通用 web 应用架构
 
Tp web
Tp webTp web
Tp web
 
The Accidental DBA
The Accidental DBAThe Accidental DBA
The Accidental DBA
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
Django
DjangoDjango
Django
 
Build Automation of PHP Applications
Build Automation of PHP ApplicationsBuild Automation of PHP Applications
Build Automation of PHP Applications
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
 
Implementing a build manager in Ada
Implementing a build manager in AdaImplementing a build manager in Ada
Implementing a build manager in Ada
 
Grails 101
Grails 101Grails 101
Grails 101
 
Craft CMS: Beyond the Small Business; Advanced tools and configurations
Craft CMS: Beyond the Small Business; Advanced tools and configurationsCraft CMS: Beyond the Small Business; Advanced tools and configurations
Craft CMS: Beyond the Small Business; Advanced tools and configurations
 

Recently uploaded

LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 

Recently uploaded (20)

LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 

Ci for all

  • 2. Agenda ● CI - Why, What & How ● YAML file and JJB ● CI Work-flow ● Build triggers ● Parameterize the jobs ● Build jobs using JJB ● Q&A session
  • 3. Why CI? ● Company Goal ● Delay in response ● Env issues & User errors ● Inefficient use of tools/resources ● Duplicate test reports ● Compromise in Quality
  • 4. What does CI do? ● Automatic execution of tests ● Integrate different tools ● Latest & greatest pkgs ● Clean env ● TIER based runs ● Centralized reporting
  • 5. How to setup CI? ● Jenkins Master/Slave – Install/Config/Plugin ● Requirements and project details – YAML file – JJB – Jenkins Job Builder ● Triggers ● Repo creation ● Provision & teardown ● Runtest
  • 6. ● YAML file and JJB YAML file Global defaults Project vars & Jobs Jenkins vars Json file Restraint xml Builders Parameters Jobs Jenkins Jobs Trigger Repo creation Provision Runtest Teardown Build jobs from Jenkins JJB(Python script) GIT repo Jenkins Master Config file(Creds)
  • 7. ● CI work-flow Brew Trigger Provision Resources Runtest Teardown Resources Brew build Redhat CI PluginYAML file Mail Notifications IRC Notifications JMS Selector Brew bus Jenkins Jobs JJB
  • 8. Project variables ● jobs: - '{prefix}-{testsuite}-{arch}-provision' - '{prefix}-{testsuite}-{arch}-runtest' - '{prefix}-{testsuite}-{arch}-teardown' ● testsuite: - test1 - test2 - test3 ● Prefix: rhds ● brew-tag: rhel-7.2-candidate ● arch: x86_64
  • 9. Variables contd... ● Replace variable with values: – Variable within YAML file ● '{release}' ● '{prefix}-{testsuite}-{arch}-provision' – Parameters ● $PATCH_ID ● $BUILD_ID – Jenkins env variables ● $WORKSPACE ● $JENKINS_HOME
  • 10. Build triggers ● Upstream job - Trigger ● Downstream – Provision ● Triggers: - ci-trigger: jms-selector: | CI_TYPE IN ('brew-tag') AND CI_NAME IN ('389-ds-base','nss','openldap') AND tag IN '{brew-tag}'
  • 11. Build triggers contd... ● Periodic build trigger ● Jenkins job trigger – Build when jobs built – Build when jobs promoted – Build based on results of multiple jobs ● Script trigger – Shell script ● Gerrit trigger – Gerrit server details – When patchset created, merged
  • 12. Provision ● Beaker/Openstack – JSON File – provision_resources.sh ● Upstream job - Trigger ● Downstream job - Runtest ● Copy artifcats – Inject information to RESOURCES.txt
  • 13. Provision contd... - builder: name: 'provision-resources' builders: - shell: | #!/bin/bash $WORKSPACE/ci-ops- central/bootstrap/provision_resources.sh --site=$SITE --project_defaults=dirsrv-tests/config/project_defaults --topology={topology}-$PROVISIONER --ssh_keyfile=dirsrv-tests/config/keys/idm-jenkins --name={testsuite} TR_STATUS=$?
  • 14. JSON File "family": "RedHatEnterpriseLinux7", “arch": "x86_64", "tag": ["RTT_ACCEPTED"], "variant": "Server", "hostrequire": ["arch=x86_64"] "name": "ci-ops-rhel-7-1", "count": "1", "flavor": "m1.medium", "image": "RHEL-7.2-Server-x86_64-latest", "ip": "10.8.60.20", "name": "nocp9.idm.lab.eng.rdu2.redhat.com", "private_ip": "10.8.60.20”
  • 15. Runtest ● Restraint xml file – Beaker task – Install, configure and execute tests ● Ansible – Ansible playbook – Install pkgs – Run your tests ● Upstream – provision – Bkr job ID, IP address & Hostname ● Downstream - teardown
  • 17. ● Jenkins Job Builder builders: - shell: | JENKINS_URL=${JENKINS_URL:-"https://localhost/"} pushd $WORKSPACE/dirsrv-tests Popd cd $WORKSPACE python -m jenkins_jobs.cmd --conf $WORKSPACE/ $CONIG_FILE --flush-cache update $WORKSPACE/ $GIT_REPO/$CI_DIR Example for RHDS: python -m jenkins_jobs.cmd --conf $WORKSPACE/dirsrv-tests/jobs/config --flush-cache update $WORKSPACE/dirsrv-tests/jobs/rhel72
  • 18. Parameterize jobs ● Change variable values – Troubleshooting & Manual execution ● choice: name: tag choices: - rhel-7.2-z-candidate - rhel-7.2-candidate description: "Brew tag for this build." ● string: name: REPORT_EMAIL default: redhat-list@redhat.com description: Default email id for reports
  • 19. JJB with Gerrit refspec ● Add a parameter - GERRIT_REFSPEC ● Add a build step – Execute shell pushd $WORKSPACE/dirsrv-tests git pull https://code.engineering.redhat.com/gerrit/dirsrv-tests $GERRIT_REFSPEC popd ● cd $WORKSPACE ● python -m jenkins_jobs.cmd --conf $WORKSPACE/dirsrv-tests/jobs/config --flush-cache update $WORKSPACE/dirsrv-tests/jobs/ $GIT_BRANCH
  • 20. References About CI in MOJO - https://mojo.redhat.com/search.jspa?q=CI %20workflow Setup CI with Jenkins - http://www.vogella.com/tutorials/Jenkins/article.html Jenkins CI plugin - https://mojo.redhat.com/docs/DOC-986839 CI Reference guide - https://mojo.redhat.com/docs/DOC-1030059