Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add clobber mechanism #16722

Merged
merged 1 commit into from May 9, 2017
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -0,0 +1,8 @@
# To trigger a clobber replace ALL of the textual description below,
# giving a pull request number and a one line description of why a clobber is
# required.
#
# Modifying this file will now automatically clobber the buildbot machines \o/
#

Pull 16722 - Added CLOBBER file
@@ -24,7 +24,7 @@
Command,
)

from servo.command_base import CommandBase, cd, call, BIN_SUFFIX
from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX
from servo.util import host_triple


@@ -228,6 +228,7 @@ def build(self, target=None, release=False, dev=False, jobs=None,
opts += ["--target", target]

self.ensure_bootstrapped(target=target)
self.ensure_clobbered()

if debug_mozjs:
features += ["debugmozjs"]
@@ -360,6 +361,7 @@ def build(self, target=None, release=False, dev=False, jobs=None,
def build_cef(self, jobs=None, verbose=False, release=False,
with_debug_assertions=False):
self.ensure_bootstrapped()
self.ensure_clobbered()

ret = None
opts = []
@@ -411,6 +413,7 @@ def build_cef(self, jobs=None, verbose=False, release=False,
def build_geckolib(self, with_gecko=None, jobs=None, verbose=False, release=False):
self.set_use_stable_rust()
self.ensure_bootstrapped()
self.ensure_clobbered()

env = self.build_env(is_build=True, geckolib=True)

@@ -455,7 +458,7 @@ def build_geckolib(self, with_gecko=None, jobs=None, verbose=False, release=Fals
help='Print verbose output')
@CommandArgument('params', nargs='...',
help="Command-line arguments to be passed through to Cargo")
def clean(self, manifest_path, params, verbose=False):
def clean(self, manifest_path=None, params=[], verbose=False):
self.ensure_bootstrapped()

opts = []
@@ -464,5 +467,5 @@ def clean(self, manifest_path, params, verbose=False):
if verbose:
opts += ["-v"]
opts += params
return call(["cargo", "clean"] + opts,
env=self.build_env(), cwd=self.servo_crate(), verbose=verbose)
return check_call(["cargo", "clean"] + opts,
env=self.build_env(), cwd=self.servo_crate(), verbose=verbose)
@@ -574,3 +574,30 @@ def ensure_bootstrapped(self, target=None):
Registrar.dispatch("bootstrap-cargo", context=self.context)

self.context.bootstrapped = True

def ensure_clobbered(self, target_dir=None):
if target_dir is None:
target_dir = self.get_target_dir()
auto = True if os.environ.get('AUTOCLOBBER', False) else False
src_clobber = os.path.join(self.context.topdir, 'CLOBBER')
target_clobber = os.path.join(target_dir, 'CLOBBER')

if not os.path.exists(target_dir):
os.makedirs(target_dir)

if not os.path.exists(target_clobber):
# Simply touch the file.
with open(target_clobber, 'a'):
pass

if auto:
if os.path.getmtime(src_clobber) > os.path.getmtime(target_clobber):
print('Automatically clobbering target directory: {}'.format(target_dir))

try:
Registrar.dispatch("clean", context=self.context, verbose=True)
print('Successfully completed auto clobber.')
except subprocess.CalledProcessError as error:
sys.exit(error)
else:
print("Clobber not needed.")
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.