```
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
'''
}
}
}
}*/
}
}
}
'''