Bug 1432417 - Fetch l10n_changesets from tree r=sfraser
MozReview-Commit-ID: FEyb6hmJXmf
--- 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