Commit graph

106 commits

Author SHA1 Message Date
Adam Gastineau 01ba528904
fix: Prepare CI to properly run Electron on ubuntu-latest (24.04) (#34238) 2025-01-09 06:34:59 -08:00
Max Schmitt 335d31bf65
devops: remove GHA todo in primary workflow for itest (#31871)
This TODO got added during our GHA refactoring a while ago, where I
thought it might make sense to run our itests in `bash`. We didn't do it
before the refactoring either. It seems good to keep them running in
`pwsh` instead, so lets just remove the TODO.

Investigation notes: Running in `bash` on Windows via `Git Bash` seems
like doing a lot of magic, especially with path handling. Things
[like](a02ed38e60/tests/installation/registry.ts (L143))
this break then, since `tar` even when using `Git Bash` [doesn't accept
a Windows
path](https://sourceforge.net/p/mingw/mailman/mingw-users/thread/54CE104A.7060108@hccnet.nl/).

Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-07-26 11:04:51 +02:00
Max Schmitt 4adf184e5a
devops: remove Node.js 16 bots (#30683) 2024-05-06 22:52:31 +00:00
Max Schmitt c7e7a7ef56
devops: add Node.js 22 bots (#30644) 2024-05-06 19:58:44 +00:00
Max Schmitt 8a91ef1f55
devops: refactor GitHub Actions workflows (#30524) 2024-05-01 18:44:15 +00:00
Dmitry Gozman 086ea79c25
chore: remove checkCoverage script (#30552)
We do not benefit from it for many years already.
2024-04-25 14:00:14 -07:00
Max Schmitt 629829816b
chore: move azure/login step to the end of the workflows (#30441) 2024-04-19 22:00:13 +02:00
Max Schmitt ed0e1909e5
devops: change auth mode for flakiness/docker/driver uploads (#30405) 2024-04-19 20:36:15 +02:00
Max Schmitt 4a67437704
devops(gha): move from always() to !cancelled() (#30060)
**Investigation:**

- According to
[here](https://github.com/microsoft/playwright/actions/runs/8351676198),
the job got cancelled, because someone force-pushed and another commit
took priority.
- We have `if: always()` for uploading the blobs, even if they are
cancelled. We expect, that the task before (`npx playwright test`)
finished writing the blob, but it didn't - cancelled in between. We
still upload - a broken one.
- We download the broken zip and it breaks from there on.

Proposed change: Instead of uploading always, upload if it did not get
cancelled.

Quoting from the GitHub Actions docs about `always()`:

> Warning: Avoid using always for any task that could suffer from a
critical failure, for example: getting sources, otherwise the workflow
may hang until it times out. If you want to run a job or step regardless
of its success or failure, use the recommended alternative: if: `${{
!cancelled() }}`

This is phase 1/2 where it changes our code to use this new condition.
The actual roll-out happens once it works for us.

Relates https://github.com/microsoft/playwright/issues/29451
2024-03-22 19:25:13 +01:00
Pavel Feldman ef924c14e7
chore: do not use project id in telereporter (#29776) 2024-03-01 21:44:08 -08:00
Max Schmitt 1db4e2effb
devops: bump GitHub Actions workflow actions (#29219)
Fixes:

<img width="2186" alt="image"
src="https://github.com/microsoft/playwright/assets/17984549/e75b4319-a8d9-4784-8357-83611f2671ae">
2024-01-29 19:22:44 +01:00
Yury Semikhatsky 6c2c777cae
devops: migrate to download/upload-artifact@v4 (#28850)
`actions/upload-artifact@v4` comes with the following [breaking
change](https://github.com/actions/upload-artifact?tab=readme-ov-file#breaking-changes):
"Due to how Artifacts are created in this new version, it is no longer
possible to upload to the same named Artifact multiple times. You must
either split the uploads into multiple Artifacts with different names,
or only upload once. Otherwise you will encounter an error."

Due to that we cannot copy multiple blob report folders into the same
artifact name and rely on the action to merge them. Instead, as
suggested by their migration guide, we upload each blob report into a
uniquely named artifact with prefix `blob-report-` and then download all
of them into same directory.

This version change also affects how we store pull_request_number.txt
into an artifact. Previously we relied on the fact that uploading
artifact with the same name would silently override existing one, but
now it's an error. To overcome that, we upload PR number file into
uniquely named artifacts `pull-request-*` and later extract them into
same location with `unzip -n` which will never override existing file,
so we end up with single `pull_request_number.txt`.

Reference #28800
2024-01-04 09:13:55 -08:00
Yury Semikhatsky e31e5b1b7c
fix: use blob fileName as is without adding shard suffix (#28634)
Fixes https://github.com/microsoft/playwright/issues/27284
2023-12-13 18:47:13 -08:00
Yury Semikhatsky 411abdb752
feat: add fileName option to blob reporter (#28525)
Reference https://github.com/microsoft/playwright/issues/27284
2023-12-06 20:44:06 -08:00
Max Schmitt 0efa4a90cc
devops: Node.js 16 -> Node.js 18 (#27467)
As per
https://github.com/microsoft/playwright-internal/blob/main/INFRASTRUCTURE.md.


Fixes https://github.com/microsoft/playwright/issues/27148.
2023-10-05 23:08:43 +00:00
Dmitry Gozman dfc75a1e1a
test: speed up installation tests by not isolating browser unless required (#27370) 2023-10-02 11:26:08 -07:00
Max Schmitt 5811d65b9d
Revert "chore: pin node to 20.5 to work around https://github.com/nod… (#26979)
…ejs/node/issues/49497 (#26921)"

This reverts commit 874e285adf.
2023-09-11 22:33:09 +02:00
Dmitry Gozman e6d9b2a818
test: add installation tests for yarn and pnpm (#26937) 2023-09-08 10:06:31 -07:00
Pavel Feldman 874e285adf
chore: pin node to 20.5 to work around https://github.com/nodejs/node/issues/49497 (#26921)
Works around https://github.com/nodejs/node/issues/49497
2023-09-06 16:38:19 -07:00
Yury Semikhatsky 39a6b23309
devops: create blob reports for all "tests 1" (#26694) 2023-08-24 16:06:41 -07:00
Yury Semikhatsky c344fce7b6
devops: simplify upload-blob-report action (#26548) 2023-08-18 12:16:26 -07:00
Dmitry Gozman 27c15b705d
fix(blob): replace projectSuffix with reportName (#25017)
Always ensure unique project/test ids across blobs.
Show `reportName` as a label in the html report.

References #24451.
2023-08-07 13:38:09 -07:00
Yury Semikhatsky 4494137814
devops: unique report names (#24596) 2023-08-03 15:34:40 -07:00
Dmitry Gozman d92fe16b76
fix(blob report): default location relative to package.json (#24481)
Also:
- remove `blob-report` directory at the start;
- markdown's `report.md` next to package.json;
- use default location in playwright's workflows.

References #24451.
2023-07-28 15:49:31 -07:00
Yury Semikhatsky e036603aa3
devops: upload blob report only for some bots in tests 2 (#24353)
For now merge-reports chokes on that many events and we end up with no
report at all.
2023-07-26 12:33:14 -07:00
Yury Semikhatsky 8b454cb3c3
devops: merge reports fall pw tests in tests 2 (#24309) 2023-07-19 13:01:52 -07:00
Yury Semikhatsky d92db9a513
devops: always create blob report on CI, write PR number within action (#24241) 2023-07-14 15:10:29 -07:00
Yury Semikhatsky 1b1cf87e0a
devops: add upload report action (#24222)
* Fix report downloading from Azure (reports are now zipped)
* Extracted upload logic into an action
* Extracted PR number file generation into its own job
2023-07-14 08:21:15 -07:00
Yury Semikhatsky 51b8f609fb
Revert "devops: zip blob report artifact before uploading (#23667)" (#23687)
This reverts commit a1cdae6bff.

The problem with this approach is that each job overwrites the zip
artifact whereas previously it was merging all reports in the same
directory. We are going to zip .jsonl files instead.
2023-06-13 12:36:04 -07:00
Yury Semikhatsky a1cdae6bff
devops: zip blob report artifact before uploading (#23667)
Compressed size for `tests 1` blob report is 19Mb whil uncompressed one
is 211Mb. Also according to [GitHub
policy](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
) it is uncompressed size that is used for billing:

"Artifacts are uploaded during a workflow run, and you can view an
artifact's name and size in the UI. When an artifact is downloaded using
the GitHub UI, all files that were individually uploaded as part of the
artifact get zipped together into a single file. This means that billing
is calculated based on the size of the uploaded artifact and not the
size of the zip file."
2023-06-12 14:03:22 -07:00
Yury Semikhatsky 2719f408b2
fix(devops): pass pr number in a file (#23456)
For some reason pull_requests field on workflow_run is empty for pull
requests created from branches in forked repositories, see
https://github.com/orgs/community/discussions/25220. As a workaround we
store triggering pull request number in a file.
2023-06-01 17:12:58 -07:00
Yury Semikhatsky 6cbcf18c48
fix(devops): path to blob report (#23444) 2023-06-01 10:17:34 -07:00
Yury Semikhatsky 972ad89af2
feat(devops): publish merged reports to pull requests (#23419)
* Moved report merging and publishing logic into create_test_report.yml
shared between all workflows
* Merged reports are now published for try jobs on pull requests too. In
order to achieve that the logic had to be extracted into a separate
workflow triggered by
[workflow_run](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run),
this way it can access secrets even if the original workflow was not
able to.
* The blob report data flow is different depending on whether the
workflow is triggered by a pull request or a push:
- For `pull_request` the workflow doesn't have access to the secrets it
uploads the blob report to the GitHub
artifact storage. Later on the merge workflow uploads that blob report
to Azure blob storage.
- Workflows triggered by `push` event can read secrets. They upload blob
report directly to Azure blob storage
and the merge workflow downloads the report from there rather than from
GitHub artifacts.
2023-06-01 08:40:43 -07:00
Yury Semikhatsky ce9892c694
fix(devops): azure conection string var name (#23416) 2023-05-31 16:54:44 -07:00
Max Schmitt 92d650c317
devops: add missing workflow permission (#23413) 2023-06-01 01:19:23 +02:00
Yury Semikhatsky 90aa378e8f
chore: extract batch download action (#23410) 2023-05-31 16:07:29 -07:00
Max Schmitt 40581ed906
devops: post merged test results comment as GitHub Status Check (#23409) 2023-06-01 00:29:57 +02:00
Yury Semikhatsky 38c89df330
chore: replace "blob download-batch" with a bash script (#23381)
`az storage blob download-batch` has been timing out over the last few
days, see upstream issue
https://github.com/Azure/azure-cli/issues/26567. Replacing it with a
simple bash script that discovers blobs with a given prefix and then
downloads one-by-one.
2023-05-30 16:46:37 -07:00
Max Schmitt 1f7223eb21
chore: test on Node.js 20 (#22651)
Fixes https://github.com/microsoft/playwright/issues/22582
2023-05-30 18:16:34 +02:00
Dmitry Gozman 4a9723df48
test: run extension tests in tests_primary (#23245) 2023-05-25 13:34:38 -07:00
Pavel Feldman 342bae6c59
chore: support esm loader on Node 20 (#23269) 2023-05-24 20:17:44 -07:00
Yury Semikhatsky 0a65a0b8e8
devops: post merged report URL to the PR (#23266)
Posting a comment to the PR using GITHUB_TOKEN requires elevated
permissions, see
https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
2023-05-24 14:43:36 -07:00
Yury Semikhatsky 10b7cb3979
chore: blob report project suffix (#23212) 2023-05-22 17:54:37 -07:00
Yury Semikhatsky c8a42af11f
devops: merged report for tracing tests (#23167) 2023-05-19 13:31:37 -07:00
Yury Semikhatsky 5004f908d9
devops: do not upload test-results artifacts (#23168) 2023-05-19 13:06:42 -07:00
Yury Semikhatsky 27403dcbb4
devops: remove explicit npm@8 installation (#23096)
Node 16+ comes with npm 8+ by default.
2023-05-17 14:32:38 -07:00
Yury Semikhatsky 0318b85216
chore: build playwright before running merge-reports (#23095) 2023-05-17 10:42:51 -07:00
Yury Semikhatsky 735b1290d4
chore: fix shard numbers for test_test_runner (#23091) 2023-05-17 09:42:40 -07:00
Yury Semikhatsky 52feff39b3
chore: run primary tests with blob reporter (#23076) 2023-05-17 09:10:31 -07:00
Pavel Feldman 70011c82f7
chore: unflake ui tests (3) (#22741) 2023-05-01 15:18:34 -07:00