forked from mirrors/gecko-dev
Bug 1868136 - add support for mobile first-run experiments to periodic-updates scripts. r=releng-reviewers,gbrown DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D196744
This commit is contained in:
parent
80d786a51f
commit
f656db908e
3 changed files with 61 additions and 3 deletions
|
|
@ -28,6 +28,10 @@ job-defaults:
|
|||
by-project:
|
||||
mozilla-(central|beta|esr.*): "1"
|
||||
default: ""
|
||||
DO_MOBILE_EXPERIMENTS:
|
||||
by-project:
|
||||
mozilla-central: "" # TODO: enable after firefox-android merge
|
||||
default: ""
|
||||
USE_MOZILLA_CENTRAL:
|
||||
by-project:
|
||||
mozilla-central: "1"
|
||||
|
|
@ -66,5 +70,8 @@ jobs:
|
|||
- name: 'public/build/remote-settings.diff'
|
||||
path: '/home/worker/artifacts/remote-settings.diff'
|
||||
type: file
|
||||
- name: 'public/build/initial_experiments.diff'
|
||||
path: '/home/worker/artifacts/initial_experiments.diff'
|
||||
type: file
|
||||
scopes:
|
||||
- secrets:get:project/releng/gecko/build/level-{level}/arc-phabricator-token
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@ then
|
|||
PARAMS="${PARAMS} --suffix-list"
|
||||
fi
|
||||
|
||||
if [ -n "${DO_MOBILE_EXPERIMENTS}" ]
|
||||
then
|
||||
PARAMS="${PARAMS} --mobile-experiments"
|
||||
fi
|
||||
|
||||
if [ -n "${DONTBUILD}" ]
|
||||
then
|
||||
PARAMS="${PARAMS} -d"
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Usage: $(basename "$0") [-p product]
|
|||
# Use archive.m.o instead of the taskcluster index to get xpcshell
|
||||
[--use-ftp-builds]
|
||||
# One (or more) of the following actions must be specified.
|
||||
--hsts | --hpkp | --remote-settings | --suffix-list
|
||||
--hsts | --hpkp | --remote-settings | --suffix-list | --mobile-experiments
|
||||
-b branch
|
||||
|
||||
EOF
|
||||
|
|
@ -75,12 +75,19 @@ HG_SUFFIX_LOCAL="effective_tld_names.dat"
|
|||
HG_SUFFIX_PATH="/netwerk/dns/${HG_SUFFIX_LOCAL}"
|
||||
SUFFIX_LIST_UPDATED=false
|
||||
|
||||
DO_MOBILE_EXPERIMENTS=false
|
||||
EXPERIMENTER_URL="https://experimenter.services.mozilla.com/api/v6/experiments-first-run/"
|
||||
FENIX_INITIAL_EXPERIMENTS="mobile/android/fenix/app/src/main/res/raw/initial_experiments.json"
|
||||
FOCUS_INITIAL_EXPERIMENTS="mobile/android/focus-android/app/src/main/res/raw/initial_experiments.json"
|
||||
MOBILE_EXPERIMENTS_UPDATED=false
|
||||
|
||||
ARTIFACTS_DIR="${ARTIFACTS_DIR:-.}"
|
||||
# Defaults
|
||||
HSTS_DIFF_ARTIFACT="${ARTIFACTS_DIR}/${HSTS_DIFF_ARTIFACT:-"nsSTSPreloadList.diff"}"
|
||||
HPKP_DIFF_ARTIFACT="${ARTIFACTS_DIR}/${HPKP_DIFF_ARTIFACT:-"StaticHPKPins.h.diff"}"
|
||||
REMOTE_SETTINGS_DIFF_ARTIFACT="${ARTIFACTS_DIR}/${REMOTE_SETTINGS_DIFF_ARTIFACT:-"remote-settings.diff"}"
|
||||
SUFFIX_LIST_DIFF_ARTIFACT="${ARTIFACTS_DIR}/${SUFFIX_LIST_DIFF_ARTIFACT:-"effective_tld_names.diff"}"
|
||||
EXPERIMENTER_DIFF_ARTIFACT="${ARTIFACTS_DIR}/initial_experiments.diff"
|
||||
|
||||
# duplicate the functionality of taskcluster-lib-urls, but in bash..
|
||||
queue_base="$TASKCLUSTER_ROOT_URL/api/queue/v1"
|
||||
|
|
@ -387,6 +394,26 @@ function update_remote_settings_attachment() {
|
|||
${WGET} -qO "${REMOTE_SETTINGS_OUTPUT}/${path_to_attachment}" "${ATTACHMENT_BASE_URL}${attachment_path_from_meta}"
|
||||
}
|
||||
|
||||
function compare_mobile_experiments() {
|
||||
echo "INFO ${WGET} ${EXPERIMENTER_URL}"
|
||||
${WGET} -O experiments.json "${EXPERIMENTER_URL}"
|
||||
${WGET} -O fenix-experiments-old.json "${HGREPO}/raw-file/default/${FENIX_INITIAL_EXPERIMENTS}"
|
||||
${WGET} -O focus-experiments-old.json "${HGREPO}/raw-file/default/${FOCUS_INITIAL_EXPERIMENTS}"
|
||||
|
||||
# shellcheck disable=SC2016
|
||||
${JQ} --arg APP_NAME fenix '{"data":map(select(.appName == $APP_NAME))}' < experiments.json > fenix-experiments-new.json
|
||||
# shellcheck disable=SC2016
|
||||
${JQ} --arg APP_NAME focus_android '{"data":map(select(.appName == $APP_NAME))}' < experiments.json > focus-experiments-new.json
|
||||
|
||||
( ${DIFF} fenix-experiments-old.json fenix-experiments-new.json; ${DIFF} focus-experiments-old.json focus-experiments-new.json ) > "${EXPERIMENTER_DIFF_ARTIFACT}"
|
||||
if [ -s "${EXPERIMENTER_DIFF_ARTIFACT}" ]; then
|
||||
# no change
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
# Clones an hg repo
|
||||
function clone_repo {
|
||||
cd "${BASEDIR}"
|
||||
|
|
@ -419,6 +446,13 @@ function stage_tld_suffix_files {
|
|||
cp -a "${GITHUB_SUFFIX_LOCAL}" "${REPODIR}/${HG_SUFFIX_PATH}"
|
||||
}
|
||||
|
||||
function stage_mobile_experiments_files {
|
||||
cd "${BASEDIR}"
|
||||
|
||||
cp fenix-experiments-new.json "${REPODIR}/${FENIX_INITIAL_EXPERIMENTS}"
|
||||
cp focus-experiments-new.json "${REPODIR}/${FOCUS_INITIAL_EXPERIMENTS}"
|
||||
}
|
||||
|
||||
# Push all pending commits to Phabricator
|
||||
function push_repo {
|
||||
cd "${REPODIR}"
|
||||
|
|
@ -466,6 +500,7 @@ while [ $# -gt 0 ]; do
|
|||
--hpkp) DO_HPKP=true ;;
|
||||
--remote-settings) DO_REMOTE_SETTINGS=true ;;
|
||||
--suffix-list) DO_SUFFIX_LIST=true ;;
|
||||
--mobile-experiments) DO_MOBILE_EXPERIMENTS=true ;;
|
||||
-r) REPODIR="$2"; shift ;;
|
||||
--use-mozilla-central) USE_MC=true ;;
|
||||
--use-ftp-builds) USE_TC=false ;;
|
||||
|
|
@ -484,7 +519,7 @@ if [ "${BRANCH}" == "" ]; then
|
|||
fi
|
||||
|
||||
# Must choose at least one update action.
|
||||
if [ "$DO_HSTS" == "false" ] && [ "$DO_HPKP" == "false" ] && [ "$DO_REMOTE_SETTINGS" == "false" ] && [ "$DO_SUFFIX_LIST" == "false" ]
|
||||
if [ "$DO_HSTS" == "false" ] && [ "$DO_HPKP" == "false" ] && [ "$DO_REMOTE_SETTINGS" == "false" ] && [ "$DO_SUFFIX_LIST" == "false" ] && [ "$DO_MOBILE_EXPERIMENTS" == false ]
|
||||
then
|
||||
echo "Error: you must specify at least one action from: --hsts, --hpkp, --remote-settings, or --suffix-list" >&2
|
||||
usage
|
||||
|
|
@ -559,9 +594,15 @@ if [ "${DO_SUFFIX_LIST}" == "true" ]; then
|
|||
SUFFIX_LIST_UPDATED=true
|
||||
fi
|
||||
fi
|
||||
if [ "${DO_MOBILE_EXPERIMENTS}" == "true" ]; then
|
||||
if compare_mobile_experiments
|
||||
then
|
||||
MOBILE_EXPERIMENTS_UPDATED=true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "${HSTS_UPDATED}" == "false" ] && [ "${HPKP_UPDATED}" == "false" ] && [ "${REMOTE_SETTINGS_UPDATED}" == "false" ] && [ "${SUFFIX_LIST_UPDATED}" == "false" ]; then
|
||||
if [ "${HSTS_UPDATED}" == "false" ] && [ "${HPKP_UPDATED}" == "false" ] && [ "${REMOTE_SETTINGS_UPDATED}" == "false" ] && [ "${SUFFIX_LIST_UPDATED}" == "false" ] && [ "${MOBILE_EXPERIMENTS_UPDATED}" == "false" ]; then
|
||||
echo "INFO: no updates required. Exiting."
|
||||
exit 0
|
||||
else
|
||||
|
|
@ -598,6 +639,11 @@ then
|
|||
COMMIT_MESSAGE="${COMMIT_MESSAGE} tld-suffixes"
|
||||
fi
|
||||
|
||||
if [ "${MOBILE_EXPERIMENTS_UPDATED}" == "true" ]
|
||||
then
|
||||
stage_mobile_experiments_files
|
||||
COMMIT_MESSAGE="${COMMIT_MESSAGE} mobile-experiments"
|
||||
fi
|
||||
|
||||
if [ ${DONTBUILD} == true ]; then
|
||||
COMMIT_MESSAGE="${COMMIT_MESSAGE} - (DONTBUILD)"
|
||||
|
|
|
|||
Loading…
Reference in a new issue