pipeline {
|
|
agent any
|
|
|
|
// this section configures Jenkins options
|
|
options {
|
|
|
|
// only keep 10 logs for no more than 10 days
|
|
buildDiscarder(logRotator(daysToKeepStr: '10', numToKeepStr: '10'))
|
|
|
|
// cause the build to time out if it runs for more than 12 hours
|
|
timeout(time: 12, unit: 'HOURS')
|
|
|
|
// add timestamps to the log
|
|
// timestamps()
|
|
}
|
|
|
|
// this section configures triggers
|
|
triggers {
|
|
// create a cron trigger that will run the job every day at midnight
|
|
// note that the time is based on the time zone used by the server
|
|
// where Jenkins is running, not the user's time zone
|
|
cron '@midnight'
|
|
}
|
|
|
|
// the pipeline section we all know and love: stages! :D
|
|
stages {
|
|
stage('Requirements') {
|
|
steps {
|
|
echo 'Installing requirements...'
|
|
}
|
|
}
|
|
stage('Build') {
|
|
steps {
|
|
echo 'Building..'
|
|
}
|
|
}
|
|
stage('Test') {
|
|
steps {
|
|
echo 'Testing..'
|
|
}
|
|
}
|
|
stage('Report') {
|
|
steps {
|
|
echo 'Reporting....'
|
|
}
|
|
}
|
|
}
|
|
|
|
// the post section is a special collection of stages
|
|
// that are run after all other stages have completed
|
|
post {
|
|
|
|
// the always stage will always be run
|
|
always {
|
|
|
|
// the always stage can contain build steps like other stages
|
|
// a "steps{...}" section is not needed.
|
|
echo "This step will run after all other steps have finished. It will always run, even in the status of the build is not SUCCESS"
|
|
}
|
|
}
|
|
}
|