37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
# 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/.
|
|
|
|
"""Determine which project's checkout a `mach try` operation targets."""
|
|
|
|
import os
|
|
|
|
import mozpack.path as mozpath
|
|
|
|
|
|
def get_project_topsrcdir(build):
|
|
"""
|
|
Return the current project source directory for try pushes.
|
|
|
|
The project comes from the build config (--enable-project), so this works
|
|
before a build. A project is only treated as a separate try target when it
|
|
has its own taskgraph config (e.g. comm/taskcluster/config.yml).
|
|
"""
|
|
project_path = build.base_mozconfig_info["project"][0]
|
|
project_topsrcdir = mozpath.join(build.topsrcdir, mozpath.split(project_path)[0])
|
|
|
|
if not os.path.exists(os.path.join(project_topsrcdir, "taskcluster", "config.yml")):
|
|
return build.topsrcdir
|
|
|
|
if mozpath.normpath(os.getcwd()).startswith(project_topsrcdir):
|
|
return project_topsrcdir
|
|
|
|
return build.topsrcdir
|
|
|
|
|
|
def is_thunderbird_try(build):
|
|
"""
|
|
Return True if this is a Thunderbird try.
|
|
"""
|
|
return build.topsrcdir != get_project_topsrcdir(build)
|