mach: Expose a --skip-static-analysis to mach boostrap (#32587)

This should speed up runners which just need to run the WPT tests.

Fixes #32582.
This commit is contained in:
Martin Robinson 2024-06-24 19:13:09 +02:00 committed by GitHub
parent 30dad2565f
commit e331cc67c3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 15 additions and 10 deletions

View file

@ -17,7 +17,7 @@ jobs:
run: |
python3 -m pip install --upgrade pip
sudo apt update
python3 ./mach bootstrap
python3 ./mach bootstrap --skip-lints
- name: Set LIBCLANG_PATH # This is needed for bindgen in mozangle.
run: echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- name: Compile docs

View file

@ -55,7 +55,7 @@ jobs:
python3 -m pip install --upgrade pip
sudo apt update
sudo apt install -qy --no-install-recommends mesa-vulkan-drivers
python3 ./mach bootstrap
python3 ./mach bootstrap --skip-lints
- name: Sync from upstream WPT
if: ${{ inputs.wpt-sync-from-upstream }}
run: |

View file

@ -45,7 +45,7 @@ jobs:
run: |
gtar -xzf target.tar.gz
python3 -m pip install --upgrade pip
python3 ./mach bootstrap
python3 ./mach bootstrap --skip-lints
- name: Smoketest
run: python3 ./mach smoketest --${{ inputs.profile }}
- name: Run tests

View file

@ -200,7 +200,8 @@ def bootstrap_command_only(topdir):
try:
force = '-f' in sys.argv or '--force' in sys.argv
skip_platform = '--skip-platform' in sys.argv
servo.platform.get().bootstrap(force, skip_platform)
skip_lints = '--skip-lints' in sys.argv
servo.platform.get().bootstrap(force, skip_platform, skip_lints)
except NotImplementedError as exception:
print(exception)
return 1

View file

@ -43,12 +43,15 @@ class MachCommands(CommandBase):
@CommandArgument('--skip-platform',
action='store_true',
help='Skip platform bootstrapping.')
def bootstrap(self, force=False, skip_platform=False):
@CommandArgument('--skip-lints',
action='store_true',
help='Skip tool necessary for linting.')
def bootstrap(self, force=False, skip_platform=False, skip_lints=False):
# Note: This entry point isn't actually invoked by ./mach bootstrap.
# ./mach bootstrap calls mach_bootstrap.bootstrap_command_only so that
# it can install dependencies without needing mach's dependencies
try:
servo.platform.get().bootstrap(force, skip_platform)
servo.platform.get().bootstrap(force, skip_platform, skip_lints)
except NotImplementedError as exception:
print(exception)
return 1

View file

@ -54,10 +54,11 @@ class Base:
except FileNotFoundError:
return False
def bootstrap(self, force: bool, skip_platform: bool):
def bootstrap(self, force: bool, skip_platform: bool, skip_lints: bool):
installed_something = False
if not skip_platform:
installed_something |= self._platform_bootstrap(force)
if not skip_lints:
installed_something |= self.install_taplo(force)
installed_something |= self.install_cargo_deny(force)
installed_something |= self.install_crown(force)