diff --git a/Jenkinsfile b/Jenkinsfile index 44658c561..6d7028d61 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,46 +1,58 @@ -#!groovy - node('build-slave') { - - currentBuild.result = "SUCCESS" - cleanWs() - try { - - stage('Checkout') { - checkout scm - } - - stage('Build') { - - env.NODE_ENV = "build" - print "Environment will be : ${env.NODE_ENV}" - sh('git pull origin master') - sh('pwd') - sh ('sh configure-dependencies.sh') - sh('cd java && mvn clean install') - sh('pwd') - sh('cd java/registry && mvn clean install') - sh 'chmod 755 ./target/metadata.sh' - sh('./build.sh') - + 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') { + 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() + if (params.github_release_tag == "") { + checkout scm + 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() + build_tag = branch_name + "_" + commit_hash + println(ANSI_BOLD + ANSI_YELLOW + "github_release_tag not specified, using the latest commit hash: " + commit_hash + ANSI_NORMAL) + } + else { + def scmVars = checkout scm + checkout scm: [$class: 'GitSCM', branches: [[name: "refs/tags/$params.github_release_tag"]], userRemoteConfigs: [[url: scmVars.GIT_URL]]] + build_tag = params.github_release_tag + println(ANSI_BOLD + ANSI_YELLOW + "github_release_tag specified, building from github_release_tag: " + params.github_release_tag + ANSI_NORMAL) + } + echo "build_tag: " + build_tag + } + + stage('Build') { + env.NODE_ENV = "build" + print "Environment will be : ${env.NODE_ENV}" + sh("./configure-dependencies.sh") + sh('''git clone https://github.com/Sunbird-Ed/creation-portal.git -b creation_portal + rm -rf java/registry/src/main/resources/public/_schemas/* + cp -r creation-portal/opensaber_schemas/* java/registry/src/main/resources/public/_schemas/ + cd java && mvn clean install -DksipTests=true + ''') + sh('chmod 777 build.sh') + sh("./build.sh ${build_tag} ${env.NODE_NAME} ${hub_org}") + } + stage('ArchiveArtifacts') { + archiveArtifacts "metadata.json" + currentBuild.description = "${build_tag}" + } } - stage('Publish') { - - echo 'Push to Repo' - sh 'ls -al ~/' - sh 'ARTIFACT_LABEL=bronze ./dockerPushToRepo.sh' - sh './target/metadata.sh > metadata.json' - sh 'cat metadata.json' - archive includes: "metadata.json" - - } - } catch (err) { - + } + catch (err) { currentBuild.result = "FAILURE" throw err - } } diff --git a/build.sh b/build.sh index df427815c..607227f3f 100755 --- a/build.sh +++ b/build.sh @@ -1,11 +1,10 @@ -#!/bin/sh -e () { - echo $( echo ${1} | jq ".${2}" | sed 's/\"//g') -} -m=$(./target/metadata.sh) +#!/bin/bash +# Build script +set -eo pipefail +build_tag=$1 +name=opensaber +node=$2 +org=$3 -org=$(e "${m}" "org") -name=$(e "${m}" "name") -version=$(e "${m}" "version") - -docker build -f ./Dockerfile -t ${org}/${name}:${version}-bronze . +docker build -f ./Dockerfile --label commitHash=$(git rev-parse --short HEAD) -t ${org}/${name}:${build_tag} . +echo {\"image_name\" : \"${name}\", \"image_tag\" : \"${build_tag}\", \"node_name\" : \"$node\"} > metadata.json diff --git a/configure-dependencies.sh b/configure-dependencies.sh index c4c5d7a43..bff180ce4 100755 --- a/configure-dependencies.sh +++ b/configure-dependencies.sh @@ -2,5 +2,5 @@ echo "Configuring dependencies before build" cp java/registry/src/main/resources/application.yml.sample java/registry/src/main/resources/application.yml cp java/registry/src/main/resources/frame.json.sample java/registry/src/main/resources/frame.json -cp java/registry/src/main/resources/audit_frame.json.sample java/registry/src/main/resources/audit_frame.json +#cp java/registry/src/main/resources/audit_frame.json.sample java/registry/src/main/resources/audit_frame.json echo "Configuration of dependencies completed"