Commit Graph

27 Commits

Author SHA1 Message Date
Andrey Lushnikov
a80fa08698
devops: move Firefox and WebKit checkouts to $HOME (#9485)
This moves default Firefox and WebKit checkouts to $HOME folder,
unless browser specific env variables are specified.

In other words:
- Firefox checkouts goes to `$HOME/firefox` unless there's a
  `$FF_CHECKOUT_PATH` that specifies a custom location.
- WebKit checkout goes to `$HOME/webkit` unless there's a
  `$WK_CHECKOUT_PATH` that specifies a custom location.

With this change, all build bots will now re-use checkouts
between builds, which should speed up compilation.
2021-10-14 10:20:06 -07:00
Andrey Lushnikov
b1b4d7b819
chore: quote all bash variables when used (#8066)
This way bash won't expand and post-process variable values in any way.
The changes are driven with
[`shellcheck`](https://github.com/koalaman/shellcheck)
2021-08-07 05:32:18 -07:00
Andrey Lushnikov
12d8c54e99
chore: swap firefox-stable and firefox (#6950)
With this patch:
- `//browser_patches/firefox` becomes firefox-stable
- `//browser_patches/firefox-stable` becomes firefox-beta

References #6817
2021-06-07 17:05:51 -07:00
Andrey Lushnikov
8a81b11d33
devops: replace WebKit for MacOS 10.14 build with a stub (#6886)
This patch will produce a stub build of WebKit for MacOS 10.14 with a
stub that errors out with a descriptive error.

References #6879
2021-06-03 15:36:31 -07:00
Andrey Lushnikov
1101268697
devops: fix //browser_patches/export.sh for deprecated-webkit (#6446) 2021-05-06 11:41:07 -07:00
Andrey Lushnikov
77c1020193
devops: re-use firefox checkout for firefox-stable (#6410)
Every patch to Firefox should also go to firefox-stable. This patch
starts re-using Firefox-beta checkout for firefox-stable, making
possible to easily rebaseline work atop of firefox-stable.

With this patch, working on a patch in Firefox is a 2-step
process:
1. work on a patch against Firefox-Beta
2. rebaseline your work atop of Firefox-Stable

Working on Firefox-Beta is as usual:
- setup an up-to-date firefox checkout:
  ```sh
  $ ./browser_patches/prepare_checkout.sh firefox
  ```
- create a new branch for your firefox work off `playwright-build`:
  ```sh
  $ cd ./browser_patches/firefox/checkout
  $ git checkout -b my-feature
  ```
- once work is done, export your branch:
  ```sh
  $ ./browser_patches/export.sh firefox
  ```

Rebaselining your work for Firefox-Stable takes advantage of a single
checkout:
- prepare a firefox-stable checkout:
  ```sh
  $ ./browser_patches/prepare_checkout.sh ff-stable
  ```
- rebaseline your feature branch atop of stable:
  ```sh
  $ cd ./browser_patches/firefox/checkout
  $ git checkout my-feature
  $ git rebase -i playwright-build
  ```
- make sure firefox-stable compiles:
  ```sh
  $ ./browser_patches/firefox-stable/build.sh
  ```
- export firefox-stable:
  ```sh
  $ ./browser_patches/export.sh ff-stable
  ```
2021-05-04 17:46:24 -07:00
Yury Semikhatsky
96cee43861
browser(webkit): roll to safari-612.1.11-branch (#6185) 2021-04-12 12:38:11 -07:00
Andrey Lushnikov
17c6406e6c
devops: add firefox-stable channel browser (#6173)
This adds a firefox-stable application to build on our bots.
This is basically a rebaselined version of 66541552d0

The firefox base revision is bb9bf7e886
Which is taken from `about://buildconfig` of a stable Firefox version
on Mac as of Apr 9, 2021.

References #5993
2021-04-09 22:13:19 -07:00
Andrey Lushnikov
13e2ef1d10
devops: suppport WK_CHECKOUT_PATH variable (#4617)
`WK_CHECKOUT_PATH` defines location of webkit checkout on the
file system. All browser-related scripts, like `prepare_checkout.sh` and
`export.sh` respect this environment variable on all platforms.
2020-12-07 08:42:20 -08:00
Andrey Lushnikov
6fe7d9c19f
devops: support FF_CHECKOUT_PATH to customize browser checkout (#4607)
**Preamble**

1. We're trying to setup a windows-based github self-hosted runner in the
  playwright-internal repo.
1. Commands on Windows are mandated to have total arguments length
  less then 32767 characters.
1. On windows, github self-hosted runner framework puts repository
checkout at `c:\w\playwright-internal\playwright-internal`
1. Our scripts create a checkout at
`c:\w\playwright-internal\playwright-internal\browser_patches\firefox\checkout`
1. One of the scripts in Firefox buildsystem tries to execute a command,
passing lots of absolute paths to various webidl's
1. The command fails due to restriction in (2)

**Problem**

Firefox build fails since checkout is deeply nested and hits max arg
size on windows.

**Solution**

This patch introduces a new variable `FF_CHECKOUT_PATH` that is
respected by all browser-related scripts. This way we'll be able
to checkout firefox to `c:\firefox` and avoid hitting long arguments
limit.
2020-12-04 18:46:20 -08:00
Andrey Lushnikov
b1b6d3f531
devops: add signature to BUILD_NUMBER to force rebaseline (#2810)
Currently, it might happen that two different patches clash for the
same build number for the browsers. In this case, authors might
not even know that they need to rebaseline.

This patch starts adding a second line to `BUILD_NUMBER` files - the
signature and date of the `BUILD_NUMBER` change. These are guaranteed
to clash, so it should not be possible to land patches without
re-baselining them.
2020-07-02 12:09:27 -07:00
Andrey Lushnikov
a3f34fb4b7
chore: export juggler as a standalone folder for browser build (#2432)
This leaves our firefox diff to gecko instrumentation changes only.

Drive-by: rename webkit "src" folder into "embedder".
2020-06-02 16:51:13 -07:00
Yury Semikhatsky
910469cd03
chore: do not run git fetch in export.sh (#2015) 2020-04-28 11:42:01 -07:00
Pavel Feldman
91c0631827
browser(webkit): extract webkit embedders into webkit/src (#1919) 2020-04-22 10:52:17 -07:00
Andrey Lushnikov
abb87f25a9
devops: always get BUILD_NUMBER from upstream (#1805)
This makes `export.sh` indepotent.
2020-04-15 13:23:21 -07:00
Andrey Lushnikov
e9428b6f01
devops: fixate diff algorithm to not rely on dev settings (#1663) 2020-04-03 18:58:31 -07:00
Andrey Lushnikov
231c878719
devops: support browser aliases in export.sh and prepare_checkout.sh (#1520)
This lets you use `ff` for `firefox` and `wk` for `webkit`

```sh
$ ./browser_patches/prepare_checkout.sh ff
```
2020-03-24 13:22:46 -07:00
Andrey Lushnikov
39357c3f6c fix(devops): use full SHAs in diffs
Different GIT setups export different length of shortsha.
With this, always export full SHA.
2019-12-16 16:17:56 -08:00
Andrey Lushnikov
9fa7e4f530 devops: fetch remote before exporting 2019-12-13 17:26:08 -08:00
Andrey Lushnikov
20be65b1c9 devops(scripts): export diffs instead of patches
This changes `export.sh` to export diffs instead of patches.
`export.sh` now does not touch working directory, thus not
triggering clean builds and not intefering with an on-going
build.
2019-12-10 15:41:58 -08:00
Andrey Lushnikov
b6e518399c devops: properly extract remote url while running export checks
Turns out `git rmeote get-url` resolves the `insteadOf` substitutions
and ends up with a different URL.

This patch bypasses these substitutions to properly validate
remote url.
2019-12-09 14:06:55 -08:00
Pavel Feldman
ba4cfe908c
fix(webkit): make headless webview active and focused at all times (#178) 2019-12-08 13:22:47 -08:00
Yury Semikhatsky
99f9b11be8 chore(scripts): ignore untracked files during patch export (#124) 2019-12-03 10:47:48 -08:00
Andrey Lushnikov
558e38debe devops: fix export.sh to work with rolls 2019-11-22 19:18:52 -08:00
Andrey Lushnikov
98e05b66fd devops: revamp scripts 2019-11-21 17:29:40 -08:00
Andrey Lushnikov
8a077da565 devops: simplified bash traps 2019-11-19 16:33:11 -08:00
Pavel Feldman
9ba375c063 Initial commit 2019-11-19 10:58:15 -08:00