Migraiton: update angular cli & prepare jenkins jobs/docker image
This commit is contained in:
parent
90140f6d05
commit
90bf5cfdc5
11
Dockerfile
Normal file
11
Dockerfile
Normal file
|
@ -0,0 +1,11 @@
|
|||
FROM docker.valuya.be/apache2:28
|
||||
|
||||
RUN a2ensite default \
|
||||
&& a2enmod rewrite
|
||||
|
||||
ADD docker/app-content.conf /etc/apache2/
|
||||
|
||||
|
||||
HEALTHCHECK --interval=10s --timeout=3s \
|
||||
CMD /check-http-status.sh localhost
|
||||
|
16
Jenkinsfile
vendored
16
Jenkinsfile
vendored
|
@ -73,18 +73,18 @@ pipeline {
|
|||
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}
|
||||
|
@ -98,5 +98,15 @@ pipeline {
|
|||
}
|
||||
}
|
||||
}
|
||||
stage ("Update cluster state") {
|
||||
steps {
|
||||
build job: 'infra/cluster-conf-update', parameters: [
|
||||
string(name:"STACK", value:"charlyghislaindotcom"),
|
||||
string(name:"VALUES_FILE", value:"values.yaml"),
|
||||
string(name:"VALUES_KEY", value:".deployment.imageTag"),
|
||||
string(name:"VALUES_VALUE", value:"\"${params.NEW_VERSION}\""),
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
58
angular.json
58
angular.json
|
@ -18,7 +18,6 @@
|
|||
"main": "src/main.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "src/tsconfig.app.json",
|
||||
"i18nLocale": "en",
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
|
@ -27,14 +26,23 @@
|
|||
"styles": [
|
||||
"src/styles.scss"
|
||||
],
|
||||
"scripts": []
|
||||
"scripts": [],
|
||||
"localize": [
|
||||
"en"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
"fr": {
|
||||
"outputPath": "dist/fr/",
|
||||
"i18nFile": "src/locale/messages.fr.xlf",
|
||||
"i18nFormat": "xlf",
|
||||
"i18nLocale": "fr"
|
||||
"outputPath": "dist",
|
||||
"budgets": [
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "6kb"
|
||||
}
|
||||
],
|
||||
"localize": [
|
||||
"fr"
|
||||
]
|
||||
},
|
||||
"production-en": {
|
||||
"fileReplacements": [
|
||||
|
@ -46,15 +54,21 @@
|
|||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"extractCss": true,
|
||||
"namedChunks": false,
|
||||
"aot": true,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
"buildOptimizer": true,
|
||||
"outputPath": "dist/en/",
|
||||
"i18nLocale": "en",
|
||||
"baseHref": "/en/"
|
||||
"baseHref": "/en/",
|
||||
"budgets": [
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "6kb"
|
||||
}
|
||||
],
|
||||
"localize": [
|
||||
"en"
|
||||
]
|
||||
},
|
||||
"production-fr": {
|
||||
"fileReplacements": [
|
||||
|
@ -66,17 +80,20 @@
|
|||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"extractCss": true,
|
||||
"namedChunks": false,
|
||||
"aot": true,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
"buildOptimizer": true,
|
||||
"outputPath": "dist/fr/",
|
||||
"i18nFile": "src/locale/messages.fr.xlf",
|
||||
"i18nFormat": "xlf",
|
||||
"i18nLocale": "fr",
|
||||
"baseHref": "/fr/"
|
||||
"outputPath": "dist",
|
||||
"budgets": [
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "6kb"
|
||||
}
|
||||
],
|
||||
"localize": [
|
||||
"fr"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -132,6 +149,11 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"i18n": {
|
||||
"locales": {
|
||||
"fr": "src/locale/messages.fr.xlf"
|
||||
}
|
||||
}
|
||||
},
|
||||
"charlyghislaindotcom-e2e": {
|
||||
|
@ -165,7 +187,7 @@
|
|||
"defaultProject": "charlyghislaindotcom",
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"styleext": "scss"
|
||||
"style": "scss"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
9
docker/app-content.conf
Normal file
9
docker/app-content.conf
Normal file
|
@ -0,0 +1,9 @@
|
|||
Options -Indexes -Multiviews
|
||||
|
||||
RewriteEngine on
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
|
||||
RewriteRule ^ - [L]
|
||||
|
||||
RewriteRule ^(.*)$ /index.html [NC,L]
|
||||
|
1
jenkins/dsl/_charlyghislaindotcom.groovy
Normal file
1
jenkins/dsl/_charlyghislaindotcom.groovy
Normal file
|
@ -0,0 +1 @@
|
|||
folder('charlyghislaindotcom')
|
43
jenkins/dsl/charlyghislainfotcom.groovy
Normal file
43
jenkins/dsl/charlyghislainfotcom.groovy
Normal file
|
@ -0,0 +1,43 @@
|
|||
multibranchPipelineJob('charlyghislaindotcom/charlyghislaindotcom') {
|
||||
branchSources {
|
||||
branchSource {
|
||||
source {
|
||||
git {
|
||||
id('lifeislife_lifeislife-front_repo') // IMPORTANT: use a constant and unique identifier
|
||||
remote('ssh://git@gitea.charlyghislain.com:2022/cghislai/charlyghislaindotcom.git')
|
||||
credentialsId('jenkins-jenkins-ssh-key')
|
||||
traits {
|
||||
gitBranchDiscovery()
|
||||
wipeWorkspaceTrait()
|
||||
}
|
||||
}
|
||||
}
|
||||
strategy {
|
||||
namedBranchesDifferent {
|
||||
namedExceptions {
|
||||
named {
|
||||
name('master')
|
||||
props {
|
||||
suppressAutomaticTriggering()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
triggers {
|
||||
periodic(30)
|
||||
}
|
||||
orphanedItemStrategy {
|
||||
discardOldItems {
|
||||
daysToKeep(7)
|
||||
}
|
||||
}
|
||||
factory {
|
||||
workflowBranchProjectFactory {
|
||||
scriptPath('Jenkinsfile')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
96
jenkins/lifeislife_keycloak_release.jenkinsfile
Normal file
96
jenkins/lifeislife_keycloak_release.jenkinsfile
Normal file
|
@ -0,0 +1,96 @@
|
|||
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}"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
197
jenkins/lifeislife_release.jenkinsfile
Normal file
197
jenkins/lifeislife_release.jenkinsfile
Normal file
|
@ -0,0 +1,197 @@
|
|||
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}"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
17715
package-lock.json
generated
17715
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
54
package.json
54
package.json
|
@ -11,38 +11,40 @@
|
|||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^8.2.14",
|
||||
"@angular/common": "^8.2.14",
|
||||
"@angular/compiler": "^8.2.14",
|
||||
"@angular/core": "^8.2.14",
|
||||
"@angular/forms": "^8.2.14",
|
||||
"@angular/platform-browser": "^8.2.14",
|
||||
"@angular/platform-browser-dynamic": "^8.2.14",
|
||||
"@angular/router": "^8.2.14",
|
||||
"@angular/animations": "^11.2.0",
|
||||
"@angular/common": "^11.2.0",
|
||||
"@angular/compiler": "^11.2.0",
|
||||
"@angular/core": "^11.2.0",
|
||||
"@angular/forms": "^11.2.0",
|
||||
"@angular/localize": "~11.2.0",
|
||||
"@angular/platform-browser": "^11.2.0",
|
||||
"@angular/platform-browser-dynamic": "^11.2.0",
|
||||
"@angular/router": "^11.2.0",
|
||||
"core-js": "^2.5.4",
|
||||
"moment-es6": "^1.0.0",
|
||||
"rxjs": "^6.5.3",
|
||||
"zone.js": "^0.9.1"
|
||||
"tslib": "^2.0.0",
|
||||
"zone.js": "~0.11.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular/compiler-cli": "^8.2.14",
|
||||
"@angular-devkit/build-angular": "~0.803.21",
|
||||
"typescript": "~3.5.3",
|
||||
"@angular/cli": "~8.3.21",
|
||||
"@angular/language-service": "^8.2.14",
|
||||
"@types/jasmine": "~2.8.6",
|
||||
"@angular/compiler-cli": "^11.2.0",
|
||||
"@angular-devkit/build-angular": "~0.1102.0",
|
||||
"typescript": "~4.1.5",
|
||||
"@angular/cli": "~11.2.0",
|
||||
"@angular/language-service": "^11.2.0",
|
||||
"@types/jasmine": "~3.6.0",
|
||||
"@types/jasminewd2": "~2.0.3",
|
||||
"@types/node": "~8.9.4",
|
||||
"codelyzer": "~5.2.1",
|
||||
"jasmine-core": "~2.99.1",
|
||||
"jasmine-spec-reporter": "~4.2.1",
|
||||
"karma": "~1.7.1",
|
||||
"karma-chrome-launcher": "~2.2.0",
|
||||
"karma-coverage-istanbul-reporter": "~2.0.0",
|
||||
"karma-jasmine": "~1.1.1",
|
||||
"karma-jasmine-html-reporter": "^0.2.2",
|
||||
"protractor": "~5.3.0",
|
||||
"@types/node": "^12.11.1",
|
||||
"codelyzer": "^6.0.0",
|
||||
"jasmine-core": "~3.6.0",
|
||||
"jasmine-spec-reporter": "~5.0.0",
|
||||
"karma": "~5.0.0",
|
||||
"karma-chrome-launcher": "~3.1.0",
|
||||
"karma-coverage-istanbul-reporter": "~3.0.2",
|
||||
"karma-jasmine": "~4.0.0",
|
||||
"karma-jasmine-html-reporter": "^1.5.0",
|
||||
"protractor": "~7.0.0",
|
||||
"ts-node": "~5.0.1",
|
||||
"tslint": "~5.9.1"
|
||||
"tslint": "~6.1.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { AppComponent } from './app.component';
|
||||
describe('AppComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
}).compileComponents();
|
||||
}));
|
||||
it('should create the app', async(() => {
|
||||
it('should create the app', waitForAsync(() => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.debugElement.componentInstance;
|
||||
expect(app).toBeTruthy();
|
||||
}));
|
||||
it(`should have as title 'app'`, async(() => {
|
||||
it(`should have as title 'app'`, waitForAsync(() => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.debugElement.componentInstance;
|
||||
expect(app.title).toEqual('app');
|
||||
}));
|
||||
it('should render title in a h1 tag', async(() => {
|
||||
it('should render title in a h1 tag', waitForAsync(() => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
fixture.detectChanges();
|
||||
const compiled = fixture.debugElement.nativeElement;
|
||||
|
|
|
@ -30,7 +30,7 @@ export const ROUTES: Route[] = [
|
|||
|
||||
@NgModule({
|
||||
imports: [
|
||||
RouterModule.forRoot(ROUTES),
|
||||
RouterModule.forRoot(ROUTES, { relativeLinkResolution: 'legacy' }),
|
||||
],
|
||||
exports: [
|
||||
RouterModule,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
|
||||
import { ContactRouteComponent } from './contact-route.component';
|
||||
|
||||
|
@ -6,7 +6,7 @@ describe('ContactRouteComponent', () => {
|
|||
let component: ContactRouteComponent;
|
||||
let fixture: ComponentFixture<ContactRouteComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ContactRouteComponent ]
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
|
||||
import { InfoRouteComponent } from './info-route.component';
|
||||
|
||||
|
@ -6,7 +6,7 @@ describe('InfoRouteComponent', () => {
|
|||
let component: InfoRouteComponent;
|
||||
let fixture: ComponentFixture<InfoRouteComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ InfoRouteComponent ]
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
|
||||
import { RoutesHeaderComponent } from './routes-header.component';
|
||||
|
||||
|
@ -6,7 +6,7 @@ describe('RoutesHeaderComponent', () => {
|
|||
let component: RoutesHeaderComponent;
|
||||
let fixture: ComponentFixture<RoutesHeaderComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ RoutesHeaderComponent ]
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
|
||||
import { ServiceRouteComponent } from './service-route.component';
|
||||
|
||||
|
@ -6,7 +6,7 @@ describe('ServiceRouteComponent', () => {
|
|||
let component: ServiceRouteComponent;
|
||||
let fixture: ComponentFixture<ServiceRouteComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ServiceRouteComponent ]
|
||||
})
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/app",
|
||||
"module": "es2015",
|
||||
"types": []
|
||||
},
|
||||
"exclude": [
|
||||
"src/test.ts",
|
||||
"**/*.spec.ts"
|
||||
"files": [
|
||||
"main.ts",
|
||||
"polyfills.ts"
|
||||
],
|
||||
"include": [
|
||||
"src/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/spec",
|
||||
"module": "commonjs",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"node"
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
"sourceMap": true,
|
||||
"declaration": false,
|
||||
"moduleResolution": "node",
|
||||
"module": "es2020",
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"target": "es5",
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
"no-trailing-whitespace": true,
|
||||
"no-unnecessary-initializer": true,
|
||||
"no-unused-expression": true,
|
||||
"no-use-before-declare": true,
|
||||
"no-var-keyword": true,
|
||||
"object-literal-sort-keys": false,
|
||||
"one-line": [
|
||||
|
|
Loading…
Reference in New Issue
Block a user