Jenkins/Job DSL, Pipelines, JaaC

From Ever changing code
< Jenkins
Revision as of 00:01, 8 May 2018 by Pio2pio (talk | contribs) (Created page with "= Example - shell in line = <source lang="js"> hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace() String scriptSH1 = workspace.list("t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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(<nowiki>'''</nowiki>#!/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
       <nowiki>'''</nowiki>)
     }
   }
 }

.