diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..276f2938 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,47 @@ +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') { + 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() + checkout scm + commit_hash = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + build_tag = sh(script: "echo " + params.github_release_tag.split('/')[-1] + "_" + commit_hash + "_" + env.BUILD_NUMBER, returnStdout: true).trim() + echo "build_tag: " + build_tag + + + stage('Build') { + env.NODE_ENV = "build" + print "Environment will be : ${env.NODE_ENV}" + sh('chmod 777 build.sh') + sh("bash -x build.sh ${build_tag} ${env.NODE_NAME} ${docker_server}") + } + + + stage('ArchiveArtifacts') { + sh ("echo ${build_tag} > build_tag.txt") + archiveArtifacts "metadata.json" + archiveArtifacts "build_tag.txt" + currentBuild.description = "${build_tag}" + } + + } + } + catch (err) { + currentBuild.result = "FAILURE" + throw err + } + +} \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..25b52e1a --- /dev/null +++ b/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo "Docker build script" + +# Build script +set -eo pipefail + +build_tag=$1 +name=mentoring-user-service +node=$2 +org=$3 + +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 \ No newline at end of file