diff --git a/.taskcluster.yml b/.taskcluster.yml index 2e71a5c7b..9b647d4e7 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -8,7 +8,7 @@ tasks: - $let: taskgraph: branch: taskgraph - revision: a458418ef7cdd6778f1283926c6116966255bc24 + revision: 9daff451cfbe82c5c70237a7b3dbcf4fd3238299 trustDomain: mobile in: $let: @@ -243,7 +243,7 @@ tasks: # Note: This task is built server side without the context or tooling that # exist in tree so we must hard code the hash image: - mozillareleases/taskgraph:decision-mobile-682fbaa1ef17e70ddfe3457da3eaf8e776c4a20fe5bfbdbeba0641fd5bceae2a@sha256:bbb2613aaab79d17e590fbd78c072d0643be40fd1237195703f84280ecc3b302 + mozillareleases/taskgraph:decision-mobile-44b6b7b4c370220eff56efa8b508aa5157ef9c6e74847c7ecc19d640946ba49e@sha256:4107cbc5e154502529e4d38efa4dc89c05ee54e2cbc6e2e66023e68407502894 maxRunTime: 1800 @@ -260,14 +260,14 @@ tasks: in: $if: 'tasks_for == "action"' then: > - PIP_IGNORE_INSTALLED=0 pip install --user /builds/worker/checkouts/taskgraph && - PIP_IGNORE_INSTALLED=0 pip install --user mozilla-version && + PIP_IGNORE_INSTALLED=0 pip3 install --user /builds/worker/checkouts/taskgraph && + PIP_IGNORE_INSTALLED=0 pip3 install --user mozilla-version && taskcluster/scripts/decision-install-sdk.sh && ln -s /builds/worker/artifacts artifacts && ~/.local/bin/taskgraph action-callback else: > - PIP_IGNORE_INSTALLED=0 pip install --user /builds/worker/checkouts/taskgraph && - PIP_IGNORE_INSTALLED=0 pip install --user mozilla-version && + PIP_IGNORE_INSTALLED=0 pip3 install --user /builds/worker/checkouts/taskgraph && + PIP_IGNORE_INSTALLED=0 pip3 install --user mozilla-version && taskcluster/scripts/decision-install-sdk.sh && ln -s /builds/worker/artifacts artifacts && ~/.local/bin/taskgraph decision diff --git a/taskcluster/fenix_taskgraph/gradle.py b/taskcluster/fenix_taskgraph/gradle.py index f4eea1159..119048fef 100644 --- a/taskcluster/fenix_taskgraph/gradle.py +++ b/taskcluster/fenix_taskgraph/gradle.py @@ -40,14 +40,14 @@ def _fetch_all_variants(): def _run_gradle_process(gradle_command, **kwargs): gradle_properties = [ '-P{property_name}={value}'.format(property_name=property_name, value=value) - for property_name, value in kwargs.iteritems() + for property_name, value in kwargs.items() ] - process = subprocess.Popen(["./gradlew", "--no-daemon", "--quiet", gradle_command] + gradle_properties, stdout=subprocess.PIPE) + process = subprocess.Popen(["./gradlew", "--no-daemon", "--quiet", gradle_command] + gradle_properties, stdout=subprocess.PIPE, universal_newlines=True) output, err = process.communicate() exit_code = process.wait() - if exit_code is not 0: + if exit_code != 0: raise RuntimeError("Gradle command returned error: {}".format(exit_code)) return output diff --git a/taskcluster/fenix_taskgraph/loader/__init__.py b/taskcluster/fenix_taskgraph/loader/__init__.py index 781f795ac..73d5c33f6 100644 --- a/taskcluster/fenix_taskgraph/loader/__init__.py +++ b/taskcluster/fenix_taskgraph/loader/__init__.py @@ -24,7 +24,7 @@ def group_tasks(config, tasks): groups = group_by_fn(config, tasks) - for combinations in groups.itervalues(): + for combinations in groups.values(): dependencies = [copy.deepcopy(t) for t in combinations] yield dependencies diff --git a/taskcluster/fenix_taskgraph/loader/multi_dep.py b/taskcluster/fenix_taskgraph/loader/multi_dep.py index 0c9f4dbac..8f527c794 100644 --- a/taskcluster/fenix_taskgraph/loader/multi_dep.py +++ b/taskcluster/fenix_taskgraph/loader/multi_dep.py @@ -20,7 +20,7 @@ schema = Schema({ Required( 'dependent-tasks', 'dictionary of dependent tasks, keyed by kind', - ): {basestring: Task}, + ): {str: Task}, }) @@ -66,7 +66,7 @@ def get_primary_dep(config, dep_tasks): is the primary dependency. If it's undefined, return the first dep. """ primary_dependencies = config.get('primary-dependency') - if isinstance(primary_dependencies, basestring): + if isinstance(primary_dependencies, str): primary_dependencies = [primary_dependencies] if not primary_dependencies: assert len(dep_tasks) == 1, "Must define a primary-dependency!" diff --git a/taskcluster/fenix_taskgraph/parameters.py b/taskcluster/fenix_taskgraph/parameters.py index ba88fa2ee..cfe52d198 100644 --- a/taskcluster/fenix_taskgraph/parameters.py +++ b/taskcluster/fenix_taskgraph/parameters.py @@ -25,7 +25,7 @@ extend_parameters_schema({ def get_decision_parameters(graph_config, parameters): parameters.setdefault("release_type", "") - head_tag = parameters["head_tag"].decode("utf-8") + head_tag = parameters["head_tag"] parameters["version"] = head_tag[1:] if head_tag else "" pr_number = os.environ.get("MOBILE_PULL_REQUEST_NUMBER", None) @@ -54,5 +54,5 @@ def get_decision_parameters(graph_config, parameters): else: raise ValueError("Unsupported version type: {}".format(version.version_type)) - parameters["next_version"] = str(next_version).decode("utf-8") + parameters["next_version"] = str(next_version) parameters["release_type"] = release_type diff --git a/taskcluster/fenix_taskgraph/target_tasks.py b/taskcluster/fenix_taskgraph/target_tasks.py index 0d8f970ad..71785428c 100644 --- a/taskcluster/fenix_taskgraph/target_tasks.py +++ b/taskcluster/fenix_taskgraph/target_tasks.py @@ -20,7 +20,7 @@ def target_tasks_default(full_task_graph, parameters, graph_config): return task.attributes.get("release-type", "") == parameters["release_type"] - return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if filter(t, parameters)] @_target_task("nightly") @@ -32,7 +32,7 @@ def target_tasks_nightly(full_task_graph, parameters, graph_config): # See bug 1628413 for more context. return task.attributes.get("nightly", False) and task.kind != "push-apk" - return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if filter(t, parameters)] @_target_task("nightly-on-google-play") @@ -48,7 +48,7 @@ def target_tasks_nightly_on_google_play(full_task_graph, parameters, graph_confi task.kind not in ("browsertime", "visual-metrics", "raptor") ) - return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if filter(t, parameters)] def _filter_fennec(fennec_type, task, parameters): @@ -59,7 +59,7 @@ def _filter_fennec(fennec_type, task, parameters): def target_tasks_fennec_nightly(full_task_graph, parameters, graph_config): """Select the set of tasks required for a production build signed with the fennec key.""" - return [l for l, t in full_task_graph.tasks.iteritems() if _filter_fennec("production", t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if _filter_fennec("production", t, parameters)] @_target_task("bump_android_components") @@ -69,7 +69,7 @@ def target_tasks_bump_android_components(full_task_graph, parameters, graph_conf def filter(task, parameters): return task.attributes.get("bump-type", "") == "android-components" - return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if filter(t, parameters)] @_target_task("screenshots") @@ -79,4 +79,4 @@ def target_tasks_screnshots(full_task_graph, parameters, graph_config): def filter(task, parameters): return task.attributes.get("screenshots", False) - return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)] + return [l for l, t in full_task_graph.tasks.items() if filter(t, parameters)] diff --git a/taskcluster/fenix_taskgraph/transforms/github_release.py b/taskcluster/fenix_taskgraph/transforms/github_release.py index fc32583fc..153193f0f 100644 --- a/taskcluster/fenix_taskgraph/transforms/github_release.py +++ b/taskcluster/fenix_taskgraph/transforms/github_release.py @@ -36,8 +36,8 @@ def build_worker_definition(config, tasks): for task in tasks: worker_definition = { "artifact-map": _build_artifact_map(task), - "git-tag": config.params["head_tag"].decode("utf-8"), - "git-revision": config.params["head_rev"].decode("utf-8"), + "git-tag": config.params["head_tag"], + "git-revision": config.params["head_rev"], "release-name": task["worker"]["release-name"].format(version=config.params["version"]), } diff --git a/taskcluster/fenix_taskgraph/transforms/multi_dep.py b/taskcluster/fenix_taskgraph/transforms/multi_dep.py index f1161dc9e..6c932696d 100644 --- a/taskcluster/fenix_taskgraph/transforms/multi_dep.py +++ b/taskcluster/fenix_taskgraph/transforms/multi_dep.py @@ -20,7 +20,7 @@ def build_name_and_attributes(config, tasks): for task in tasks: task["dependencies"] = { dep_key: dep.label - for dep_key, dep in _get_all_deps(task).iteritems() + for dep_key, dep in _get_all_deps(task).items() } primary_dep = task["primary-dependency"] copy_of_attributes = primary_dep.attributes.copy() diff --git a/taskcluster/fenix_taskgraph/transforms/version_bump.py b/taskcluster/fenix_taskgraph/transforms/version_bump.py index dc77cb944..c6a33f74f 100644 --- a/taskcluster/fenix_taskgraph/transforms/version_bump.py +++ b/taskcluster/fenix_taskgraph/transforms/version_bump.py @@ -35,7 +35,7 @@ def resolve_keys(config, tasks): def build_worker_definition(config, tasks): for task in tasks: worker_definition = { - "branch": config.params["head_ref"].decode("utf-8"), + "branch": config.params["head_ref"], } task["worker"].update(worker_definition) diff --git a/taskcluster/scripts/decision-install-sdk.sh b/taskcluster/scripts/decision-install-sdk.sh index 9094d9609..6632076d5 100755 --- a/taskcluster/scripts/decision-install-sdk.sh +++ b/taskcluster/scripts/decision-install-sdk.sh @@ -12,4 +12,6 @@ $CURL --output "$SDK_ZIP_LOCATION" "https://dl.google.com/android/repository/sdk echo "$ANDROID_SDK_SHA256 $SDK_ZIP_LOCATION" | sha256sum --check unzip -d "$ANDROID_SDK_ROOT" "$SDK_ZIP_LOCATION" rm "$SDK_ZIP_LOCATION" + +export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64" yes | "${ANDROID_SDK_ROOT}/tools/bin/sdkmanager" --licenses