Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Jenkins pipelines working for your quality
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Dionysis Lorentzos
November 29, 2016
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jenkins pipelines working for your quality
Dionysis Lorentzos
November 29, 2016
More Decks by Dionysis Lorentzos
See All by Dionysis Lorentzos
Android code scalability
diolor
0
110
Introduction in Android Wear and Watchfaces
diolor
0
32
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1k
Domain-Driven Transformation
hschwentner
2
2.3k
Jetpack Compose Mechanisms
skydoves
3
820
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
590
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
すこし踏み込む CancellationToken
htkym
2
1.7k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
SREの越境 / SRE Collaboration
y0hgi
2
310
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Mobile First: as difficult as doing things right
swwweet
225
10k
For a Future-Friendly Web
brad_frost
184
10k
The agentic SEO stack - context over prompts
schlessera
0
970
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Building Adaptive Systems
keathley
44
3.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Chasing Engaging Ingredients in Design
codingconduct
0
360
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Transcript
Jenkins pipelines working for your quality Dionysis Lorentzos
None
None
Oops!
None
None
Pipelines
None
None
None
/JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node { } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
} } /JenkinsFile
None
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: '
[email protected]
m:ReactiveX/RxJava.git']]]) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'], [$class: 'WipeWorkspace'], [$class: 'PruneStaleBranch']], submoduleCfg: [], userRemoteConfigs: [[url: '
[email protected]
m:ReactiveX/RxJava.git']]]) } } /JenkinsFile
None
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { } else { } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop" } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop” sh "git pull" } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop” sh "git pull” sh "git checkout ${env.BRANCH_NAME}" } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop” sh "git pull” sh "git checkout ${env.BRANCH_NAME}" sh "git merge develop" } } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop” sh "git pull” sh "git checkout ${env.BRANCH_NAME}" sh "git merge develop" } stash 'sources' } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { if (isDevelop) { echo "Building develop, merge not necessary" } else { sh "git checkout develop” sh "git pull” sh "git checkout ${env.BRANCH_NAME}" sh "git merge develop" } stash 'sources' } } /JenkinsFile
None
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel( ) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { unstash ‘sources' } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { unstash 'sources' sh './gradlew clean lintLiveAndroidProductionIntegration' } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { unstash 'sources' sh './gradlew clean lintLiveAndroidProductionIntegration' step([$class: 'LintPublisher', failedTotalAll: "25"]) } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { unstash 'sources' sh './gradlew clean lintLiveAndroidProductionIntegration' step([$class: 'LintPublisher', failedTotalAll: "25"]) } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { node('android') { unstash 'sources' sh './gradlew clean lintLiveAndroidProductionIntegration' step([$class: 'LintPublisher', failedTotalAll: "25"]) } }) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { … } ) } } /JenkinsFile
isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {
… } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { … }, "Android Unit Tests": { … } ) } } /JenkinsFile
None
None
None
None
https://github.com/ Diolor Jenkins pipelines working for your quality Dionysis Lorentzos
https://medium.com/ @Diolor https://twitter.com/ Diolor 46