Commit graph

83 commits

Author SHA1 Message Date
shuppy
059a2fd86d
ci: Convert runner select to composite action (#39270)
to run bencher builds on self-hosted runners (#39269), we will need to
do a self-hosted runner select, but that would exceed the workflow call
depth limit (try → dispatch-workflow → linux → bencher →
self-hosted-runner-select).

this patch converts the self-hosted runner select from a [reusable
workflow](https://docs.github.com/en/actions/concepts/workflows-and-actions/reusable-workflows)
to a [composite
action](https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action),
much like #38503 did for the runner timeout.

Testing:
- self-hosted
<https://github.com/servo/servo/actions/runs/17674919359/job/50235098986>
- GitHub-hosted
<https://github.com/delan/servo/actions/runs/17674928875/job/50234708810>

Fixes: part of #39269

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2025-09-15 04:54:43 +00:00
shuppy
2b2ea05c12
ci: Make runner timeout jobs conditional, not the steps (#39268)
#38503 converted the self-hosted runner timeout from a [reusable
workflow](https://docs.github.com/en/actions/concepts/workflows-and-actions/reusable-workflows)
to a [composite
action](https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action),
but in doing so, it changed from having a conditional job to having a
conditional step. [This Update Broke My
Workflow](https://xkcd.com/1172/), because i enjoyed being able to tell
if a job ended up being GitHub-hosted or not by seeing if its timeout
job was skipped, rather than having to click on the workload job then
wait then scroll up then click “Set up job”.

this patch fixes that by making the job conditional.

Testing:
- self-hosted
<https://github.com/servo/servo/actions/runs/17674214808/job/50232483209>
- GitHub-hosted
<https://github.com/delan/servo/actions/runs/17674531369/job/50233465791>

Fixes: #39192

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2025-09-12 14:04:59 +00:00
atbrakhi
268a0eeb2d
ci: Reland run devtools tests whenever we run unit tests from #38614 (#39267)
This patch updates `linux.yml`, `mac.yml`, and `windows.yml` to run the
devtools test suite (https://github.com/servo/servo/issues/36325).


Testing: this patch effectively adds all devtools tests to CI
Fixes: https://github.com/servo/servo/issues/36325

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: Delan Azabani <dazabani@igalia.com>
2025-09-12 11:14:38 +00:00
Martin Robinson
20ad1ce84e Revert "ci: Run devtools tests whenever we run unit tests (#38614)"
This reverts commit 47aa9ea8cf.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-13 07:53:20 -07:00
Jonathan Schwender
4b91dc6d82
CI: Check MSRV in CI (#37152)
As previously proposed on zulip and discussed in the coordination
meeting, add a check to CI to see if
servo still compiles with our minimum supported Rust version.
To avoid requiring changes, we define our MSRV as the current version we
are using now (1.85.0).

This does not prevent us from updating the default compiler version,
which we should still do, to
get benefits like faster compile times, newer lints and making sure
crown stays up-to-date.

We simply test that libservo compiles in CI, since libservo (and
dependencies) is what embedders would care about. We also don't need
mach (or bootstrap!) for this, so we just use cargo build.

Testing: This PR adds a CI test. [`./mach try windows-build-libservo
linux-build-libservo
mac-build-libservo`](https://github.com/jschwe/servo/actions/runs/16901171766)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-12 19:19:45 +00:00
shuppy
47aa9ea8cf
ci: Run devtools tests whenever we run unit tests (#38614)
this patch updates linux.yml, mac.yml, and windows.yml to run the
devtools test suite (#36325), whenever unit tests are enabled in those
workflows. plus three changes that speed up the tests from 73 → 65 → 56
→ 51 seconds:

- we replace the hardcoded sleep(1) after starting servoshell with a
loop that waits until the devtools port is open (this also fixes
intermittent failures when servoshell starts too slowly, especially on
macOS)
- we start the internal web servers once, and reuse them across all
tests
- we run servoshell in headless mode (this is also required because most
CI runners have no GUI)

finally we fix two bugs that cause very noisy but not very interesting
error messages:

- in the test code, we use a [context
manager](https://docs.python.org/3/reference/datamodel.html#context-managers)
to ensure the devtools client is disconnected unconditionally, even if
test methods or assert helper methods raise exceptions (this was causing
errors on all platforms)
- in the devtools server, we treat “connection reset” errors when
reading from the client like a normal EOF, rather than as a failure
(this was causing errors on Windows)

on self-hosted linux builds, there are still spurious error messages
like the following, but we can fix them later:

```
error: XDG_RUNTIME_DIR not set in the environment.
libEGL warning: egl: failed to create dri2 screen
```

Testing: this patch effectively adds 44 tests to CI
Fixes: #36325

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
2025-08-12 15:10:45 +00:00
Jonathan Schwender
c055e8b456
ci: Move runner-timeout to composite action (#38503)
We are hitting the limit of 20 workflow references in servo. To help
mitigate this somewhat, we migrate the timeout job to a composite
action, which should be able to support our needs just as well.

Testing: [try run of this
PR](https://github.com/servo/servo/actions/runs/16783916103/job/47529580725).
[try run with unconditional
cancel](https://github.com/servo/servo/actions/runs/16784074213/job/47530099654).

This reduces our workflow count by one, slightly helping to address
#36143

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-07 05:13:36 +00:00
Mukilan Thiyagarajan
5fdd8ee277
ci: copy resources to C:\ drive on GH hosted runners (#37627)
This logic was removed in #37311. However, based on the recent failures
identified in #37626, it seems like GH hosted runners sometimes do use
the `D:` drive for checkouts. It is unclear if this is always the case
or not, so this patch adds the logic back but with a conditional check
on the workspace path.

Testing: This patch has been tested on a fork.
Fixes: #37626

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-06-23 09:33:58 +00:00
sagudev
89977c0e63
CI: fix windows CI (#37321)
GitHub-hosted runners do not check out to D: drive, apparently.

Testing: Manual CI run:
https://github.com/sagudev/servo/actions/runs/15506836392/job/43662762580
Fixes: #37311

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-06-07 11:32:05 +00:00
sagudev
c0339dd360
CI: add build-args (#36947)
Add `build-args` input in CI and try_parser job definition so we can
pass own build args to `./mach build`

Testing: There are tests for try parser and I tested CI in my fork.
Fixes: partial fix #36823

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-05-12 07:41:12 +00:00
Delan Azabani
2db828f0c7
Add minimal libservo example using winit (#35118)
* Add minimal libservo example using winit

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* CI: include examples in libservo compile test

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* CI: build libservo with `continue-on-error`

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-01-23 12:15:53 +00:00
Delan Azabani
0af1204aa3
Fix building libservo with cargo build -p libservo (#35116)
* Fix building libservo with `cargo build -p libservo`

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Test the libservo build in CI

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Work around build issue on macOS (#34517)

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-01-23 09:05:10 +00:00
DK Liao
9ceb957dd8
feat: Track the binary size for all the different platforms (#34744)
* feat: Track the binary size for all the different platforms

Signed-off-by: DK Liao <dklassic@gmail.com>

* Add target to bencher job name

Signed-off-by: DK Liao <dklassic@gmail.com>

* Update .github/workflows/bencher.yml

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: DK Liao <dklassic@gmail.com>

---------

Signed-off-by: DK Liao <dklassic@gmail.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-01-20 09:41:23 +00:00
Mukilan Thiyagarajan
adfee3daa5
mach: recreate .venv when .python-version changes (#34712)
The new images published in servo/ci-runners#12 should have `uv`
installed already and the initial build of servo triggered during the
base image construction will force the installation of the Python
version mentioned at the time of the image construction (3.12). When
.python-version changes, we can no longer use the .venv baked into the
image and must recreate the it to avoid activating the environment.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-12-20 09:55:21 +00:00
Jonathan Schwender
3cbc8c2442
CI: simplify self-hosted check (#34682)
* CI: simplify self-hosted check

See also the official documentation on the
runner context:

https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#runner-context

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Fix runner-timeout

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-12-18 09:32:40 +00:00
Samson
324e929390
Set CCACHE only for github hosted runner (#34670)
I believe this should fix https://github.com/servo/servo/issues/34603#issuecomment-2544621524

Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
2024-12-17 18:36:33 +00:00
Mukilan Thiyagarajan
88a35b3cc9
mach: adopt uv and avoid system python (#34632)
This allows us to use `uv` for:
1. Installing a pinned Python version
2. Installing the dependency packages using `uv`'s pip compatible interface.
4. Bootstrapping `mach` without a Python installion on the host, using `uv
   run`

This change also introduces a new 'composite' GitHub action to setup
python in the different CI workflows. There is no support for externally
managed python installations and virtual environments. These could be
added in the future.

Fixes #34095, #34547

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-12-16 09:20:37 +00:00
Mukilan Thiyagarajan
2f64dde623
Revert "mach: switch to uv for managing python venv (#34504)" (#34548)
This reverts commit 4103421ba5.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-12-10 03:43:50 +00:00
Mukilan Thiyagarajan
4103421ba5
mach: switch to uv for managing python venv (#34504)
This patch switches servo to use `uv` for both installing a pinned
Python version as well as installing the dependency packages using
`uv`'s pip compatible interface. It also introduces a new 'composite'
GitHub action to setup python in the different CI workflows.

There is no support for externally managed python installations and
virtual environments. These could be added in the future.

Fixes #34095

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-12-09 14:52:06 +00:00
Delan Azabani
2322b22a6b
CI: temporarily disable self-hosted runners for nightly.yml (#33834)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-10-14 13:13:10 +00:00
Delan Azabani
25bce9f6b9
CI: fix self-hosted runner timeout detection (#33471)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-09-17 14:45:09 +00:00
Delan Azabani
9cfbaf92e5
CI: fix self-hosted runners in try-label builds (#33373)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-09-09 04:43:25 +00:00
Delan Azabani
8bb739b818
CI: use self-hosted runners for Linux build jobs (#33321)
* CI: use self-hosted runners for Linux build jobs

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Set ccache and incremental env variables when not self-hosted

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Force GitHub-hosted runner when in upload mode

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Revert s/python/python3/ now that our image has python

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Remove stray comment in timeout workflow

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Update description of runner-select job

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Apply suggestions from code review

Address couple minor naming / formatting nits

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-09-08 15:06:44 +00:00
Delan Azabani
642c25d9a7
CI: use monitor API for self-hosted runners (#33315)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-09-04 17:11:32 +00:00
Samson
abe532dd2f
CI: Force github hosted runners and remove concurrency on select-runner job (#33308)
temporary fix for #33276

Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
2024-09-04 08:23:40 +00:00
Delan Azabani
4b96d8ef36
CI: label self-hosted runners with run id to aid debugging (#33283)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-09-03 07:55:55 +00:00
Delan Azabani
658df79d88
CI: use self-hosted runners for Windows build jobs (#33081)
* CI: use self-hosted Windows runners in main workflow

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Fix a couple of robustness issues by generating a unique build id

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Work around needs-context expressions being busted in concurrency

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* CI: use self-hosted Windows runners in try and try-label workflows

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Rename windows workflow back for simplicity

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Clarify why the copy resources step is for GitHub-hosted jobs only

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Fix cancelled status problem by dispatching instead of calling

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Tweak retry strategy to avoid hitting REST API rate limits

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Update dispatch-workflow.yml accordingly

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Rework to use simpler approach with runner labels

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Use org-scoped self-hosted runners

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Don’t run runner-timeout job when GitHub-hosted runner is selected

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Downgrade to Python 3.10

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Avoid failing when RUNNER_API_TOKEN is missing (such as in forks)

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Fix undefined needs output when RUNNER_API_TOKEN is missing

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Reset working tree, in case it was dirty in the runner image

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Clearer runner assignment timeout jobs that fail and offer help

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Fix some other sources of incremental build breakage (but not PATH)

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Log reasons why we fall back to GitHub-hosted runners

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Allow self-hosted runners to be disabled via repository variable

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Always install crown, even on self-hosted runners

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Rename incremental build debugging step

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Clean up job friendly names

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Reduce fetch depth, now that this job no longer lints

Signed-off-by: Delan Azabani <dazabani@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-08-27 11:04:42 +00:00
Samson
ebdae6094e
CI: Add separate Lint&Tidy check and remove test-tidy from linux (#33150)
* Create separate Lint&Tidy check

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Remove quick-check as it's not longer relevant

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Add clippy to rust-toolchain

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* fix try parser test expectations

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* use lint in result

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Lint & Tidy -> Lint

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-08-23 08:58:12 +00:00
Mukilan Thiyagarajan
b243457ccc
ci: fix security issue in try job workflow (#32724)
This [issue][1] was reported by GitHub user @RedYetiDev via the Security
Advisory reporting mechanism on GitHub. The fix is also based on their
proposed solution.

The issue is that `refs/pull/{pr_number}/head` points to the latest
commit of a PR and so it could be different than the commit that was
reviewed when the try label was applied. The fix is to use the exact commit
sha at the point when the try job is triggered, which is available in
the `github` context as  `github.event.pull_request.head.sha`.

[1]: https://github.com/servo/servo/security/advisories/GHSA-fxqr-xgh8-3577

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com>
2024-07-08 10:08:23 +00:00
Jonathan Schwender
26bbfe9b55
Make crown optional (#32494)
* Make `crown` optional

Add the optional `--use-crown` flag to mach

* --use-crown for all platforms in CI

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Add documentation for `--use-crown`

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Update python/servo/command_base.py

Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Raise Error if CARGO_BUILD_RUSTC conflicts with --use-crown

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* add dummy RUSTFLAG to trigger re-checking

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2024-06-24 11:46:43 +00:00
Jonathan Schwender
1d2949f2b3
CI: Cache cargo-deny (#32543)
Use the `cargo-install` action to cache the cargo-deny output.
`cargo-deny` is currently unconditionally installed during bootstrap,
and takes around 2 minutes to install, so caching should give a
significant speedup

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-06-18 09:55:13 +00:00
Martin Robinson
764021751d
Add a workaround for actions/runner-images#10001 (#32456)
Until GitHub updates their runner images, this workaround should allow
the bots to work.
2024-06-07 14:36:04 +00:00
Samson
7039cccbd9
Set RUSTUP_WINDOWS_PATH_ADD_BIN in CI (#32301) 2024-05-16 16:40:44 +00:00
Gae24
509b858f15
mach: Remove unused --angle command line argument (#32050)
* removed unused angle command line argument

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* Removed argument from smoketest in Windows workflows

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2024-04-12 08:06:09 +00:00
Oriol Brufau
ea62a5e24f
Use --locked when building in CI (#31720)
Thus the build will immediately fail if a PR modifies Cargo.toml but
forgets to include the changes in Cargo.lock

This was previously checked by lockfile_changed.sh after building
normally, wasting resources.
2024-03-21 11:54:02 +00:00
Martin Robinson
d076b118c4 ci: Fix packaging step on Windows
WiX doesn't seem to be on the path any longer, so it must be added
manually as a temoprary workaround.
2024-03-07 11:07:54 +01:00
Samson
cd92a17c5e
ci: Update remaining GitHub actions to versions using Node.js 20 (#31450)
* Update sccache action

* Update baptiste0928/cargo-install

* Update github-script

* Update actions/setup-java

* Update nick-fields/retry
2024-02-29 08:24:38 +00:00
Martin Robinson
2946fa83ec
ci: Switch to actions/checkout@v4 (#31379)
This change also removes the use of `fetch-depth: 2` where it isn't
necessary. These were likely copy-and-pasted from other workflows.
2024-02-19 16:23:53 +00:00
Martin Robinson
1cc546c4fc
ci: Switch to version 4 of GitHub artifact actions (#31357)
* ci: Switch to version 4 of GitHub artifact actions

This switches to version 4 of the GitHub artifact actions, which
requires producing a single artifact per job and adding merge steps. In
addition, the names of artifacts are standardized:

- Build: <profile>-binary-<platform>
- Full WPT results (only on failure): wpt-full-logs-<platform>-<layout>
- Filtered WPT results (only on failure): wpt-filtered-logs-<platform>-<layout>

* Delete merged build timings and combine with Result job

* Always archives logs even after test failures

* Correct the name of the log files for WPT import
2024-02-17 16:59:43 +00:00
Samson
b10875956a
Delete result job in leaf workflows (#31191) 2024-01-27 00:07:04 +00:00
Samson
a5c512808a
Matrix in CI and mach try with presets (#31141)
* Matrix in CI and mach try with presets

* small fixups

* names in trigger try run comment

* let

* f

* rename step

* fix running try on win

* fix try branch full

* py3.10

* typo

* Make unit-tests default to false, except in basic os runs

Fixes https://github.com/servo/servo/issues/31174

* make full use linux-wpt & linux-wpt also include unit-tests

so full is equal to main workflow

* Stylish fixes

* cmp json as dict
2024-01-26 12:29:37 +00:00
Martin Robinson
dc2df7b027
build: Add support for Visual Studio 2022 and VC143 DLLs (#31148)
* build: Add support for Visual Studio 2022 and VC143 DLLs

This change adds supports fot Visual Studio 2022 and the VC143 (current)
version of the Visual Studio CRT. In addition, it reworks the way that
Visual Studio is found, returning all installations in a generator,
separately finding it via vswhere.exe, searching paths, and via
environment variables.

All of these installations are searched for the DLLs with highest
priority given to the highest version of MS Visual Studio installed. The
hope is that this makes the process more robust and properly handles
having multiple versions installed, but only one with the correct
runtime DLLs.

* Update based on review comments

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-01-23 11:04:01 +00:00
Martin Robinson
0d240b8713
deps: Raise the Python requirement to 3.10 (#31088)
This will allow us to use the pip's new dependency resolver.
2024-01-15 11:56:15 +00:00
Martin Robinson
3c1ab65458
crown: Add a cargo config.toml file (#31090)
This makes it more foolproof to install crown from inside the Servo
directory, because the root Servo config.toml overrides the rustc to use
crown (an obvious circular dependency).
2024-01-15 11:18:48 +00:00
Martin Robinson
f2882879d8
Fix the try build when pushing to branches (#30903)
Make it so that all try builds go through try.yml and pass
workflow_call arguments as expected to subsequent workflows.

Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
2023-12-21 15:12:54 +00:00
Corey Farwell
117d59d393
Replace virtualenv with Python's built-in venv (#30377)
* Replace virtualenv with Python's built-in venv.

* Apply Delan's suggestions and make a couple small fixes

- Fix a tidy warning about directories that don't exist
- Use shutil instead of the redundant get_exec_path
- Miscellaneous cleanups

* Fix typo in environment variable

* fix bug where pip still tries to the wrong site-packages

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Delan Azabani <dazabani@igalia.com>
2023-12-07 08:18:30 +00:00
Samson
604979e367
Replace script_plugins with a clippy like rustc driver (named crown) (#30508)
* Remove script_plugins

* Use crown instead of script_plugins

* crown_is_not_used

* Use crown in command base

* bootstrap crown

* tidy happy

* disable sccache

* Bring crown in tree

* Install crown from tree

* fix windows ci

* fix warning

* fix mac

libscript_plugins.dylib is not available anymore

* Update components/script/lib.rs

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update for nightly-2023-03-18

Mostly just based off https://github.com/servo/servo/pull/30630

* Always install crown

it's slow only when there is new version

* Run crown test with `mach test-unit`

* Small fixups; better trace_in_no_trace tests

* Better doc

* crown in config.toml

* Fix tidy for real

* no sccache on rustc_wrapper

* document rustc overrides

* fixup of compiletest

* Make a few minor comment adjustments

* Fix a typo in python/servo/platform/base.py

Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>

* Proper test types

* Ignore tidy on crown/tests

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2023-12-01 15:50:52 +00:00
Samson
96d37d3785
Add --production option to mach (#30707)
* --prod(uction) mach argument

* Use profile in workflows instead of production

* Use profiles in unit tests

* ups

* Build (${{ inputs.profile }})
2023-11-10 10:38:33 +00:00
Martin Robinson
fe7bdb7e4b
Remove support for triggering try from comments (#30712)
Triggering from labels means that we have less actions running and less
false job failures spamming project members. Plus, we have more
flexibility with labels rather than the backward compatibility we have
set up for bors comments.
2023-11-09 10:31:49 +00:00
Samson
c2af95d2fc
Unit tests are becoming more flaky, so retry them (#30682)
* Unit tests are becoming more flaky, so retry them

* Timeouts everywhere

* Limit windows test threads for unit tests
2023-11-02 15:23:04 +00:00