added files
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
package com.meesho.stages
|
||||
|
||||
def run(Map config){
|
||||
stage('Build docker image'){
|
||||
container('dockerpush') {
|
||||
def env = "dev" //write if condition according to branch if branch is dev/staging or any other branch then master it will be dev if master prod
|
||||
def ecrImagePod = config.ecrImagePod
|
||||
def repo_name = config.repo_name
|
||||
def dockerBuildVersion = config.dockerBuildVersion ?: ""
|
||||
def version = getVersion()
|
||||
def artifactId = getArtifactId()
|
||||
def modules = getModules()
|
||||
def excludedModules = config.excludedModules ?: []
|
||||
j = 0
|
||||
for (module in modules){
|
||||
if (excludedModules.contains(module)){
|
||||
echo "===== NOT Building container for Module - ${module} ====="
|
||||
}else {
|
||||
def dockerfileRef = getDockerfile("${dockerBuildVersion}","${repo_name}","${version}","${module}","NO")
|
||||
j+=1
|
||||
sh """
|
||||
echo "===== ${j}. Creating Container for Module - ${module} ======"
|
||||
if [ -f ${module}/target/*.jar ]
|
||||
then
|
||||
echo "docker build -t ${ecrImagePod}/${repo_name}/${module} ${dockerfileRef}; rm -f Dockerfile-${module}"
|
||||
else
|
||||
echo "No jar file found."
|
||||
exit 1
|
||||
fi
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def getCommitid(){
|
||||
return sh(returnStdout: true, script: 'git log -1 --format=%h').trim()
|
||||
}
|
||||
|
||||
def registry(String buildenv){
|
||||
switch(env) {
|
||||
case "prod":
|
||||
return 'asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/prod/'
|
||||
break;
|
||||
case "dev":
|
||||
return 'asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/dev/'
|
||||
break;
|
||||
default:
|
||||
return 'asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622'
|
||||
}
|
||||
}
|
||||
|
||||
def getVersion(){
|
||||
// if (fileExists("pom.xml")) {
|
||||
// return sh(returnStdout: true, script: 'xq -r .project.version pom.xml').trim()
|
||||
// }else if (fileExists("package.json")) {
|
||||
// return sh(returnStdout: true, script: 'jq -r .version package.json').trim()
|
||||
// }
|
||||
return "2.0"
|
||||
}
|
||||
|
||||
def getModules(){
|
||||
// if (fileExists("pom.xml")) {
|
||||
// modules = sh(returnStdout: true, script: 'xq -r .project.modules.module[] pom.xml 2>/dev/null || xq -r .project.modules.module pom.xml 2>/dev/null || echo empty').trim()
|
||||
// if (modules == 'empty' || modules == 'null') {
|
||||
// return null
|
||||
// }
|
||||
// modules = modules.split("\n")
|
||||
// return modules
|
||||
// }
|
||||
// else {
|
||||
// return null
|
||||
// }
|
||||
return ["server"]
|
||||
}
|
||||
|
||||
|
||||
def getArtifactId(){
|
||||
// if (fileExists("pom.xml")) {
|
||||
// return sh(returnStdout: true, script: 'xq -r .project.artifactId pom.xml').trim()
|
||||
// } else if (fileExists("package.json")) {
|
||||
// return sh(returnStdout: true, script: 'jq -r .name package.json').trim()
|
||||
// }
|
||||
return "external-payment-gateway"
|
||||
}
|
||||
|
||||
def getTag(){
|
||||
def buildenv = "${env.BUILD_ENV}"
|
||||
echo "========get version========"
|
||||
def version = getVersion()
|
||||
echo "========commitID========"
|
||||
def commitID = getCommitid()
|
||||
echo "========tag========"
|
||||
def tag = "v${version}-${commitID}"
|
||||
return ${tag}
|
||||
}
|
||||
|
||||
|
||||
|
||||
def release(Map config){
|
||||
stage('Push docker image'){
|
||||
def repo_name = config.repo_name
|
||||
def branch_name = "${env.BRANCH_NAME}"
|
||||
def ecrImagePod = config.ecrImagePod
|
||||
def bu = config.BU
|
||||
def buildenv = "${env.BUILD_ENV}"
|
||||
echo "========registry========"
|
||||
def registry = registry("${buildenv}")
|
||||
echo "========get version========"
|
||||
def version = getVersion()
|
||||
echo "========commitID========"
|
||||
def commitID = getCommitid()
|
||||
echo "========tag========"
|
||||
echo "registry is ${registry}"
|
||||
def tag = "v${version}-${commitID}"
|
||||
echo "${registry}"
|
||||
echo "tag is ${tag}"
|
||||
def artifactId = getArtifactId()
|
||||
def modules = getModules()
|
||||
def excludedModules = config.excludedModules ?: []
|
||||
|
||||
log.info("########################### Pushing Docker Images ###########################")
|
||||
if (modules == null){
|
||||
echo "docker tag ${ecrImagePod}/${repo_name} ${registry}/${bu}/${ecrImagePod}/${repo_name}:${tag}"
|
||||
echo "gcloud auth configure-docker asia-southeast1-docker.pkg.dev --quiet"
|
||||
echo "docker push ${registry}/${bu}/${ecrImagePod}/${repo_name}:${tag}"
|
||||
}else {
|
||||
j = 0
|
||||
for (module in modules){
|
||||
if (excludedModules.contains(module)){
|
||||
echo "===== NOT Pushing container for Module - ${common} ====="
|
||||
}else {
|
||||
j+=1
|
||||
sh """
|
||||
echo "===== ${j}. Pushing Container for Module - ${module} ======"
|
||||
echo "docker tag ${ecrImagePod}/${repo_name}/${module} ${registry}/${bu}/${ecrImagePod}/${repo_name}/${module}:${tag}"
|
||||
echo "gcloud auth configure-docker asia-southeast1-docker.pkg.dev --quiet"
|
||||
echo "docker push ${registry}/${bu}/${ecrImagePod}/${repo_name}/${module}:${tag}"
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
def getDockerfile(String dockerBuildVersion, String repo_name, String version, String module, String doBuild) {
|
||||
if (dockerBuildVersion) {
|
||||
if(dockerBuildVersion == "maven-3.3-jdk-8"){
|
||||
def scriptcontents = libraryResource "org/meesho/templates/${dockerBuildVersion}.sh"
|
||||
writeFile file: "${dockerBuildVersion}.sh", text: scriptcontents
|
||||
sh "chmod a+x ./${dockerBuildVersion}.sh;./${dockerBuildVersion}.sh ${module} ${version} ${doBuild} ${repo_name}"
|
||||
return "-f Dockerfile-${module} ."
|
||||
}else if(dockerBuildVersion == "node-12.22"){
|
||||
def scriptcontents = libraryResource "org/meesho/templates/${dockerBuildVersion}.sh"
|
||||
writeFile file: "${dockerBuildVersion}.sh", text: scriptcontents
|
||||
sh "chmod a+x ./${dockerBuildVersion}.sh;./${dockerBuildVersion}.sh ${module}"
|
||||
return "-f Dockerfile-${module} ."
|
||||
}
|
||||
} else {
|
||||
return "-f Dockerfile ."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user