Difference between revisions of "Jenkins/Job DSL, Pipelines, JaaC"

From Ever changing code
Jump to navigation Jump to search
Line 1: Line 1:
= Example - shell in line =
= Example - shell in line =
<source lang="js">
<source lang="js">
hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()
hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()
String scriptSH1 = workspace.list("test-certs.sh")[0].read().getText()
String scriptSH1 = workspace.list("test-certs.sh")[0].read().getText()
 
job("DSL_Inline_Certs_expiry_test_shell_inline") {
job("DSL_Inline_Certs_expiry_test_shell_inline") {
  description("Creates Certs_expiry_test job"
  description("Creates Certs_expiry_test job"
  authorization {
  authorization {
    blocksInheritance(true)
    blocksInheritance(true)
    permission('hudson.model.Item.Read:anonymous')
    permission('hudson.model.Item.Read:anonymous')
    permission('hudson.model.Item.Discover:anonymous')
    permission('hudson.model.Item.Discover:anonymous')
    permissionAll('authenticated')
    permissionAll('authenticated')
  }
  }
  logRotator {
  logRotator {
    daysToKeep(-1)
    daysToKeep(-1)
    numToKeep(10)
    numToKeep(10)
    artifactDaysToKeep(-1)
    artifactDaysToKeep(-1)
    artifactNumToKeep(-1)
    artifactNumToKeep(-1)
  }
  }
  wrappers {
  wrappers {
    colorizeOutput()
    colorizeOutput()
    maskPasswords()
    maskPasswords()
    preBuildCleanup()
    preBuildCleanup()
    timestamps()
    timestamps()
    buildNameSetter {
    buildNameSetter {
      template('#${BUILD_NUMBER} ${CHANNEL} ${ENV}')
      template('#${BUILD_NUMBER} ${CHANNEL} ${ENV}')
      runAtStart(true)
      runAtStart(true)
      runAtEnd(false)
      runAtEnd(false)
    }
    }
  }   
  }   
  publishers {
  publishers {
    wsCleanup {
    wsCleanup {
      deleteDirectories(true)
      deleteDirectories(true)
      setFailBuild(false)
      setFailBuild(false)
      cleanWhenSuccess(true)
      cleanWhenSuccess(true)
      cleanWhenUnstable(false)
      cleanWhenUnstable(false)
      cleanWhenFailure(false)
      cleanWhenFailure(false)
      cleanWhenNotBuilt(true)
      cleanWhenNotBuilt(true)
      cleanWhenAborted(true)
      cleanWhenAborted(true)
    }   
    }   
  }
  }
  multiscm {
  multiscm {
    git { remote {
    git { remote {
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            branches('*/master') }
            branches('*/master') }
          extensions { relativeTargetDirectory("secrets-non-prod") }
          extensions { relativeTargetDirectory("secrets-non-prod") }
    }     
    }     
    git { remote {
    git { remote {
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            branches('*/master') }  
            branches('*/master') }  
          extensions { relativeTargetDirectory("secrets-prod") }
          extensions { relativeTargetDirectory("secrets-prod") }
    }
    }
}
}
  steps {
  steps {
    shell {
    shell {
//    command(scriptSH1)
//    command(scriptSH1)
      command(<nowiki>'''</nowiki>#!/bin/bash
      command('''#!/bin/bash
red_bold="\e[1;31m"
red_bold="\e[1;31m"
green="\e[32m"
green="\e[32m"
green_bold="\e[1;32m"
green_bold="\e[1;32m"
yellow_bold="\e[1;93m"
yellow_bold="\e[1;93m"
blue_bold="\e[1;34m"
blue_bold="\e[1;34m"
reset="\e[0m"
reset="\e[0m"
 
datediff() {
datediff() {
    d1=$(date -d "$1" +%s)
    d1=$(date -d "$1" +%s)
    d2=$(date -d "$2" +%s)
    d2=$(date -d "$2" +%s)
    echo $(( (d1 - d2) / 86400 ))  
    echo $(( (d1 - d2) / 86400 ))  
}
}
 
set -f  
set -f  
paths=('secrets-non-prod/ssl/*crt' 'secrets-prod/ssl/*crt')
paths=('secrets-non-prod/ssl/*crt' 'secrets-prod/ssl/*crt')
today=$(date +"%Y%m%d")
today=$(date +"%Y%m%d")
today30=$(date -d "+30 days" +"%Y%m%d")
today30=$(date -d "+30 days" +"%Y%m%d")
for path in ${paths[@]}; do
for path in ${paths[@]}; do
  set +f  #enable fileglobbing
  set +f  #enable fileglobbing
  echo ""
  echo ""
  echo -e "${blue_bold} Certificates in ${path} ${reset}"
  echo -e "${blue_bold} Certificates in ${path} ${reset}"
  for i in $(ls -1 $path); do
  for i in $(ls -1 $path); do
    enddate=$(date --date="$(openssl x509 -in $i -noout -enddate | cut -d= -f 2)" --iso-8601)
    enddate=$(date --date="$(openssl x509 -in $i -noout -enddate | cut -d= -f 2)" --iso-8601)
    enddate_d=$(date -d $enddate +"%Y%m%d")
    enddate_d=$(date -d $enddate +"%Y%m%d")
    if  [ $today -lt $enddate_d ] && [ $today30 -gt $enddate_d ]; then
    if  [ $today -lt $enddate_d ] && [ $today30 -gt $enddate_d ]; then
      colour="${yellow_bold} WARN"
      colour="${yellow_bold} WARN"
    elif [ $today30 -lt $enddate_d ]; then
    elif [ $today30 -lt $enddate_d ]; then
      colour="${green_bold} PASS"
      colour="${green_bold} PASS"
    else
    else
      colour="${red_bold} ERRO"
      colour="${red_bold} ERRO"
    fi
    fi
    echo -e "${colour} ${enddate} $(basename $i) DaysToExpire: $(datediff $enddate_d $today) ${reset}"  
    echo -e "${colour} ${enddate} $(basename $i) DaysToExpire: $(datediff $enddate_d $today) ${reset}"  
  done | sort -k3r | column -t  
  done | sort -k3r | column -t  
  set -f  
  set -f  
done
done''')
      <nowiki>'''</nowiki>)
    }
    }
  }
  }
}
}
</source>
</source>

Revision as of 00:31, 8 May 2018

Example - shell in line

hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()
String scriptSH1 = workspace.list("test-certs.sh")[0].read().getText()

job("DSL_Inline_Certs_expiry_test_shell_inline") {
  description("Creates Certs_expiry_test job"
  authorization {
    blocksInheritance(true)
    permission('hudson.model.Item.Read:anonymous')
    permission('hudson.model.Item.Discover:anonymous')
    permissionAll('authenticated')
  }
  logRotator {
    daysToKeep(-1)
    numToKeep(10)
    artifactDaysToKeep(-1)
    artifactNumToKeep(-1)
  }
  wrappers {
    colorizeOutput()
    maskPasswords()
    preBuildCleanup()
    timestamps()
    buildNameSetter {
      template('#${BUILD_NUMBER} ${CHANNEL} ${ENV}')
      runAtStart(true)
      runAtEnd(false)
    }
  }  
  publishers {
    wsCleanup {
      deleteDirectories(true)
      setFailBuild(false)
      cleanWhenSuccess(true)
      cleanWhenUnstable(false)
      cleanWhenFailure(false)
      cleanWhenNotBuilt(true)
      cleanWhenAborted(true)
    }  
  }
  multiscm {
    git { remote {
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            branches('*/master') }
          extensions { relativeTargetDirectory("secrets-non-prod") }
    }     
    git { remote {
            url("git@gitlab.com:pio2pio/dsl-jenkins.git")
            credentials("123abc12-1234-1234-1234-abc123abc123")
            branches('*/master') } 
          extensions { relativeTargetDirectory("secrets-prod") }
    }
}
  steps {
    shell {
//    command(scriptSH1)
      command('''#!/bin/bash
red_bold="\e[1;31m"
green="\e[32m"
green_bold="\e[1;32m"
yellow_bold="\e[1;93m"
blue_bold="\e[1;34m"
reset="\e[0m"

datediff() {
    d1=$(date -d "$1" +%s)
    d2=$(date -d "$2" +%s)
    echo $(( (d1 - d2) / 86400 )) 
}

set -f 
paths=('secrets-non-prod/ssl/*crt' 'secrets-prod/ssl/*crt')
today=$(date +"%Y%m%d")
today30=$(date -d "+30 days" +"%Y%m%d")
for path in ${paths[@]}; do
  set +f  #enable fileglobbing
  echo ""
  echo -e "${blue_bold} Certificates in ${path} ${reset}"
  for i in $(ls -1 $path); do
    enddate=$(date --date="$(openssl x509 -in $i -noout -enddate | cut -d= -f 2)" --iso-8601)
    enddate_d=$(date -d $enddate +"%Y%m%d")
    if  [ $today -lt $enddate_d ] && [ $today30 -gt $enddate_d ]; then
      colour="${yellow_bold} WARN"
    elif [ $today30 -lt $enddate_d ]; then
      colour="${green_bold} PASS"
    else
      colour="${red_bold} ERRO"
    fi
    echo -e "${colour} ${enddate} $(basename $i) DaysToExpire: $(datediff $enddate_d $today) ${reset}" 
  done | sort -k3r | column -t 
  set -f 
done''')
    }
  }
}