auto_build_deploy 2.69 KiB
@Library('deploy-conf') _ 
node('build-slave') {
    try {
        String ANSI_GREEN = "\u001B[32m"
        String ANSI_NORMAL = "\u001B[0m"
        String ANSI_BOLD = "\u001B[1m"
        String ANSI_RED = "\u001B[31m"
        String ANSI_YELLOW = "\u001B[33m"
        ansiColor('xterm') {
            timestamps {
                tag_name = env.JOB_NAME.split("/")[-1]
                pre_checks()
                stage('Checkout') {
                    if (!env.hub_org) {
                        println(ANSI_BOLD + ANSI_RED + "Uh Oh! Please set a Jenkins environment variable named hub_org with value as registery/sunbidrded" + ANSI_NORMAL)
                        error 'Please resolve the errors and rerun..'
                    } else
                        println(ANSI_BOLD + ANSI_GREEN + "Found environment variable named hub_org with value as: " + hub_org + ANSI_NORMAL)
//                cleanWs()
                  def scmVars = checkout scm
                  checkout scm: [$class: 'GitSCM', branches: [[name: "refs/tags/$tag_name"]], userRemoteConfigs: [[url: scmVars.GIT_URL]]]
                  build_tag = tag_name + "_" + env.BUILD_NUMBER
                  commit_hash = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
                  branch_name = sh(script: 'git name-rev --name-only HEAD | rev | cut -d "/" -f1| rev', returnStdout: true).trim()
                  artifact_version = branch_name + "_" + commit_hash
                echo "build_tag: " + build_tag
         //       stage Build
                    buildDockerImage = "true"
                    buildCdnAssests = "true"
                    sh """chmod +x build.sh"""
                    sh("./build.sh ${build_tag} ${env.NODE_NAME} ${hub_org} true true ${env.staging_cdnUrl}")
          //      stage ArchiveArtifacts
                    archiveArtifacts "metadata.json"
                    if (buildCdnAssests == "true") {
                        sh """
                        rm -rf cdn_assets
                        mkdir cdn_assets
                        cp -r src/app/dist-cdn/* cdn_assets/
                        zip -Jr cdn_assets.zip cdn_assets
                        """
                        archiveArtifacts "src/app/dist-cdn/index_cdn.ejs, cdn_assets.zip"
                    currentBuild.description = "${build_tag}"
        currentBuild.result = "SUCCESS"    
        slack_notify(currentBuild.result, tag_name)
        email_notify()  
        auto_build_deploy_player()   
    catch (err) {
        currentBuild.result = "FAILURE"
        slack_notify(currentBuild.result, tag_name)
        email_notify()
        throw err