``` pipeline { agent { label 'jenkins-hi-spec-1804-agent' } environment { DIR = "${WORKSPACE}/SVN_ROOT/pcn_core_packer" PCN5G_DIR = "${WORKSPACE}/SVN_ROOT/${PCN5G_RELEASE_BUILDNAME}" WORK_DIR = "${WORKSPACE}" } stages { stage('Setup parameters'){ steps { script { properties([ parameters([ string(description: 'Please Specify PCN_4G_IMG_TAG', name: 'PCN_4G_REL_TAG', trim: true), choice(choices: ['yes', 'no'], description: 'Build Required For pcn5g (yes/no)', name: 'BUILD_REQUIRED'), string(description: 'Please Specify pcn5g Release build name', name: 'PCN5G_RELEASE_BUILDNAME', trim: true), string(description: 'Please Specify PCN_5G_IMG_TAG', name: 'PCN_5G_REL_TAG', trim: true), string(description: 'Please Specify PCN_CONTAINER_VERSION', name: 'PCN_CONTAINER_VERSION', trim: true), string(description: 'Please Specify PCN_CONTAINER_REL_TAG specifying the TAG you are running this job', name: 'PCN_CONTAINER_REL_TAG', trim: true), choice(choices: ['yes', 'no'], description: 'Upload the built container to jFrog Artifactory (yes/no)', name: 'ARTIFACTORY_UPLOAD'), ])]) } } stage('Cleanup') { steps { dir("${WORK_DIR}"){ sh """ rm -rf ${DIR} mkdir -p ${DIR} rm -rf ${PCN5G_DIR} mkdir -p ${PCN5G_DIR} sudo apt install -y git make jq """ } } } stage('setting env for pcn5g') { when { expression { env.BUILD_REQUIRED =="yes" } } steps { dir("${PCN5G_DIR}"){ checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: 'refs/tags/${PCN_5G_REL_TAG}']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-user-engops-prod-jenkins-v1', url: 'https://gitlab.private.aws.cradlepointecm.com/pcn/pcn_5g.git']]] } } } stage('pcn5g-Build'){ steps{ dir("${PCN5G_DIR}/src"){ sh 'make clean' withCredentials([usernamePassword(credentialsId: 'gitlab-user-engops-prod-jenkins-v1', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) { sh 'git config --global url."https://${GIT_USER}:${GIT_PASS}@gitlab.private.aws.cradlepointecm.com/".insteadOf "https://gitlab.private.aws.cradlepointecm.com/"' } withCredentials([string(credentialsId: 'ARTIFACTORY_API_KEY', variable: 'JFROG_KEY')]) { sh "make RELEASE-gcc840_ub PROMPT=off GIT_CLONE_PROTO=https RELEASE_REPO=PCN5G_Release BUILD_ID=${PCN5G_RELEASE_BUILDNAME} ARTIFACTORY_KEY=${JFROG_KEY}" } } } } // stage('prepare pcn-core-packer env') { // steps { // dir("${DIR}"){ // checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-user-engops-prod-jenkins-v1', url: 'https://gitlab.private.aws.cradlepointecm.com/pcn/pcn-core-packer.git']]]) // } // } }/* stage('build container') { steps { dir("${DIR}"){ withCredentials([usernamePassword(credentialsId: 'gitlab-user-engops-prod-jenkins-v1', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) { sh 'git config --global url."https://${GIT_USER}:${GIT_PASS}@gitlab.private.aws.cradlepointecm.com/".insteadOf "https://gitlab.private.aws.cradlepointecm.com/"' } withCredentials([string(credentialsId: 'ARTIFACTORY_API_KEY', variable: 'JFROG_KEY')]) { sh '''#!/bin/bash -xe if [[ "${PCN_4G_REL_TAG}" != "" && "${PCN_5G_REL_TAG}" != "" ]] ; then FETCH_CMD_FLAGS="PCN_4G_IMG_TAG=${PCN_4G_REL_TAG} PCN_5G_IMG_TAG=${PCN_5G_REL_TAG}" else FETCH_CMD_FLAGS="" fi if [[ "${PCN_CONTAINER_VERSION}" != "" && "${PCN_CONTAINER_REL_TAG}" != "" ]] ; then BUILD_IMAGE_CMD_FLAGS="APP_VERSION=${PCN_CONTAINER_VERSION} APP_RELEASE=${PCN_CONTAINER_REL_TAG}" else BUILD_IMAGE_CMD_FLAGS="" fi echo "FETCH_CMD_FLAGS : ${FETCH_CMD_FLAGS}" echo "BUILD_IMAGE_CMD_FLAGS : ${BUILD_IMAGE_CMD_FLAGS}" echo "make fetch ${FETCH_CMD_FLAGS}" make fetch ARTIFACTORY_API_KEY=${JFROG_KEY} echo "make build-image ${BUILD_IMAGE_CMD_FLAGS} ${FETCH_CMD_FLAGS}" make build-image ${BUILD_IMAGE_CMD_FLAGS} ${FETCH_CMD_FLAGS} if [ "${ARTIFACTORY_UPLOAD}" == "yes" ] ; then make publish ${BUILD_IMAGE_CMD_FLAGS} ARTIFACTORY_API_KEY=${JFROG_KEY} fi ''' } } } }*/ } } } ''' pipeline { agent { label 'jenkins-hi-spec-1804-agent' } environment { DIR = "${WORKSPACE}/SVN_ROOT/pcn_core_packer" PCN5G_DIR = "${WORKSPACE}/SVN_ROOT/${PCN5G_RELEASE_BUILDNAME}" WORK_DIR = "${WORKSPACE}" } stages { stage('Setup parameters'){ steps { script { properties([ parameters([ string(description: 'Please Specify PCN_4G_IMG_TAG', name: 'PCN_4G_REL_TAG', trim: true), choice(choices: ['yes', 'no'], description: 'Build Required For pcn5g (yes/no)', name: 'BUILD_REQUIRED'), string(description: 'Please Specify pcn5g Release build name', name: 'PCN5G_RELEASE_BUILDNAME', trim: true), string(description: 'Please Specify PCN_5G_IMG_TAG', name: 'PCN_5G_REL_TAG', trim: true), string(description: 'Please Specify PCN_CONTAINER_VERSION', name: 'PCN_CONTAINER_VERSION', trim: true), string(description: 'Please Specify PCN_CONTAINER_REL_TAG specifying the TAG you are running this job', name: 'PCN_CONTAINER_REL_TAG', trim: true), choice(choices: ['yes', 'no'], description: 'Upload the built container to jFrog Artifactory (yes/no)', name: 'ARTIFACTORY_UPLOAD'), ])]) } } stage('Cleanup') { steps { dir("${WORK_DIR}"){ sh """ rm -rf ${DIR} mkdir -p ${DIR} rm -rf ${PCN5G_DIR} mkdir -p ${PCN5G_DIR} sudo apt install -y git make jq """ } } } stage('setting env for pcn5g') { when { expression { env.BUILD_REQUIRED =="yes" } } steps { dir("${PCN5G_DIR}"){ checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: 'refs/tags/${PCN_5G_REL_TAG}']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-user-engops-prod-jenkins-v1', url: 'https://gitlab.private.aws.cradlepointecm.com/pcn/pcn_5g.git']]] } } } stage('pcn5g-Build'){ steps{ dir("${PCN5G_DIR}/src"){ sh 'make clean' withCredentials([usernamePassword(credentialsId: 'gitlab-user-engops-prod-jenkins-v1', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) { sh 'git config --global url."https://${GIT_USER}:${GIT_PASS}@gitlab.private.aws.cradlepointecm.com/".insteadOf "https://gitlab.private.aws.cradlepointecm.com/"' } withCredentials([string(credentialsId: 'ARTIFACTORY_API_KEY', variable: 'JFROG_KEY')]) { sh "make RELEASE-gcc840_ub PROMPT=off GIT_CLONE_PROTO=https RELEASE_REPO=PCN5G_Release BUILD_ID=${PCN5G_RELEASE_BUILDNAME} ARTIFACTORY_KEY=${JFROG_KEY}" } } } } // stage('prepare pcn-core-packer env') { // steps { // dir("${DIR}"){ // checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-user-engops-prod-jenkins-v1', url: 'https://gitlab.private.aws.cradlepointecm.com/pcn/pcn-core-packer.git']]]) // } // } }/* stage('build container') { steps { dir("${DIR}"){ withCredentials([usernamePassword(credentialsId: 'gitlab-user-engops-prod-jenkins-v1', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) { sh 'git config --global url."https://${GIT_USER}:${GIT_PASS}@gitlab.private.aws.cradlepointecm.com/".insteadOf "https://gitlab.private.aws.cradlepointecm.com/"' } withCredentials([string(credentialsId: 'ARTIFACTORY_API_KEY', variable: 'JFROG_KEY')]) { sh '''#!/bin/bash -xe if [[ "${PCN_4G_REL_TAG}" != "" && "${PCN_5G_REL_TAG}" != "" ]] ; then FETCH_CMD_FLAGS="PCN_4G_IMG_TAG=${PCN_4G_REL_TAG} PCN_5G_IMG_TAG=${PCN_5G_REL_TAG}" else FETCH_CMD_FLAGS="" fi if [[ "${PCN_CONTAINER_VERSION}" != "" && "${PCN_CONTAINER_REL_TAG}" != "" ]] ; then BUILD_IMAGE_CMD_FLAGS="APP_VERSION=${PCN_CONTAINER_VERSION} APP_RELEASE=${PCN_CONTAINER_REL_TAG}" else BUILD_IMAGE_CMD_FLAGS="" fi echo "FETCH_CMD_FLAGS : ${FETCH_CMD_FLAGS}" echo "BUILD_IMAGE_CMD_FLAGS : ${BUILD_IMAGE_CMD_FLAGS}" echo "make fetch ${FETCH_CMD_FLAGS}" make fetch ARTIFACTORY_API_KEY=${JFROG_KEY} echo "make build-image ${BUILD_IMAGE_CMD_FLAGS} ${FETCH_CMD_FLAGS}" make build-image ${BUILD_IMAGE_CMD_FLAGS} ${FETCH_CMD_FLAGS} if [ "${ARTIFACTORY_UPLOAD}" == "yes" ] ; then make publish ${BUILD_IMAGE_CMD_FLAGS} ARTIFACTORY_API_KEY=${JFROG_KEY} fi ''' } } } }*/ } } } '''