diff --git a/android/daemon/build.gradle b/android/daemon/build.gradle index 9f658a8b6..f9a65525b 100644 --- a/android/daemon/build.gradle +++ b/android/daemon/build.gradle @@ -118,7 +118,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation SharedDependencies.androidx_core - implementation "org.jetbrains.kotlin:kotlin-reflect:1.7.22" + implementation "org.jetbrains.kotlin:kotlin-reflect:2.0.0" implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1") implementation project(path: ':qtglean') diff --git a/android/vpnClient/build.gradle b/android/vpnClient/build.gradle index f86a7c52c..4124534e9 100644 --- a/android/vpnClient/build.gradle +++ b/android/vpnClient/build.gradle @@ -80,8 +80,8 @@ dependencies { testImplementation 'junit:junit:4.13.2' testImplementation project(path: ':vpnClient') testImplementation "org.robolectric:robolectric:4.11.1" - testImplementation "org.jetbrains.kotlin:kotlin-reflect:1.7.22" - implementation "org.jetbrains.kotlin:kotlin-reflect:1.7.22" + testImplementation "org.jetbrains.kotlin:kotlin-reflect:2.0.0" + implementation "org.jetbrains.kotlin:kotlin-reflect:2.0.0" androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' diff --git a/taskcluster/config.yml b/taskcluster/config.yml index 9d754aacf..b15a56b51 100644 --- a/taskcluster/config.yml +++ b/taskcluster/config.yml @@ -105,6 +105,11 @@ workers: implementation: beetmover-import-from-gcs-to-artifact-registry os: scriptworker worker-type: 'mozillavpn-{level}-beetmover' + shipit: + provisioner: scriptworker-k8s + implementation: scriptworker-shipit + os: scriptworker + worker-type: 'mozillavpn-{level}-shipit' succeed: provisioner: built-in implementation: succeed @@ -126,3 +131,6 @@ release-promotion: - fetch - toolchain - toolchain-openssl + +shipit: + scope-prefix: project:mozillavpn:releng:ship-it diff --git a/taskcluster/kinds/mark-as-shipped/kind.yml b/taskcluster/kinds/mark-as-shipped/kind.yml new file mode 100644 index 000000000..48f53911e --- /dev/null +++ b/taskcluster/kinds/mark-as-shipped/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - mozillavpn_taskgraph.transforms.set_name + - mozilla_taskgraph.transforms.scriptworker.shipit.mark_as_shipped + - taskgraph.transforms.task + +kind-dependencies: + - beetmover-ship + +tasks: + mark-as-shipped: + worker-type: shipit + from-deps: + group-by: + attribute: shipping-phase + copy-attributes: true + unique-kinds: false + set-name: false + shipit-product: + by-build-type: + addons/opt: mozilla-vpn-addons + default: mozilla-vpn-client + run-on-tasks-for: [action] diff --git a/taskcluster/mozillavpn_taskgraph/transforms/set_name.py b/taskcluster/mozillavpn_taskgraph/transforms/set_name.py new file mode 100644 index 000000000..628a9a64c --- /dev/null +++ b/taskcluster/mozillavpn_taskgraph/transforms/set_name.py @@ -0,0 +1,20 @@ +from taskgraph.transforms.base import TransformSequence +from taskgraph.util.dependencies import get_primary_dependency + + +transforms = TransformSequence() + + +@transforms.add +def set_name(config, tasks): + for task in tasks: + if config.kind == "mark-as-shipped": + dep = get_primary_dependency(config, task) + assert dep + + product = ( + "addons" if dep.attributes["build-type"] == "addons/opt" else "client" + ) + task["name"] = f"mark-as-shipped-{product}" + + yield task