aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux.yml8
-rw-r--r--.github/workflows/mac.yml8
-rw-r--r--.github/workflows/windows.yml8
-rw-r--r--python/servo/build_commands.py4
-rw-r--r--python/servo/testing_commands.py39
5 files changed, 46 insertions, 21 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index d38b88acdce..57c3cb36812 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -78,6 +78,14 @@ jobs:
- name: Unit tests
if: ${{ inputs.unit-tests }}
run: python3 ./mach test-unit --release --with-${{ env.LAYOUT }}
+ - name: Rename build timing
+ run: cp -r target/cargo-timings target/cargo-timings-linux-${{ env.LAYOUT }}
+ - name: Archive build timing
+ uses: actions/upload-artifact@v3
+ with:
+ name: cargo-timings
+ # Using a wildcard here ensures that the archive includes the path.
+ path: target/cargo-timings-*-${{ env.LAYOUT }}
- name: Lockfile check
run: ./etc/ci/lockfile_changed.sh
- name: Package
diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml
index c169df3693f..038bd2d8174 100644
--- a/.github/workflows/mac.yml
+++ b/.github/workflows/mac.yml
@@ -70,6 +70,14 @@ jobs:
run: python3 ./mach package --release
- name: Package smoketest
run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg
+ - name: Rename build timing
+ run: cp -r target/cargo-timings target/cargo-timings-macos-${{ env.LAYOUT }}
+ - name: Archive build timing
+ uses: actions/upload-artifact@v3
+ with:
+ name: cargo-timings
+ # Using a wildcard here ensures that the archive includes the path.
+ path: target/cargo-timings-*-${{ env.LAYOUT }}
- name: Upload package
uses: actions/upload-artifact@v3
with:
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 2175ead5f58..db6f5c76856 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -72,6 +72,14 @@ jobs:
- name: Unit tests
if: ${{ inputs.unit-tests }}
run: python mach test-unit --release --with-${{ env.LAYOUT }}
+ - name: Rename build timing
+ run: cp C:\a\servo\servo\target\cargo-timings C:\a\servo\servo\target\cargo-timings-windows-${{ env.LAYOUT }} -Recurse
+ - name: Archive build timing
+ uses: actions/upload-artifact@v3
+ with:
+ name: cargo-timings
+ # Using a wildcard here ensures that the archive includes the path.
+ path: target/cargo-timings-*-${{ env.LAYOUT }}
- name: Package
run: python mach package --release
- name: Upload Package
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index 30d6618f19b..1cf23237807 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -393,9 +393,7 @@ class MachCommands(CommandBase):
expr = "s#libdir=.*#libdir=%s#g" % gst_lib_path
subprocess.call(["perl", "-i", "-pe", expr, pc])
- # https://internals.rust-lang.org/t/exploring-crate-graph-build-times-with-cargo-build-ztimings/10975
- # Prepend so that e.g. `-Ztimings` (which means `-Ztimings=info,html`)
- # given on the command line can override it
+ # Gather Cargo build timings (https://doc.rust-lang.org/cargo/reference/timings.html).
opts = ["--timings"] + opts
if very_verbose:
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 291a00b15c0..1090ec65cab 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -245,24 +245,27 @@ class MachCommands(CommandBase):
packages.discard('stylo')
- if len(packages) > 0 or len(in_crate_packages) > 0:
- args = []
- for crate in packages:
- args += ["-p", "%s_tests" % crate]
- for crate in in_crate_packages:
- args += ["-p", crate]
- args += test_patterns
-
- if nocapture:
- args += ["--", "--nocapture"]
-
- err = self.run_cargo_build_like_command("bench" if bench else "test",
- args,
- env=self.build_env(test_unit=True),
- with_layout_2020=with_layout_2020,
- **kwargs)
- if err:
- return err
+ # Return if there is nothing to do.
+ if len(packages) == 0 and len(in_crate_packages) == 0:
+ return 0
+
+ # Gather Cargo build timings (https://doc.rust-lang.org/cargo/reference/timings.html).
+ args = ["--timings"]
+ for crate in packages:
+ args += ["-p", "%s_tests" % crate]
+ for crate in in_crate_packages:
+ args += ["-p", crate]
+ args += test_patterns
+
+ if nocapture:
+ args += ["--", "--nocapture"]
+
+ return self.run_cargo_build_like_command(
+ "bench" if bench else "test",
+ args,
+ env=self.build_env(test_unit=True),
+ with_layout_2020=with_layout_2020,
+ **kwargs)
@Command('test-content',
description='Run the content tests',