Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jenkins pipelines working for your quality

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Jenkins pipelines working for your quality

Avatar for Dionysis Lorentzos

Dionysis Lorentzos

November 29, 2016

More Decks by Dionysis Lorentzos

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") {
 if (isDevelop) {
 
 } else {
 }
 } } /JenkinsFile
  4. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") {
 if (isDevelop) {
 echo "Building develop, merge not necessary"
 } else {
 }
 } } /JenkinsFile
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { } } /JenkinsFile
  12. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel( ) } } /JenkinsFile
  13. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": {
 
 }) } } /JenkinsFile
  14. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": {
 node('android') {
 }
 }) } } /JenkinsFile
  15. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": {
 node('android') {
 unstash ‘sources' }
 }) } } /JenkinsFile
  16. 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
  17. 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
  18. 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
  19. 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
  20. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { … }
 ) } } /JenkinsFile
  21. isDevelop = env.BRANCH_NAME == 'develop' node('android') { stage('Checkout code') {

    … } stage("Merge develop") { … } stage("Testing") { parallel("Lint Android": { … }, "Android Unit Tests": { … } ) } } /JenkinsFile
  22. https://github.com/ Diolor Jenkins pipelines working for your quality Dionysis Lorentzos

    https://medium.com/ @Diolor https://twitter.com/ Diolor 46