mirror of
https://github.com/HariSekhon/DevOps-Bash-tools.git
synced 2025-02-06 09:28:21 +00:00
89 lines
2.2 KiB
Groovy
89 lines
2.2 KiB
Groovy
// vim:ts=4:sts=4:sw=4:et:filetype=groovy:syntax=groovy
|
|
//
|
|
// Author: Hari Sekhon
|
|
// Date: 2017-06-28 12:39:02 +0200 (Wed, 28 Jun 2017)
|
|
//
|
|
// https://github.com/HariSekhon/DevOps-Bash-tools
|
|
//
|
|
// License: see accompanying Hari Sekhon LICENSE file
|
|
//
|
|
// If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
|
|
//
|
|
// https://www.linkedin.com/in/HariSekhon
|
|
//
|
|
|
|
// ========================================================================== //
|
|
// J e n k i n s P i p e l i n e
|
|
// ========================================================================== //
|
|
|
|
// Epic Jenkinsfile template:
|
|
//
|
|
// https://github.com/HariSekhon/Templates/blob/master/Jenkinsfile
|
|
|
|
|
|
// Official Documentation:
|
|
//
|
|
// https://jenkins.io/doc/book/pipeline/syntax/
|
|
//
|
|
// https://www.jenkins.io/doc/pipeline/steps/
|
|
//
|
|
// https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/
|
|
|
|
|
|
pipeline {
|
|
// to run on Docker or Kubernetes, see the master Jenkinsfile template listed at the top
|
|
agent any
|
|
|
|
options {
|
|
timestamps()
|
|
|
|
timeout(time: 2, unit: 'HOURS')
|
|
}
|
|
|
|
triggers {
|
|
cron('H 10 * * 1-5')
|
|
pollSCM('H/2 * * * *')
|
|
}
|
|
|
|
stages {
|
|
stage ('Checkout') {
|
|
steps {
|
|
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '', url: 'https://github.com/HariSekhon/DevOps-Bash-tools']]])
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
steps {
|
|
echo "Running ${env.JOB_NAME} Build ${env.BUILD_ID} on ${env.JENKINS_URL}"
|
|
echo 'Building...'
|
|
timeout(time: 10, unit: 'MINUTES') {
|
|
retry(3) {
|
|
// sh 'apt update -q'
|
|
// sh 'apt install -qy make'
|
|
// sh 'make init'
|
|
sh """
|
|
setup/ci_bootstrap.sh &&
|
|
make init
|
|
"""
|
|
}
|
|
}
|
|
timeout(time: 180, unit: 'MINUTES') {
|
|
sh 'make ci'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Test') {
|
|
options {
|
|
retry(2)
|
|
}
|
|
steps {
|
|
echo 'Testing...'
|
|
timeout(time: 120, unit: 'MINUTES') {
|
|
sh 'make test'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|