auto-semver/Jenkinsfile

96 lines
2.7 KiB
Plaintext
Raw Normal View History

2019-07-16 14:38:46 -04:00
library('pipeline-library')
2019-04-11 13:42:18 -04:00
pipeline {
options { timestamps() }
agent any
environment {
SERVICE = 'auto-semver'
GITHUB_KEY = 'autosemverDeployKey'
GITHUB_URL = 'git@github.com:RightBrain-Networks/auto-semver.git'
2019-04-11 13:42:18 -04:00
DOCKER_REGISTRY = '356438515751.dkr.ecr.us-east-1.amazonaws.com'
2019-04-11 14:59:37 -04:00
//Image tag to use for self-versioning
2019-11-25 11:59:01 -05:00
SELF_SEMVER_TAG = "develop"
2019-04-11 14:59:37 -04:00
2019-04-11 13:42:18 -04:00
}
stages {
2019-04-11 14:59:37 -04:00
//Runs versioning in docker container
2019-11-22 15:37:53 -05:00
stage('Self Version') {
2019-04-11 13:42:18 -04:00
steps {
2019-11-22 16:58:18 -05:00
runAutoSemver("${DOCKER_REGISTRY}/auto-semver:${SELF_SEMVER_TAG}")
2019-04-11 13:42:18 -04:00
}
2019-04-11 14:59:37 -04:00
post{
// Update Git with status of version stage.
success {
updateGithubCommitStatus(GITHUB_URL, 'Passed version stage', 'SUCCESS', 'Version')
}
failure {
updateGithubCommitStatus(GITHUB_URL, 'Failed version stage', 'FAILURE', 'Version')
}
}
2019-04-11 13:42:18 -04:00
}
stage('Build') {
steps {
echo "Building ${env.SERVICE} docker image"
// Docker build flags are set via the getDockerBuildFlags() shared library.
2019-04-11 14:44:16 -04:00
sh "docker build ${getDockerBuildFlags()} -t ${env.DOCKER_REGISTRY}/${env.SERVICE}:${env.VERSION} ."
2019-04-11 13:42:18 -04:00
2019-08-05 13:15:52 -04:00
sh "python setup.py sdist"
2019-04-11 13:42:18 -04:00
}
post{
// Update Git with status of build stage.
success {
updateGithubCommitStatus(GITHUB_URL, 'Passed build stage', 'SUCCESS', 'Build')
}
failure {
updateGithubCommitStatus(GITHUB_URL, 'Failed build stage', 'FAILURE', 'Build')
}
}
}
stage('Push')
{
steps {
withEcr {
2019-04-11 14:59:37 -04:00
sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${env.VERSION}"
2019-07-18 16:30:03 -04:00
script
{
if("${env.BRANCH_NAME}" == "develop")
2019-07-18 16:30:03 -04:00
{
2019-07-18 16:41:23 -04:00
sh "docker tag ${env.DOCKER_REGISTRY}/${env.SERVICE}:${env.VERSION} ${env.DOCKER_REGISTRY}/${env.SERVICE}:latest"
2019-07-18 16:30:03 -04:00
sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:latest"
}
}
2019-04-11 13:42:18 -04:00
}
2019-08-05 13:42:19 -04:00
sh "aws s3 cp `find ./dist/ -name semver-*` s3://rbn-ops-pkg-us-east-1/${env.SERVICE}/${env.SERVICE}-${env.VERSION}.tar.gz"
2019-04-11 13:42:18 -04:00
}
2019-04-11 13:45:34 -04:00
post
{
2019-04-11 13:42:18 -04:00
// Update Git with status of push stage.
success {
2019-04-11 13:45:34 -04:00
updateGithubCommitStatus(GITHUB_URL, 'Passed push stage', 'SUCCESS', 'Push')
2019-04-11 13:42:18 -04:00
}
failure {
2019-04-11 13:45:34 -04:00
updateGithubCommitStatus(GITHUB_URL, 'Failed push stage', 'FAILURE', 'Push')
2019-04-11 13:42:18 -04:00
}
}
}
2019-05-30 16:00:25 -04:00
stage('Push Version and Tag') {
steps {
echo "The current branch is ${env.BRANCH_NAME}."
gitPush(env.GITHUB_KEY, env.BRANCH_NAME, true)
}
}
2019-04-11 13:47:15 -04:00
}
2019-04-11 13:48:29 -04:00
post {
always {
removeDockerImages()
cleanWs()
}
}
2019-04-11 13:42:18 -04:00
}