From 211e5fbbe24548b08e7e49865edcbd1b432b5d59 Mon Sep 17 00:00:00 2001 From: Kapil Khandelwal Date: Sat, 25 Mar 2023 21:44:46 +0530 Subject: [PATCH] BAEL-5704:- Skip a stage in a Jenkins Pipeline (#13707) --- .../skip-stage-job/skip-function-script | 32 +++++++++++++++++++ .../skip-stage-job/skip-input-script | 29 +++++++++++++++++ .../skip-stage-job/skip-when-script | 27 ++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 jenkins-modules/jenkins-jobs/skip-stage-job/skip-function-script create mode 100644 jenkins-modules/jenkins-jobs/skip-stage-job/skip-input-script create mode 100644 jenkins-modules/jenkins-jobs/skip-stage-job/skip-when-script diff --git a/jenkins-modules/jenkins-jobs/skip-stage-job/skip-function-script b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-function-script new file mode 100644 index 0000000000..62163d6301 --- /dev/null +++ b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-function-script @@ -0,0 +1,32 @@ +pipeline { + agent any + parameters { + booleanParam(name: 'skip_test', defaultValue: false, description: 'Set to true to skip the test stage') + } + stages { + stage('Build') { + steps { + sh 'echo "Building the application"' + } + } + stage('Test') { + steps { + execute_stage('Test', params.skip_test) + } + } + stage('Deploy') { + steps { + sh 'echo "Deploying the application"' + } + } + } +} + +def execute_stage(stage_name, skip) { + stage(stage_name) { + if(skip) { + echo "Skipping ${stage_name} stage" + return + } + // Add steps to test the application + } diff --git a/jenkins-modules/jenkins-jobs/skip-stage-job/skip-input-script b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-input-script new file mode 100644 index 0000000000..ba5560578a --- /dev/null +++ b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-input-script @@ -0,0 +1,29 @@ +pipeline { + agent any + stages { + stage('Build') { + steps { + sh 'echo "Building the application"' + // Add steps to build the application + } + } + stage('Test') { + steps { + input message: 'Do you want to skip the test stage?', ok: 'Yes', parameters: [booleanParam(name: 'skip_test', defaultValue: false)], timeout: time(minutes: 5)) + script { + if(params.skip_test) { + sh 'echo "Testing the application"' + return + } + } + // Add steps to test the application + } + } + stage('Deploy') { + steps { + sh 'echo "Deploying the application"' + // Add steps to deploy the application + } + } + } +} diff --git a/jenkins-modules/jenkins-jobs/skip-stage-job/skip-when-script b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-when-script new file mode 100644 index 0000000000..0b62a819e1 --- /dev/null +++ b/jenkins-modules/jenkins-jobs/skip-stage-job/skip-when-script @@ -0,0 +1,27 @@ +pipeline { + agent any + parameters { + booleanParam(name: 'skip_test', defaultValue: false, description: 'Set to true to skip the test stage') + } + stages { + stage('Build') { + steps { + sh 'echo "Building application"' + // Add build steps here + } + } + stage('Test') { + when { expression { params.skip_test != true } } + steps { + sh 'echo "Testing application"' + // Add test steps here + } + } + stage('Deploy') { + steps { + sh 'echo "Deploying application"' + // Add deployment steps here + } + } + } +}