|
@@ -1,17 +1,3 @@
|
|
|
-// Initialize variables to signal that a given stage finished.
|
|
|
|
|
-// We use them to build a graph of interconnected steps/dependencies.
|
|
|
|
|
-// - Incoming edges use "waitUntil" and reference the given variables of dependencies.
|
|
|
|
|
-// - Outgoing edges set the given variable to true.
|
|
|
|
|
-def action_test_frontend_ct_build = false
|
|
|
|
|
-def action_build_deps = false
|
|
|
|
|
-def action_copy_external_pages = false
|
|
|
|
|
-def action_build_dev = false
|
|
|
|
|
-def action_test_acceptance_app_server_pro = false
|
|
|
|
|
-def action_build_webpack = false
|
|
|
|
|
-def action_test_acceptance_app_saas = false
|
|
|
|
|
-def action_build_pug = false
|
|
|
|
|
-def action_build_production = false
|
|
|
|
|
-
|
|
|
|
|
pipeline {
|
|
pipeline {
|
|
|
agent {
|
|
agent {
|
|
|
node {
|
|
node {
|
|
@@ -24,8 +10,6 @@ pipeline {
|
|
|
options {
|
|
options {
|
|
|
// Print timestamp next to each log line.
|
|
// Print timestamp next to each log line.
|
|
|
timestamps()
|
|
timestamps()
|
|
|
- // Abort build after hitting first failure.
|
|
|
|
|
- parallelsAlwaysFailFast()
|
|
|
|
|
retry(3)
|
|
retry(3)
|
|
|
timeout(time: 15, unit: 'MINUTES')
|
|
timeout(time: 15, unit: 'MINUTES')
|
|
|
}
|
|
}
|
|
@@ -45,34 +29,8 @@ pipeline {
|
|
|
CDN_PROD = "gs://mgcp-1117973-ol-prod-web-assets-1"
|
|
CDN_PROD = "gs://mgcp-1117973-ol-prod-web-assets-1"
|
|
|
}
|
|
}
|
|
|
stages {
|
|
stages {
|
|
|
- // Retries will use the same pipeline instance. Reset the vars.
|
|
|
|
|
- stage('Reset vars') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- action_test_frontend_ct_build = false
|
|
|
|
|
- action_build_deps = false
|
|
|
|
|
- action_copy_external_pages = false
|
|
|
|
|
- action_build_dev = false
|
|
|
|
|
- action_test_acceptance_app_server_pro = false
|
|
|
|
|
- action_build_webpack = false
|
|
|
|
|
- action_test_acceptance_app_saas = false
|
|
|
|
|
- action_build_pug = false
|
|
|
|
|
- action_build_production = false
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage ('Build, Test and Push') {
|
|
|
|
|
|
|
+ stage('Stage 1') {
|
|
|
parallel {
|
|
parallel {
|
|
|
- stage('Copy external pages') {
|
|
|
|
|
- steps {
|
|
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'bin/copy_external_pages'
|
|
|
|
|
- script {
|
|
|
|
|
- action_copy_external_pages = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
stage('Prefetch Tests Images') {
|
|
stage('Prefetch Tests Images') {
|
|
|
steps {
|
|
steps {
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
@@ -80,50 +38,29 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- stage('Build Deps') {
|
|
|
|
|
|
|
+ stage('Build') {
|
|
|
steps {
|
|
steps {
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
|
|
+ sh 'bin/copy_external_pages'
|
|
|
sh 'make build_deps'
|
|
sh 'make build_deps'
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_build_deps = true
|
|
|
|
|
|
|
+ sh 'make build_dev'
|
|
|
|
|
+ sh 'make build_test_frontend_ct'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ stage('Stage 2') {
|
|
|
|
|
+ parallel {
|
|
|
stage('Push Deps') {
|
|
stage('Push Deps') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_deps
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh 'docker push ${AR_URL}/${IMAGE_NAME}:${BRANCH_NAME}-deps'
|
|
sh 'docker push ${AR_URL}/${IMAGE_NAME}:${BRANCH_NAME}-deps'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- stage('Build Dev') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_deps && action_copy_external_pages
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'make build_dev'
|
|
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_build_dev = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage ('Format') {
|
|
|
|
|
|
|
+ stage('Format') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh 'make format_in_docker'
|
|
sh 'make format_in_docker'
|
|
|
}
|
|
}
|
|
@@ -131,15 +68,16 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('Lint') {
|
|
stage('Lint') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh 'make lint_in_docker'
|
|
sh 'make lint_in_docker'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ post {
|
|
|
|
|
+ always {
|
|
|
|
|
+ recordIssues checksAnnotationScope: 'ALL', enabledForFailure: true, failOnError: true, id: 'web-eslint', name: 'Web eslint', qualityGates: [[integerThreshold: 1, threshold: 1.0, type: 'TOTAL']], sourceCodeRetention: 'LAST_BUILD', tools: [esLint(pattern: 'services/web/data/reports/eslint.json')]
|
|
|
|
|
+ recordIssues checksAnnotationScope: 'ALL', enabledForFailure: true, failOnError: true, id: 'web-stylelint', name: 'Web stylelint', qualityGates: [[integerThreshold: 1, threshold: 1.0, type: 'TOTAL']], sourceCodeRetention: 'LAST_BUILD', tools: [styleLint(pattern: 'services/web/data/reports/stylelint.json')]
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
stage('Shellcheck') {
|
|
stage('Shellcheck') {
|
|
|
steps {
|
|
steps {
|
|
@@ -150,26 +88,13 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('Acceptance SaaS') {
|
|
stage('Acceptance SaaS') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh 'make test_acceptance_app_saas'
|
|
sh 'make test_acceptance_app_saas'
|
|
|
}
|
|
}
|
|
|
- script {
|
|
|
|
|
- action_test_acceptance_app_saas = true
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
stage('Acceptance Server CE') {
|
|
stage('Acceptance Server CE') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_app_server_ce"
|
|
sh "make test_acceptance_app_server_ce"
|
|
|
}
|
|
}
|
|
@@ -177,26 +102,13 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('Acceptance Server Pro') {
|
|
stage('Acceptance Server Pro') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_app_server_pro"
|
|
sh "make test_acceptance_app_server_pro"
|
|
|
}
|
|
}
|
|
|
- script {
|
|
|
|
|
- action_test_acceptance_app_server_pro = true
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_saas_1') {
|
|
stage('test_acceptance_modules_merged_saas_1') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_saas_1"
|
|
sh "make test_acceptance_modules_merged_saas_1"
|
|
|
}
|
|
}
|
|
@@ -204,11 +116,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_saas_2') {
|
|
stage('test_acceptance_modules_merged_saas_2') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_saas_2"
|
|
sh "make test_acceptance_modules_merged_saas_2"
|
|
|
}
|
|
}
|
|
@@ -216,11 +123,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_saas_3') {
|
|
stage('test_acceptance_modules_merged_saas_3') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_saas_3"
|
|
sh "make test_acceptance_modules_merged_saas_3"
|
|
|
}
|
|
}
|
|
@@ -228,11 +130,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_saas_4') {
|
|
stage('test_acceptance_modules_merged_saas_4') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_saas_4"
|
|
sh "make test_acceptance_modules_merged_saas_4"
|
|
|
}
|
|
}
|
|
@@ -240,11 +137,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_server_ce') {
|
|
stage('test_acceptance_modules_merged_server_ce') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_server_ce"
|
|
sh "make test_acceptance_modules_merged_server_ce"
|
|
|
}
|
|
}
|
|
@@ -252,11 +144,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_acceptance_modules_merged_server_pro') {
|
|
stage('test_acceptance_modules_merged_server_pro') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_acceptance_modules_merged_server_pro"
|
|
sh "make test_acceptance_modules_merged_server_pro"
|
|
|
}
|
|
}
|
|
@@ -264,11 +151,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_frontend') {
|
|
stage('test_frontend') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend"
|
|
sh "make test_frontend"
|
|
|
}
|
|
}
|
|
@@ -276,41 +158,16 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_writefull') {
|
|
stage('test_writefull') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_writefull"
|
|
sh "make test_writefull"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- stage('test_frontend_ct_build') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh "make build_test_frontend_ct"
|
|
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_test_frontend_ct_build = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
stage('test_frontend_ct_core_other') {
|
|
stage('test_frontend_ct_core_other') {
|
|
|
environment {
|
|
environment {
|
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
|
}
|
|
}
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_test_frontend_ct_build
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend_ct_core_other"
|
|
sh "make test_frontend_ct_core_other"
|
|
|
}
|
|
}
|
|
@@ -321,11 +178,6 @@ pipeline {
|
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
|
}
|
|
}
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_test_frontend_ct_build
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend_ct_core_features"
|
|
sh "make test_frontend_ct_core_features"
|
|
|
}
|
|
}
|
|
@@ -336,11 +188,6 @@ pipeline {
|
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
CYPRESS_INTERNAL_BROWSER_CONNECT_TIMEOUT = '120000'
|
|
|
}
|
|
}
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_test_frontend_ct_build
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend_ct_modules"
|
|
sh "make test_frontend_ct_modules"
|
|
|
}
|
|
}
|
|
@@ -348,11 +195,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_frontend_ct_editor_visual') {
|
|
stage('test_frontend_ct_editor_visual') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_test_frontend_ct_build
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend_ct_editor_visual"
|
|
sh "make test_frontend_ct_editor_visual"
|
|
|
}
|
|
}
|
|
@@ -360,11 +202,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('test_frontend_ct_editor_other') {
|
|
stage('test_frontend_ct_editor_other') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_test_frontend_ct_build
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_frontend_ct_editor_other"
|
|
sh "make test_frontend_ct_editor_other"
|
|
|
}
|
|
}
|
|
@@ -372,11 +209,6 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('Test Unit ESM') {
|
|
stage('Test Unit ESM') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_unit_esm"
|
|
sh "make test_unit_esm"
|
|
|
}
|
|
}
|
|
@@ -384,90 +216,60 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
stage('Test Unit Mocha') {
|
|
stage('Test Unit Mocha') {
|
|
|
steps {
|
|
steps {
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|
|
|
sh "make test_unit_mocha"
|
|
sh "make test_unit_mocha"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- stage('Build Webpack') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev && action_test_acceptance_app_server_pro
|
|
|
|
|
|
|
+ stage('Build webpack + production + cdn upload + sentry upload') {
|
|
|
|
|
+ stages {
|
|
|
|
|
+ stage('Wait a bit to give tests all the CPU capacity') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ sh 'sleep 120'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'make build_webpack'
|
|
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_build_webpack = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage('Build Pug') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_dev && action_test_acceptance_app_server_pro
|
|
|
|
|
|
|
+ stage('Build Webpack') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'make build_webpack'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'make build_pug'
|
|
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_build_pug = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage('CDN Upload Image') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_webpack
|
|
|
|
|
|
|
+ stage('Build Pug') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'make build_pug'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'make tar'
|
|
|
|
|
- sh 'bin/cdn_upload'
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage('Build Production') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_webpack && action_build_pug
|
|
|
|
|
|
|
+ stage('CDN Upload Image') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'make tar'
|
|
|
|
|
+ sh 'bin/cdn_upload'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'make build'
|
|
|
|
|
- }
|
|
|
|
|
- script {
|
|
|
|
|
- action_build_production = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- stage('Sentry Upload') {
|
|
|
|
|
- steps {
|
|
|
|
|
- script {
|
|
|
|
|
- waitUntil {
|
|
|
|
|
- return action_build_webpack && action_build_production
|
|
|
|
|
|
|
+ stage('Build Production') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'make build'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'gcloud secrets versions access latest --secret=web-sentryclirc > .sentryclirc'
|
|
|
|
|
- sh 'make sentry_upload'
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- post {
|
|
|
|
|
- cleanup {
|
|
|
|
|
- dir('services/web') {
|
|
|
|
|
- sh 'rm -f .sentryclirc'
|
|
|
|
|
|
|
+ stage('Sentry Upload') {
|
|
|
|
|
+ steps {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'gcloud secrets versions access latest --secret=web-sentryclirc > .sentryclirc'
|
|
|
|
|
+ sh 'make sentry_upload'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ post {
|
|
|
|
|
+ cleanup {
|
|
|
|
|
+ dir('services/web') {
|
|
|
|
|
+ sh 'rm -f .sentryclirc'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -483,6 +285,9 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
post {
|
|
post {
|
|
|
|
|
+ always {
|
|
|
|
|
+ junit checksName: 'Web test results', testResults: 'services/web/data/reports/junit-*.xml'
|
|
|
|
|
+ }
|
|
|
// Ensure tear down of test containers, then run general Jenkins VM cleanup.
|
|
// Ensure tear down of test containers, then run general Jenkins VM cleanup.
|
|
|
cleanup {
|
|
cleanup {
|
|
|
dir('services/web') {
|
|
dir('services/web') {
|