Bug 1432417 - Fetch l10n_changesets from tree r=sfraser draft
authorJohan Lorenzo <jlorenzo@mozilla.com>
Tue, 23 Jan 2018 11:17:49 +0100
changeset 723518 df298ca97769a210d9fab81bd1a7c87effba8ef6
parent 723064 3d23e6d98a09a3395bf2b0d9cb03dd4be358c715
child 746880 6f3fae838841f0479c3d0614929c44d4bd638e49
push id96451
push userbmo:jlorenzo@mozilla.com
push dateTue, 23 Jan 2018 12:59:19 +0000
reviewerssfraser
bugs1432417
milestone60.0a1
Bug 1432417 - Fetch l10n_changesets from tree r=sfraser MozReview-Commit-ID: FEyb6hmJXmf
taskcluster/ci/release-snap/kind.yml
taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py
taskcluster/docker/firefox-snap/runme.sh
--- a/taskcluster/ci/release-snap/kind.yml
+++ b/taskcluster/ci/release-snap/kind.yml
@@ -60,16 +60,17 @@ job-defaults:
          CANDIDATES_DIR:
             by-project:
                maple:
                   https://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
                default:
                   https://net-mozaws-prod-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
          LC_ALL: C.UTF-8
          LANG: C.UTF-8
+         L10N_CHANGESETS: "{config_params[head_repository]}/raw-file/{config_params[head_rev]}/browser/locales/l10n-changesets.json"
       taskcluster-proxy: true
    notifications:
       completed:
          subject: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
          message: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
          plugins:
             by-project:
                mozilla-beta: ["log_collect"]
new file mode 100644
--- /dev/null
+++ b/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python3
+
+from __future__ import absolute_import, print_function
+
+import sys
+import json
+
+l10n_changesets_json_path = sys.argv[1]
+with open(l10n_changesets_json_path) as f:
+    locales = json.load(f).keys()
+linux_locales = [l for l in locales if l != 'ja-JP-mac']
+
+print('\n'.join(sorted(linux_locales)))
--- a/taskcluster/docker/firefox-snap/runme.sh
+++ b/taskcluster/docker/firefox-snap/runme.sh
@@ -1,16 +1,17 @@
 #!/bin/bash
 
 set -xe
 
 # Required env variables
 test $VERSION
 test $BUILD_NUMBER
 test $CANDIDATES_DIR
+test $L10N_CHANGESETS
 
 # Optional env variables
 : WORKSPACE                     ${WORKSPACE:=/home/worker/workspace}
 : ARTIFACTS_DIR                 ${ARTIFACTS_DIR:=/home/worker/artifacts}
 
 SCRIPT_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 TARGET="firefox-${VERSION}.snap"
@@ -30,22 +31,22 @@ tar -C "$SOURCE_DEST" -xf "${WORKSPACE}/
 # Get Ubuntu configuration
 PARTNER_CONFIG_DIR="$WORKSPACE/partner_config"
 git clone https://github.com/mozilla-partners/canonical.git "$PARTNER_CONFIG_DIR"
 
 DISTRIBUTION_DIR="$SOURCE_DEST/distribution"
 mv "$PARTNER_CONFIG_DIR/desktop/ubuntu/distribution" "$DISTRIBUTION_DIR"
 cp -v "$SCRIPT_DIRECTORY/firefox.desktop" "$DISTRIBUTION_DIR"
 
-# Use release-specific list of locales to fetch L10N XPIs
-$CURL -o "${WORKSPACE}/l10n_changesets.txt" "${CANDIDATES_DIR}/${VERSION}-candidates/build${BUILD_NUMBER}/l10n_changesets.txt"
-cat "${WORKSPACE}/l10n_changesets.txt"
+# Use list of locales to fetch L10N XPIs
+$CURL -o "${WORKSPACE}/l10n_changesets.json" "$L10N_CHANGESETS"
+locales=$(python3 "$SCRIPT_DIRECTORY/extract_locales_from_l10n_json.py" "${WORKSPACE}/l10n_changesets.json")
 
 mkdir -p "$DISTRIBUTION_DIR/extensions"
-for locale in $(grep -v ja-JP-mac "${WORKSPACE}/l10n_changesets.txt" | awk '{print $1}'); do
+for locale in $locales; do
     $CURL -o "$SOURCE_DEST/distribution/extensions/langpack-${locale}@firefox.mozilla.org.xpi" \
         "$CANDIDATES_DIR/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/xpi/${locale}.xpi"
 done
 
 # Generate snapcraft manifest
 sed -e "s/@VERSION@/${VERSION}/g" -e "s/@BUILD_NUMBER@/${BUILD_NUMBER}/g" snapcraft.yaml.in > ${WORKSPACE}/snapcraft.yaml
 cd ${WORKSPACE}
 snapcraft
@@ -74,13 +75,13 @@ cat signing_manifest.json
 
 # Upload Beta snaps to Ubuntu Snap Store (No channel)
 # TODO: Add a release channel once ready for broader audience
 # TODO: Don't filter out non-beta releases
 # TODO: Parametrize channel depending on beta vs release
 # TODO: Make this part an independent task
 if [ "$PUSH_TO_CHANNEL" != "" ]; then
   echo "Beta version detected. Uploading to Ubuntu Store (no channel)..."
-  bash "$SCRIPT_DIRECTORY/fetch_macaroons.sh" 'http://taskcluster/secrets/v1/secret/project/releng/snapcraft/firefox/$PUSH_TO_CHANNEL'
+  bash "$SCRIPT_DIRECTORY/fetch_macaroons.sh" "http://taskcluster/secrets/v1/secret/project/releng/snapcraft/firefox/$PUSH_TO_CHANNEL"
   snapcraft push "$TARGET_FULL_PATH"
 else
   echo "Non-beta version detected. Nothing else to do."
 fi