From 242dcd18ce71c6ef3182388eefa1a8aa8f1b4796 Mon Sep 17 00:00:00 2001 From: Ahmad Amireh Date: Tue, 12 Oct 2021 10:29:06 -0600 Subject: [PATCH] publish source translations to s3 refs FOO-2371 flag = none test plan: jenkins does what the title says (on post-merge) Change-Id: Id17a194c1c96ade4d21cea0a6ed97205a8eb2754 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275751 Tested-by: Service Cloud Jenkins Reviewed-by: August Thornton QA-Review: Ahmad Amireh Product-Review: Ahmad Amireh --- Jenkinsfile | 4 ++ .../library/vars/buildDockerImageStage.groovy | 38 +++++++++++++++++++ lib/tasks/canvas.rake | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3e0dce43538..8c766887a73 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -479,6 +479,10 @@ pipeline { extendedStage(LINTERS_BUILD_IMAGE_STAGE) .queue(stages, buildDockerImageStage.&lintersImage) + extendedStage('Run i18n:generate') + .required(configuration.isChangeMerged()) + .queue(stages, buildDockerImageStage.&i18nGenerate) + parallel(stages) } } diff --git a/build/new-jenkins/library/vars/buildDockerImageStage.groovy b/build/new-jenkins/library/vars/buildDockerImageStage.groovy index 9b5395ede7f..5f0a7ee5f51 100644 --- a/build/new-jenkins/library/vars/buildDockerImageStage.groovy +++ b/build/new-jenkins/library/vars/buildDockerImageStage.groovy @@ -193,3 +193,41 @@ def patchsetImage() { """, label: 'upload cache images') } } + +def i18nGenerate() { + def dest = 's3://instructure-translations/sources/canvas-lms/en/en.yml' + def roleARN = 'arn:aws:iam::307761260553:role/translations-jenkins' + + sh( + label: 'generate the source translations file (en.yml)', + script: """ + docker run --name=transifreq \ + -e RAILS_LOAD_ALL_LOCALES=1 \ + -e COMPILE_ASSETS_CSS=0 \ + -e COMPILE_ASSETS_STYLEGUIDE=0 \ + -e COMPILE_ASSETS_BUILD_JS=0 \ + $PATCHSET_TAG \ + bundle exec rake canvas:compile_assets i18n:generate + """ + ) + + sh( + label: 'stage the source translations file for uploading to s3', + script: ' \ + docker cp \ + transifreq:/usr/src/app/config/locales/generated/en.yml \ + transifreq-en.yml \ + ' + ) + + sh( + label: 'upload the source translations file to s3', + script: """ + aws configure set profile.transifreq.credential_source Ec2InstanceMetadata && + aws configure set profile.transifreq.role_arn $roleARN && + aws s3 cp --profile transifreq --acl bucket-owner-full-control \ + ./transifreq-en.yml \ + $dest + """ + ) +} diff --git a/lib/tasks/canvas.rake b/lib/tasks/canvas.rake index e22b6ac924a..23a0d65b8e8 100644 --- a/lib/tasks/canvas.rake +++ b/lib/tasks/canvas.rake @@ -53,7 +53,7 @@ unless $canvas_tasks_loaded task 'i18n:generate_js' => [ ('js:yarn_install' if npm_install) - ].compact if build_i18n && build_js + ].compact if build_i18n task 'js:webpack_development' => [ 'js:gulp_rev',