Jenkinsfile
This commit is contained in:
parent
bbdec3388d
commit
38a1ca1c80
5
.dockerignore
Normal file
5
.dockerignore
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
.idea/
|
||||||
|
e2e/
|
||||||
|
jenkins/
|
||||||
|
node_modules/
|
||||||
|
src/
|
|
@ -1,11 +1,13 @@
|
||||||
FROM docker.valuya.be/apache2:28
|
FROM docker.valuya.be/apache2:28
|
||||||
|
ARG CLANG=en
|
||||||
|
|
||||||
RUN a2ensite default \
|
RUN a2ensite default \
|
||||||
&& a2enmod rewrite
|
&& a2enmod rewrite
|
||||||
|
|
||||||
ADD docker/app-content.conf /etc/apache2/
|
ADD docker/app-content.conf /etc/apache2/
|
||||||
|
ADD dist/${CLANG}/ /var/www/html/
|
||||||
|
|
||||||
|
ENV LANG=$CLANG
|
||||||
HEALTHCHECK --interval=10s --timeout=3s \
|
HEALTHCHECK --interval=10s --timeout=3s \
|
||||||
CMD /check-http-status.sh localhost
|
CMD /check-http-status.sh localhost
|
||||||
|
|
||||||
|
|
94
Jenkinsfile
vendored
94
Jenkinsfile
vendored
|
@ -5,108 +5,56 @@ pipeline {
|
||||||
buildDiscarder(logRotator(numToKeepStr: '10'))
|
buildDiscarder(logRotator(numToKeepStr: '10'))
|
||||||
}
|
}
|
||||||
parameters {
|
parameters {
|
||||||
string(
|
|
||||||
name: 'CONF_PREFIX', defaultValue: 'production-',
|
|
||||||
description: 'Will be appended with the language'
|
|
||||||
)
|
|
||||||
string(
|
|
||||||
name: 'LANGUAGES', defaultValue: 'en fr',
|
|
||||||
description: 'Space-separated list of locales to build'
|
|
||||||
)
|
|
||||||
booleanParam(name: 'SKIP_TESTS', defaultValue: true, description: 'Skip tests')
|
booleanParam(name: 'SKIP_TESTS', defaultValue: true, description: 'Skip tests')
|
||||||
string(
|
string(
|
||||||
name: 'PUBLISH_URL', defaultValue: 'https://nexus.valuya.be/nexus/repository',
|
name: 'IMAGE_TAG', defaultValue: 'docker.charlyghislain.com/charlyghislaindotcom',
|
||||||
description: 'Deployment repository url'
|
description: 'Image tag to push'
|
||||||
)
|
|
||||||
string(
|
|
||||||
name: 'PUBLISH_REPO', defaultValue: 'web-snapshots',
|
|
||||||
description: 'Deployment repository'
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage ('Install') {
|
stage ('Build') {
|
||||||
steps {
|
steps {
|
||||||
nodejs(nodeJSInstallationName: 'node 10', configId: 'npm-global-config') {
|
nodejs(nodeJSInstallationName: 'node 10', configId: 'npm-global-config') { catchError {
|
||||||
ansiColor('xterm') {
|
ansiColor('xterm') {
|
||||||
sh '''
|
sh '''
|
||||||
rm -rfv dist*
|
rm -rfv dist*
|
||||||
npm install
|
npm install
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage ('Build') {
|
|
||||||
steps {
|
|
||||||
withCredentials([usernameColonPassword(credentialsId: 'nexus-basic-auth', variable: 'NEXUS_BASIC_AUTH')]) {
|
|
||||||
nodejs(nodeJSInstallationName: 'node 10', configId: 'npm-global-config') { catchError {
|
|
||||||
ansiColor('xterm') {
|
|
||||||
sh '''
|
|
||||||
export DATE="$(date -Iseconds)"
|
export DATE="$(date -Iseconds)"
|
||||||
export COMMIT="$(git rev-parse --short HEAD)"
|
export COMMIT="$(git rev-parse --short HEAD)"
|
||||||
echo '{"date":"'$DATE'","commit": "'$COMMIT'"}' > src/assets/buildinfo.json
|
echo '{"date":"'$DATE'","commit": "'$COMMIT'"}' > src/assets/buildinfo.json
|
||||||
|
|
||||||
for LANG in $LANGUAGES ; do
|
./node_modules/.bin/ng build -c "production-fr"
|
||||||
CONF_NAME="${CONF_PREFIX}${LANG}"
|
./node_modules/.bin/ng build -c "production-en"
|
||||||
|
echo "$COMMIT" > dist/.version
|
||||||
./node_modules/.bin/ng build \
|
|
||||||
-c "$CONF_NAME"
|
|
||||||
done
|
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
}}}
|
}}
|
||||||
|
stash(name: 'dist', includes: 'dist/**')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ('Publish') {
|
stage ('Publish') {
|
||||||
|
agent {
|
||||||
|
label 'docker'
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
withCredentials([usernameColonPassword(credentialsId: 'nexus-basic-auth', variable: 'NEXUS_BASIC_AUTH')]) {
|
container('docker') {
|
||||||
ansiColor('xterm') {
|
unstash(name: 'dist')
|
||||||
nodejs(nodeJSInstallationName: 'node 10', configId: 'npm-global-config') {
|
|
||||||
sh '''
|
sh '''
|
||||||
export DATE="$(date -Iseconds)"
|
|
||||||
export COMMIT="$(git rev-parse --short HEAD)"
|
export COMMIT="$(git rev-parse --short HEAD)"
|
||||||
|
docker build --build-arg CLANG=fr -t "${IMAGE_TAG}-fr:${COMMIT}" .
|
||||||
for LANG in $LANGUAGES ; do
|
docker push "${IMAGE_TAG}-fr:${COMMIT}" .
|
||||||
export ARCHIVE="charlyghislaindotcom-${COMMIT}-$LANG.tgz"
|
docker build --build-arg CLANG=en -t "${IMAGE_TAG}-en:${COMMIT}" .
|
||||||
|
docker push "${IMAGE_TAG}-en:${COMMIT}" .
|
||||||
# Compress
|
|
||||||
cd dist/${LANG}/
|
|
||||||
tar -cvzf ../${ARCHIVE} ./
|
|
||||||
cd ../..
|
|
||||||
|
|
||||||
# Upload archives
|
|
||||||
curl -v --user $NEXUS_BASIC_AUTH --upload-file dist/${ARCHIVE} \
|
|
||||||
${PUBLISH_URL}/${PUBLISH_REPO}/com/charlyghislain/charlyghislaindotcom/${ARCHIVE}
|
|
||||||
|
|
||||||
# Create .latest 'links' (branch heads) if required
|
|
||||||
if [ "${BRANCH_NAME}" = "master" ] ; then
|
|
||||||
export ARCHIVE_LINK="master.${LANG}.latest"
|
|
||||||
echo "$ARCHIVE" > ./${ARCHIVE_LINK}
|
|
||||||
curl -v --user $NEXUS_BASIC_AUTH --upload-file ./${ARCHIVE_LINK} \
|
|
||||||
${PUBLISH_URL}/${PUBLISH_REPO}/com/charlyghislain/charlyghislaindotcom/${ARCHIVE_LINK}
|
|
||||||
|
|
||||||
elif [ "${BRANCH_NAME}" = "dev" ] ; then
|
|
||||||
export ARCHIVE_LINK="dev.${LANG}.latest"
|
|
||||||
echo "$ARCHIVE" > ./${ARCHIVE_LINK}
|
|
||||||
curl -v --user $NEXUS_BASIC_AUTH --upload-file ./${ARCHIVE_LINK} \
|
|
||||||
${PUBLISH_URL}/${PUBLISH_REPO}/com/charlyghislain/charlyghislaindotcom/${ARCHIVE_LINK}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'''
|
'''
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage ("Update cluster state") {
|
|
||||||
steps {
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
build job: 'infra/cluster-conf-update', parameters: [
|
||||||
string(name:"STACK", value:"charlyghislaindotcom"),
|
string(name:"STACK", value:"charlyghislaindotcom"),
|
||||||
string(name:"VALUES_FILE", value:"values.yaml"),
|
string(name:"VALUES_FILE", value:"values.yaml"),
|
||||||
string(name:"VALUES_KEY", value:".deployment.imageTag"),
|
string(name:"VALUES_KEY", value:".deployment.imageTag"),
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\""),
|
string(name:"VALUES_VALUE", value:"\"${env.COMMIT}\""),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
"outputPath": "dist/en/",
|
"outputPath": "dist/en/",
|
||||||
"baseHref": "/en/",
|
"baseHref": "/",
|
||||||
"budgets": [
|
"budgets": [
|
||||||
{
|
{
|
||||||
"type": "anyComponentStyle",
|
"type": "anyComponentStyle",
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
pipeline {
|
|
||||||
agent any
|
|
||||||
parameters {
|
|
||||||
string(name: 'NEW_PROVIDERS_VERSION', defaultValue: '', description: 'New version, eg: 2020.0.0')
|
|
||||||
string(name: 'NEXT_PROVIDERS_VERSION', defaultValue: '11.0.1', description: 'Next version')
|
|
||||||
string(name: 'NEW_KEYCLOAK_IMAGE_TAG', defaultValue: '2-11.0.0', description: 'New image tag')
|
|
||||||
string(name: 'IMPORTEXPORT_VERSION', defaultValue: '11.0.2', description: 'Import export rest provider version')
|
|
||||||
string(name: 'PROVIDERS_RELEASE_BRANCH', defaultValue: 'master', description: 'Release branch')
|
|
||||||
string(name: 'PROVIDERS_DEV_BRANCH', defaultValue: 'dev', description: 'Release branch')
|
|
||||||
string(name: 'IMAGE_BUILD_BRANCH', defaultValue: 'master', description: 'Image branch to use for build')
|
|
||||||
string(name: 'CLUSTER_STACK', defaultValue: 'lifeislifedev', description: 'Namespace to use for conf update')
|
|
||||||
}
|
|
||||||
options {
|
|
||||||
disableConcurrentBuilds()
|
|
||||||
buildDiscarder(logRotator(numToKeepStr: '10'))
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
stage('Release') {
|
|
||||||
steps {
|
|
||||||
buildName "#${BUILD_NUMBER} ${params.NEW_KEYCLOAK_IMAGE_TAG}"
|
|
||||||
|
|
||||||
build job: "lifeislife/release-keycloak-itsme-broker", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEW_PROVIDERS_VERSION}"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.PROVIDERS_RELEASE_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.PROVIDERS_DEV_BRANCH}"),
|
|
||||||
]
|
|
||||||
|
|
||||||
build job: "lifeislife/release-keycloak-lifeislife-userstorage", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEW_PROVIDERS_VERSION}"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.PROVIDERS_RELEASE_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.PROVIDERS_DEV_BRANCH}"),
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
build job: "lifeislife/keycloak-itsme-broker/${params.PROVIDERS_RELEASE_BRANCH}", parameters: [
|
|
||||||
booleanParam(name: 'FORCE_DEPLOY', value: true),
|
|
||||||
]
|
|
||||||
|
|
||||||
build job: "lifeislife/keycloak-lifeislife-userstorage/${params.PROVIDERS_RELEASE_BRANCH}", parameters: [
|
|
||||||
booleanParam(name: 'FORCE_DEPLOY', value: true),
|
|
||||||
]
|
|
||||||
|
|
||||||
sh 'sleep 20'
|
|
||||||
|
|
||||||
build job: "lifeislife/lifeislife-keycloak/${params.IMAGE_BUILD_BRANCH}", parameters: [
|
|
||||||
string(name: 'USERSTORAGE_VERSION', value: "${params.NEW_PROVIDERS_VERSION}"),
|
|
||||||
string(name: 'ITSME_BROKER_VERSION', value: "${params.NEW_PROVIDERS_VERSION}"),
|
|
||||||
string(name: 'IMPORTEXPORT_EAR_VERSION', value: "${params.IMPORTEXPORT_VERSION}"),
|
|
||||||
string(name: 'IMAGE_VERSION', value: "${params.NEW_KEYCLOAK_IMAGE_TAG}"),
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Post release') {
|
|
||||||
parallel {
|
|
||||||
stage('Release next version') {
|
|
||||||
steps {
|
|
||||||
build job: "lifeislife/release-keycloak-itsme-broker", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEXT_PROVIDERS_VERSION}-SNAPSHOT"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.PROVIDERS_DEV_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.PROVIDERS_RELEASE_BRANCH}"),
|
|
||||||
booleanParam(name: 'SKIP_PUSH_TAG', value: true),
|
|
||||||
]
|
|
||||||
|
|
||||||
build job: "lifeislife/release-keycloak-lifeislife-userstorage", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEXT_PROVIDERS_VERSION}-SNAPSHOT"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.PROVIDERS_DEV_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.PROVIDERS_RELEASE_BRANCH}"),
|
|
||||||
booleanParam(name: 'SKIP_PUSH_TAG', value: true),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Update cluster state') {
|
|
||||||
steps {
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${params.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.keycloak.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".keycloak.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_KEYCLOAK_IMAGE_TAG}\"")
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
failure {
|
|
||||||
mail(
|
|
||||||
to: 'charlyghislain@gmail.com', cc: 'yannick@valuya.be',
|
|
||||||
subject: "lifeislife REALEASE keycloak ${BUILD_NUMBER} failed",
|
|
||||||
body: "See job at ${BUILD_URL}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,197 +0,0 @@
|
||||||
pipeline {
|
|
||||||
agent any
|
|
||||||
parameters {
|
|
||||||
booleanParam(name: 'DRY_RUN', defaultValue: 'true', description: 'Stay on DEV branches')
|
|
||||||
booleanParam(name: 'SKIP_TESTS', defaultValue: 'false', description: 'Skip tests')
|
|
||||||
string(name: 'NEW_VERSION', defaultValue: '', description: 'New version, eg: 2020.0.0')
|
|
||||||
string(name: 'NEXT_VERSION', defaultValue: '2020.1.0', description: 'Next version')
|
|
||||||
string(name: 'NEW_VERSION_MESSAGE', defaultValue: 'Nouvelle version', description: 'New version message')
|
|
||||||
string(name: 'GIT_CREDENTIAL_ID', defaultValue: 'jenkins-jenkins-ssh-key', description: '')
|
|
||||||
}
|
|
||||||
options {
|
|
||||||
disableConcurrentBuilds()
|
|
||||||
buildDiscarder(logRotator(numToKeepStr: '10'))
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
stage('Prepare release') {
|
|
||||||
steps {
|
|
||||||
buildName "#${BUILD_NUMBER} ${params.NEW_VERSION}"
|
|
||||||
|
|
||||||
script {
|
|
||||||
env.LIFEISLIFE_RELEASE_BRANCH = (params.DRY_RUN ? 'dev' : 'master')
|
|
||||||
env.LIFEISLIFE_DEV_BRANCH = (params.DRY_RUN ? 'dev' : 'dev')
|
|
||||||
env.JOB_BUILD_WILDFLY = (params.DRY_RUN ? 'lifeislife/lifeislife-back/dev' : 'lifeislife/lifeislife-back/master')
|
|
||||||
env.JOB_TEST_WILDFLY = (params.DRY_RUN ? 'lifeislife/lifeislife-it/dev' : 'lifeislife/lifeislife-it/master')
|
|
||||||
env.CLUSTER_STACK = (params.DRY_RUN ? 'lifeislifedev' : 'lifeislifeprod')
|
|
||||||
|
|
||||||
env.JOB_BUILD_FRONTENDS = (params.DRY_RUN ? 'lifeislife/lifeislife-front/dev' : 'lifeislife/lifeislife-front/master')
|
|
||||||
env.SKIP_TESTS = params.SKIP_TEST
|
|
||||||
}
|
|
||||||
|
|
||||||
checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: "*/${LIFEISLIFE_DEV_BRANCH}"],[name: "*/${LIFEISLIFE_RELEASE_BRANCH}"]],
|
|
||||||
doGenerateSubmoduleConfigurations: false,
|
|
||||||
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'lifeislife-back']],
|
|
||||||
userRemoteConfigs: [[credentialsId: 'jenkins-jenkins-ssh-key', url: 'ssh://git@gitlab.valuya.be:1022/lifeislife/lifeislife-back.git']]]
|
|
||||||
|
|
||||||
dir ('lifeislife-back') {
|
|
||||||
sh "echo 'back: merges: ' >>../release.log"
|
|
||||||
sh "git log origin/${LIFEISLIFE_RELEASE_BRANCH}..origin/${LIFEISLIFE_DEV_BRANCH} --pretty=format:'[%cd %ce %h] %s' --min-parents=2 --date=short >>../release.log"
|
|
||||||
sh "echo 'back: commits: ' >>../release.log"
|
|
||||||
sh "git log origin/${LIFEISLIFE_RELEASE_BRANCH}..origin/${LIFEISLIFE_DEV_BRANCH} --pretty=format:'[%cd %ce %h] %s' --max-parents=1 --date=short >>../release.log"
|
|
||||||
sh "echo '' >> ./release.log"
|
|
||||||
}
|
|
||||||
|
|
||||||
checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: "*/${LIFEISLIFE_DEV_BRANCH}"],[name: "*/${LIFEISLIFE_RELEASE_BRANCH}"]],
|
|
||||||
doGenerateSubmoduleConfigurations: false,
|
|
||||||
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'lifeislife-front']],
|
|
||||||
userRemoteConfigs: [[credentialsId: 'jenkins-jenkins-ssh-key', url: 'ssh://git@gitlab.valuya.be:1022/lifeislife/lifeislife-front.git']]]
|
|
||||||
dir ('lifeislife-front') {
|
|
||||||
sh "echo 'Front: merges: ' >>../release.log"
|
|
||||||
sh "git log origin/${LIFEISLIFE_RELEASE_BRANCH}..origin/${LIFEISLIFE_DEV_BRANCH} --pretty=format:'[%cd %ce %h] %s' --min-parents=2 --date=short >>../release.log"
|
|
||||||
sh "echo 'Front: commits: ' >>../release.log"
|
|
||||||
sh "git log origin/${LIFEISLIFE_RELEASE_BRANCH}..origin/${LIFEISLIFE_DEV_BRANCH} --pretty=format:'[%cd %ce %h] %s' --max-parents=1 --date=short >>../release.log"
|
|
||||||
sh "echo '' >> ./release.log"
|
|
||||||
}
|
|
||||||
|
|
||||||
stash includes: 'release.log', name: 'release-log'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Release Lifeislife') {
|
|
||||||
steps {
|
|
||||||
build job: "lifeislife/release-lifeislife-back", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEW_VERSION}"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.LIFEISLIFE_RELEASE_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.LIFEISLIFE_DEV_BRANCH}"),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Test Lifeislife') {
|
|
||||||
when {
|
|
||||||
expression { return params.SKIP_TESTS != true }
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
build job: "${env.JOB_TEST_WILDFLY}", parameters: [
|
|
||||||
booleanParam(name: 'SKIP_TESTS', value: false),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Build Lifeislife') {
|
|
||||||
steps {
|
|
||||||
build job: "${env.JOB_BUILD_WILDFLY}", parameters: [
|
|
||||||
booleanParam(name: 'SKIP_TESTS', value: true),
|
|
||||||
booleanParam(name: 'FORCE_DEPLOY', value: true),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
stage('Update front api') {
|
|
||||||
steps {
|
|
||||||
build job: "lifeislife/update-api-lifeislife-front/${env.LIFEISLIFE_DEV_BRANCH}", parameters: [
|
|
||||||
string(name: 'API_VERSION', value: "${params.NEW_VERSION}"),
|
|
||||||
booleanParam(name: 'SKIP_BUILD_LIBS', value: true),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Release lifeislife front') {
|
|
||||||
steps {
|
|
||||||
build job: "lifeislife/release-lifeislife-front/${env.LIFEISLIFE_DEV_BRANCH}", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEW_VERSION}"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.LIFEISLIFE_RELEASE_BRANCH}"),
|
|
||||||
string(name: 'DEV_BRANCH', value: "${env.LIFEISLIFE_DEV_BRANCH}"),
|
|
||||||
booleanParam(name: 'SKIP_BUILD', value: true),
|
|
||||||
booleanParam(name: 'SKIP_NEXT_VERSION', value: true),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Build lifeislife-front') {
|
|
||||||
steps {
|
|
||||||
build job: "${env.JOB_BUILD_FRONTENDS}", parameters: [
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Update cluster state') {
|
|
||||||
steps {
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${env.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.wildfly.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".wildfly.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\"")
|
|
||||||
]
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${env.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.front-admin.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".adminFront.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\"")
|
|
||||||
]
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${env.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.front-customer.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".customerFront.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\"")
|
|
||||||
]
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${env.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.front-mypension.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".mypensionFront.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\""),
|
|
||||||
]
|
|
||||||
build job: 'infra/cluster-conf-update', parameters: [
|
|
||||||
string(name:"STACK", value:"${env.CLUSTER_STACK}"),
|
|
||||||
string(name:"VALUES_FILE", value:"values.front-simu.yaml"),
|
|
||||||
string(name:"VALUES_KEY", value:".simuFront.deployment.imageTag"),
|
|
||||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\""),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
stage('Release next version') {
|
|
||||||
steps {
|
|
||||||
build job: "lifeislife/release-lifeislife-back", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEXT_VERSION}-SNAPSHOT"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.LIFEISLIFE_DEV_BRANCH}"),
|
|
||||||
string(name: 'GIT_REPO_BRANCH', value: "${env.LIFEISLIFE_RELEASE_BRANCH}"),
|
|
||||||
booleanParam(name: 'SKIP_PUSH_TAG', value: true),
|
|
||||||
]
|
|
||||||
|
|
||||||
build job: "lifeislife/release-lifeislife-front/${env.LIFEISLIFE_RELEASE_BRANCH}", parameters: [
|
|
||||||
string(name: 'NEW_VERSION', value: "${params.NEXT_VERSION}-rc.0"),
|
|
||||||
string(name: 'RELEASE_BRANCH', value: "${env.LIFEISLIFE_DEV_BRANCH}"),
|
|
||||||
string(name: 'DEV_BRANCH', value: "${env.LIFEISLIFE_RELEASE_BRANCH}"),
|
|
||||||
booleanParam(name: 'SKIP_BUILD', value: true),
|
|
||||||
booleanParam(name: 'SKIP_NEXT_VERSION', value: true),
|
|
||||||
booleanParam(name: 'SKIP_PUSH_TAG', value: true),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
failure {
|
|
||||||
mail(
|
|
||||||
to: 'charlyghislain@gmail.com', cc: 'yannick@valuya.be',
|
|
||||||
subject: "lifeislife RELEASE ${BUILD_NUMBER} failed",
|
|
||||||
body: "See job at ${BUILD_URL}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
success {
|
|
||||||
unstash 'release-log'
|
|
||||||
script {
|
|
||||||
env.RELEASE_LOG = readFile(file: './release.log')
|
|
||||||
env.MAIL_BODY = "Changes: \n" + "${RELEASE_LOG}"
|
|
||||||
}
|
|
||||||
|
|
||||||
mail(
|
|
||||||
to: 'charlyghislain@gmail.com', cc: 'yannick@valuya.be',
|
|
||||||
subject: "lifeislife ${params.NEW_VERSION} released",
|
|
||||||
body: "${env.MAIL_BODY}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user