Commit graph

364 commits

Author SHA1 Message Date
bors-servo
083a96a8d7
Auto merge of #29630 - sagudev:ci-win-gstream, r=jdm
Use GStreamer in Windows workflow

I accidental came across https://github.com/servo/servo/projects/26 and can't helped but to fix one. (Few were already fixed but not closed).

Test run: https://github.com/sagudev/servo/actions/runs/4687138840/jobs/8306052042

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #28277

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it is only CI

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-04-13 15:10:16 +02:00
sagudev
49e498924f Use GStreamer in Windows workflow 2023-04-13 12:17:03 +02:00
bors-servo
7ab48556b0
Auto merge of #29623 - mrobinson:wpt-import-one-week, r=mukilan
Import WPT tests every week instead of every day

We often have multiple imports stacked up which makes it more confusing to land each one. In addition, giving a week to do the import will give us more margin to triage failing tests and hopefully to be able to use intermittent expectations for flaky tests.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because this just change the frequency of a scheduled action.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-04-13 07:56:05 +02:00
bors-servo
4a9b80382c
Auto merge of #29621 - mukilan:upload-nightly-to-gh-releases, r=mrobinson
Upload nightly builds to Github Releases

This change extends the `mach upload-nightly` command to publish the nightly builds for all platforms as GH Release assets.

The GH releases are made on a separate repository so that we can persist older nightly builds without having to accumulate git tags for them.

Example releases on a fork can be seen here: https://github.com/mukilan/servo-nightly-builds/releases/
Assets of the *latest* nightly releases will available at a stable url e.g for linux
`https://github.com/mukilan/servo-nightly-builds/releases/latest/download/servo-latest.tar.gz`

Some design tradeoffs in this approach are:
1. To allow the 'latest' link from servo.org to remain stable, the release assets are named 'servo-latest.{ext}' instead of containing the release tag/date.
2. The release is created as draft and published atomically when all platforms have been built successfully. This allows us to link to the 'latest' alias from servo.org while gauranteeing that it contains builds for all platforms. The other option here would be to have code in servo.org UI that uses GH API to find the most recent release with a successful build for a given platform.
3. The tags in the nightly repo are all based on the same commit that has no relation to servo code base.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it extends the nightly CI job
2023-04-12 18:16:59 +02:00
Mukilan Thiyagarajan
f1ba708cf7 Upload nightly builds to Github Releases
This change extends the `mach upload-nightly` command to
publish the nightly builds for all platforms as GH Release
assets.

The GH releases are made on a separate repository so
that we can persist older nightly builds without having
to accumulate git tags for them.

Some design tradeoffs in this approach are:
1. To allow the 'latest' link from servo.org to remain stable,
the release assets are named 'servo-latest.{ext}' instead of
containing the release tag/date.
2. The release is created as draft and published atomically
when all platforms have been built successfully. This allows
us to link to the 'latest' alias from servo.org while
gauranteeing that it contains builds for all platforms.
The other option here would be to have code in servo.org UI
that uses GH API to find the most recent release with a
successful build for a given platform.
3. The tags in the nightly repo are all based on the same
commit that has no relation to servo code base.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-04-12 21:02:07 +05:30
Martin Robinson
728021d69e Import WPT tests every week instead of every day
We often have multiple imports stacked up which makes it more confusing
to land each one. In addition, giving a week to do the import will give
us more margin to triage failing tests and hopefully to be able to use
intermittent expectations for flaky tests.
2023-04-12 15:14:03 +02:00
Martin Robinson
cf4160b6ed Reorganize the workflow files for pull requests a little.
Split out the quick check GitHub action (which is really only meant for
forks). This prevents the quick check from running twice for PRs from
branches on the upstream repository. Also rename the WPT export action
file to make it clearer that it runs for pull requests.
2023-04-11 20:10:11 +02:00
bors-servo
15de7b99b7
Auto merge of #29601 - servo:debug-wpt-update-script, r=delan
Fix the WPT export script

- Have the WPT exporter script use the WPT_SYNC_TOKEN for checking out
  wpt.
- Make sure the local WPT repository is unshallow when pushing.
- When searching for existing PRs use the main GitHub search API,
  as the pull request search does not seem to properly process
  the "head" parameter.
- When deleting branches in the downstream WPT repository, use
  the full URL to avoid trying to modify the upstream repository.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes OR

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-04-11 16:53:58 +02:00
Martin Robinson
f4b5b9f85f Fix the WPT export script
- Have the WPT exporter script use the WPT_SYNC_TOKEN for checking out
  wpt.
- Make sure the local WPT repository is unshallow when pushing.
- When searching for existing PRs use the main GitHub search API,
  as the pull request search does not seem to properly process
  the "head" parameter.
- When deleting branches in the downstream WPT repository, use
  the full URL to avoid trying to modify the upstream repository.
2023-04-11 13:37:50 +02:00
Mukilan Thiyagarajan
757666fd4b Pass S3 secrets for nightly builds and fix windows build
Secrets need to be passed to reusable workflows either
by name or by `secrets: inherit` from the caller workflow.
The latter allows accessing all secrets in scope.

Windows build has a bug where the upload-nightly command is
not run from the correct working directory.

Closes #29614

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-04-11 14:02:41 +05:30
Martin Robinson
bc3abf9953 Remove more Taskcluster and Treeherder integration
Servo no longer uses Taskcluster and Treeherder, so this change removes
script references to those services and support files.
2023-04-10 23:04:17 +02:00
sagudev
2f3364a291 Remove if guard in linux workflow 2023-04-06 20:05:36 +02:00
sagudev
76e9c68ac7 Nightly workflow using platform workflows 2023-04-06 18:43:33 +02:00
sagudev
ec5b646b50 Package in platform workflows 2023-04-06 16:19:08 +02:00
sagudev
7d0865c12b WPT agregated results also as github check 2023-04-03 09:13:04 +02:00
sagudev
91de41a70a Sccache in actions (linux & mac) 2023-04-02 07:18:51 +02:00
sagudev
8959c5754d WPT sync using abstract workflows 2023-03-30 15:49:46 +02:00
sagudev
1a84fcc9e1 Abstract platform-specific workflows into separate files 2023-03-30 15:49:45 +02:00
bors-servo
16727661e5
Auto merge of #29538 - mrobinson:run-layout-2020-build-in-main-workflow, r=jdm
Run the Layout 2020 build in the main workflow

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are an infrastructure change.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-03-25 14:27:03 +01:00
Martin Robinson
95bfad3ac5 Add Layout 2020 support to nightly WPT update 2023-03-24 18:33:07 +01:00
Martin Robinson
4fa2b7c822 Run the Layout 2020 build in the main workflow 2023-03-23 10:55:58 +01:00
Josh Matthews
eb2bc41d8b
Merge branch 'master' into test-tidy-before-landing 2023-03-22 23:11:06 -04:00
Martin Robinson
ec9cbeefd8 Merge forbidden panic check into test-tidy
This cleans up the GitHub actions yaml a bit and ensures that developers
are running this check locally before submitting changes. In addition,
it allows adding tests for this check. Finally, this change fixes the
tidy tests by upgrading voluptuous for Python 3.10 as well as by
reverting an inadvertent change for NixOS compatibility on one of the
dummy testing files.
2023-03-22 15:37:56 +01:00
bors-servo
259ccff491
Auto merge of #29519 - mrobinson:add-layout-2020-build-to-quick-check, r=jdm
Add the Layout 2020 build to the quick check

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because this is an infrastructure change.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-03-22 13:25:40 +01:00
Martin Robinson
e7a4aeb14c Add the Layout 2020 build to the quick check 2023-03-21 15:19:04 +01:00
bors-servo
886032fc74
Auto merge of #29431 - sagudev:mtry, r=jdm
Add try command to mach & try build partitioned

Adds `./mach try` command that enables anybody to easily test their changes without opening PR and requesting try from bors-servo, by force pushing HEAD to appropriate branch. Command accepts branches names to select only partial runs of CI (same like bors try command). So if you only want to test mac build (that would be `@bors-servo try=mac`) you run `./mach try mac`. If no job is specified, try branch is used.

As partitioned CI jobs were not working after migration to GitHub Actions I remade them by using if guards.
Also WPT jobs were failing due to empty `INTERMITTENT_TRACKER_DASHBOARD_SECRET` on my fork, so I added additional check to prevent failed run.

And that concludes my work on #29379 🎉

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #29379

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's CI

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-03-21 15:05:25 +01:00
Martin Robinson
4caa3c1aec Run test-tidy when landing changes
Currently `test-tidy` only runs during the quick check. This can mean
that when a change is approved, the quick check can be skipped and a
change can land without `test-tidy` ever being run on it. This change
adds a `test-tidy` run to the main CI run to avoid this happening.
2023-03-21 15:04:08 +01:00
sagudev
332eeb3bbe mach try & partitioned try jobs 2023-03-21 07:26:27 +01:00
Mukilan Thiyagarajan
1b310224a5 Package and upload linux w/ layout-2020 engine.
The layout-2020 variant will be consumed by the
internal WPT trend [dashboard][1] only and won't
be made available on servo.org.

This change will be removed once the layout
engine we will use going forward is finalized.

[1]: https://servo.github.io/internal-wpt-dashboard/

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-03-10 15:21:02 +05:30
Samson
51e9428c17
Do not run quick check on dependabot branches 2023-03-01 18:53:05 +01:00
Samson
158345f985
Prevent quick check from running on master branch 2023-03-01 18:47:15 +01:00
sagudev
d57fbcfc9c Smoketest in Linux CI 2023-02-26 15:29:45 +01:00
sagudev
29ddfafb7a Quick check that is run on PR and on forks push 2023-02-26 15:24:26 +01:00
bors-servo
8c1703219d
Auto merge of #29383 - sagudev:ci, r=mrobinson
Do not run specialized workflow on forks

Per #29379 to make GitHub actions more fork-friendly.

I have not decided yet on how to handle main workflow, as I started to like my `git push origin HEAD:try --force` workflow, but using CI on all forks branches would also help enforce the [rule](https://github.com/servo/servo/blob/master/CONTRIBUTING.md#pull-request-checklist):
> Commits should be as small as possible, while ensuring that each commit is correct independently (i.e., each commit should compile and pass tests).

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes partially fix #29379

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it is only CI stuff

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-02-24 17:48:48 +01:00
sagudev
4a7075b0db Do not run specialized workflow on forks 2023-02-24 17:46:21 +01:00
Delan Azabani
43c4e7f12c CI: pass github context to linux-wpt job in main workflow 2023-02-21 14:07:27 +08:00
Martin Robinson
2c719e2e92 intermittent dashboard: Actually send results to the dashboard
This change adds the secret to the environment, which should trigger the
filtering intermittents script to actually upload new results to the
intermittent dashboard instead of simply querying.
2023-02-20 12:52:34 +01:00
Martin Robinson
5c9156e3ee Aggregate unexpected results into logs
This makes it easier to run `update-wpt` based on results from the bots.
A future version of this could aggregate all unexpected results that
were not filtered as intermittents.
2023-02-14 15:44:34 +01:00
Martin Robinson
d2a66fef0c Output test results as a GitHub comment
After filtering intermittents, output the results as JSON. Update the
GitHub workflow to aggregate this JSON data into an artifact and use the
aggregated data to generate a GitHub comment with details about the try
run. The idea here is that this comment will make it easier to track
intermittent tests and notice when a change affects a test marked as
intermittent -- either causing it to permanently fail or fixing it.
2023-02-04 17:11:02 +01:00
bors-servo
126f8f48e4
Auto merge of #29323 - mrobinson:aggregate-logs, r=jdm
ci: Produce a single WPT log artifact

GitHub supports adding files to an artifact in parallel, as long as the filenames are unique. This makes it easier to download build results when more than a single builder fails.

<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because this is a small change to the CI.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-02-03 10:59:57 +01:00
Martin Robinson
cc1ccf8aff ci: Produce a single WPT log artifact
GitHub supports adding files to an artifact in parallel, as long as the
filenames are unique. This makes it easier to download build results
when more than a single builder fails.
2023-02-02 15:54:04 +01:00
Martin Robinson
37e0b6feb8 Run test-tidy sooner for pull requests
This lets the builder fail sooner when there is an issue
with the style.
2023-02-02 15:42:31 +01:00
bors-servo
4d5a804d03
Auto merge of #29294 - servo:integrate-filter-intermittents, r=delan
Integrate filter-intermittents into test-wpt

This change integrates the `filter-intermittents` command into `test-wpt`. This is in preparation for future work on tracking intermittent failures. This change also:
- Removes `ServoJsonFormatter` and replaces it with a generic WPT log handler which tracks unexpected results.
- The intermittent filter is now controlled via environment variables and the GitHub version requires a token instead of credentials.
- Output is saved to a single file and is always text.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are changes to build infrastructure.
2023-01-27 15:43:47 +01:00
bors-servo
4f355f5877
Auto merge of #29299 - mrobinson:fix-upstream-wpt-changes, r=jdm
Fix upstreaming of WPT changes

The GitHub Action needs access to Servo repository secrets, so switch to using the 'pull_request_target' event. Since these PRs have more complete access to the Servo repository, do not execute the version of the upstream script that comes with the PR. Instead, simply fetch the changes. To make this work, the script no longer expects the PR commit to be checked out, merely that they exist in the repository somewhere.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes
2023-01-26 03:01:03 +01:00
Mukilan Thiyagarajan
8f60df4fdc Remove UWP/HoloLens CI & Nightly jobs.
Servo [TSC has decided][1] to halt support for UWP
platform. This PR only removes the CI & Nightly jobs
and doesn't modify any code related to UWP support.

[1]: https://github.com/servo/project/blob/master/governance/tsc/tsc-2023-01-23.md#supported-platforms

Signed-off-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2023-01-25 22:04:57 +05:30
Martin Robinson
a18baf6719 Fix upstreaming of WPT changes
The GitHub Action needs access to Servo repository secrets, so switch to
using the 'pull_request_target' event. Since these PRs have more
complete access to the Servo repository, do not execute the version of
the upstream script that comes with the PR. Instead, simply fetch the
changes. To make this work, the script no longer expects the PR commit
to be checked out, merely that they exist in the repository somewhere.
2023-01-25 12:17:59 +01:00
bors-servo
cc76ec3373
Auto merge of #29295 - mukilan:fix-win-msvc-nighly, r=jdm
Revert LLVM downgrade & fix nighly build

<!-- Please describe your changes on the following line: -->
Windows MSCV nightly builds have been failing
since Jan 18. The failure is similar to the
one @delan identified & fixed, where CI build started
to fail after the version of LLVM included in
Github Actions runner images was bumped from
14 to 15.

As discussed on Zulip, we have existing support
in ./mach bootstrap to download the LLVM binaries
from our s3 bucket. Following the documented
[process][1], new LLVM 15.0.5 binaries have now been
uploaded to S3.

I've validated that the windows msvc build no longer fails:
https://github.com/mukilan/servo/actions/runs/3996453221/jobs/6856528077

[1]: https://github.com/servo/servo/wiki/Upgrading-the-windows-LLVM-binaries

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #29269  (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they modify only CI steps that have been validated by manual run.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-01-25 00:47:59 +01:00
Mukilan Thiyagarajan
ed2974a280 Revert "Auto merge of #29270 - delan:fix-windows-builds, r=<try>"
This reverts commit 7a885032e6, reversing
changes made to f70857906d.

Since we have now uploaded the LLVM 15.0.5
binaries to S3 so that `mach boostrap` can use
them directly, we no longer need to downgrade the
LLVM in GitHub runner image.
2023-01-24 20:47:28 +05:30
Martin Robinson
d294a71397 Integrate filter-intermittents into test-wpt
This change integrates the filter-intermittents command into test-wpt.
This is in preparation for future work on tracking intermittent
failures. This change also:
- Removes the SrvoJson logger and replaces it with a generic WPT log
  handler which tracks unexpected results.
- The intermittent filter is now controlled via environment variables
  and the GitHub version requires a token instead of credentials.
- Output is saved to a single file and is always text.
2023-01-24 15:10:09 +01:00
cybai
9b9a7aea02 Approve PR automatically after WPT sync successfully 2023-01-24 11:22:23 +09:00