Commit Graph

40 Commits

Author SHA1 Message Date
Andrey Lushnikov
2bf875987b
devops: introduce chromium tip-of-tree build (#13664) 2022-04-20 22:38:26 -07:00
Andrey Lushnikov
3d3c403085
devops: fix Chromium build on Windows (#13310)
Windows requires a manual installation of depot_tools:
- https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md#install

And since recent update, depot_tools seem to be only available through
cmd.exe.

This patch starts calling certain commands via cmd.exe.
2022-04-05 01:24:49 -07:00
Andrey Lushnikov
786b4a55fc
devops: fix "ensure-depot-tools" script (#13303)
The script should is supposed to be sourced and thus
should not change any env variables of parent script
besides `$PATH`.
2022-04-04 15:19:36 -07:00
Andrey Lushnikov
732afa7cb9
devops: switch chromium to build from chromium-beta branch (#13302)
This patch:
- switches `//browser_patches/chromium` to checkout and build
  chromium-beta branch
- introduces `//browser_patches/chromium/roll_to_current_beta.sh` script
  that pulls build configuration for beta from omaha proxy
- switches Github Action to pull daily to the latest beta

Drive-by: fix bug in argument parsing for Chromium building
2022-04-04 14:33:23 -07:00
Andrey Lushnikov
bc1ed831b2
devops: fix chromium checkout (#10288)
Use `main` branch for all chromium-related projects.
2021-11-12 10:23:22 -08:00
Andrey Lushnikov
3b545b86bc
devops: support --full argument for chromium compilation (#9965)
Like our other browser build scripts, chromium build now supports
`--full` flag to install all the required dependencies.
2021-11-02 03:23:15 -07:00
Andrey Lushnikov
3d775f34af
devops(cr): install arm toolchain for arm linux builds (#9962) 2021-11-02 01:41:01 -07:00
Andrey Lushnikov
544dcd8804
devops: default chromium checkout to $HOME/chromium (#9859)
This defaults Chromium checkout to $HOME/chromium unless a
`CR_CHROMIUM_CHECKOUT` is specified.
2021-10-28 11:48:57 -07:00
Andrey Lushnikov
dbabda61fd
devops: fetch all history on non-CI (#9856) 2021-10-28 11:07:22 -07:00
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
831cff1a82
devops: drop build infrastructure for WebKit @ MacOS 10.14 (#8438)
We did not support it for a while now and had 0 complaints.
2021-08-25 07:44:28 -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
c8b54a5b05
devops: fix prepare_checkout.sh script (#8055)
Fixes #8044
2021-08-06 12:01:41 -07:00
Andrey Lushnikov
f342d8b0b1
devops: fix prepare checkout script on pristine machine (#7270)
Fixes #7269
2021-06-23 03:31:51 -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
5509527917
devops: do a full browser checkout by default on Dev machines (#6411)
The `git fetch --unshallow` is a non-trivial command to run, so we
should default to a full checkout unless we're on CI.
2021-05-05 01:12:03 -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
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
e64f66685a
devops: fork webkit into a separate browser (#5834)
Official WebKit no longer supports Mac 10.14. However, since
this system is still very much in use, we want to be able to
keep it running for a while.

This patch adds a new browser that we would compile and maintain
specifically for Mac 10.14: `deprecated-webkit-mac-10.14`. This
browser is a clone of Webkit r1443 that is the last known revision
to compile on Mac 10.14.

As we move on, we're free to modify this browser however we want,
backporting important patches.

References #5833
2021-03-16 01:08:21 -07:00
Andrey Lushnikov
c57f1fc390
devops(chromium): missing depot tools in prepare_checkout.sh script (#5525)
Make sure `prepare_checkout.sh` has depot_tools in its PATH.

Drive-by: enable goma compiler proxy auto-restart.
2021-02-19 14:23:09 -08:00
Andrey Lushnikov
8c18b90038
devops: refactor chromium automation scripts (#5486)
Split preparing checkout, archiving and compiling into separate
scripts similarly how we do it with other browsers.
2021-02-17 14:43:19 -08: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
b94a7c0e60
devops: speedup initial browser checkout (#4352)
Instead of checking out the whole repository, we now do a shallow
clone.

We then gradually "unshallow" the clone, looking for the `BASE_REVISION`.

This should fix experimental mac-11 builder.
2020-11-05 02:04:06 -08:00
Yury Semikhatsky
283bc2c7d0
devops: ensure that embedder directory does not exist (#4340)
Otherwise `cp -r from to` will copy content of `from` to a subdirectory in `to`
2020-11-04 11:20:47 -08:00
Andrey Lushnikov
bff9fb21ec devops: fix winldd build 2020-09-18 11:30:53 -06:00
Andrey Lushnikov
245d1001b1
devops: produce ffmpeg builds on bots (#3820)
This patch moves FFMPEG building to buildbots:
- `ffmpeg-mac.zip` is built on Mac 10.14 machine
- `ffmpeg-win32.zip` and `ffmpeg-win64.zip` are cross-compiled on
  Ubuntu 20.04 machine

All builds across the platforms share the same config:
- the same versions of `ffmpeg` and `libvpx`
- the same build configuration for both `ffmpeg` and `libvpx`

The config could be found in the `//browser_patches/ffmpeg/CONFIG.sh`.

The builds will be then copied manually and committed to the git
repository.
2020-09-09 17:05:08 -07:00
Max Schmitt
8ea280090d
devops: first implementation of browser auto-roll bot (#3455)
Relates #3258

After a chat with @aslushnikov we add this in two iterations. The first one (this PR) is about scheduled runs for testing the latest tip-of-tree version of the browsers daily and the next PR is about opening an automated PRs once its passing (not sure if its worth to add for failing too) or sending Telegram/Slack notifications.

Current status is that Firefox (around 2 hours) and WebKit (around 3-4 hours) works.

Known issues which I fix before we merge:
- ~~Changes in `test/base.fixture.ts` will get extracted in #3453~~

Feel free to review, current blockers are before we can merge:
- ~~#3453~~
- potential git clone optimisation by aslushnikov
2020-08-17 11:23:46 -07:00
Yury Semikhatsky
c27e809a61
chore: suppress trailing whitespace warning in prepare_checkout (#3441) 2020-08-13 10:45:27 -07:00
Andrey Lushnikov
2a0cbda8bc
devops: mirror chromium builds to our CDN (#3357)
Start mirroring chromium builds to our CDN.

References #3259
2020-08-07 16:22:05 -07: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
ebceaf4328
chore: make prepare_checkaout update browser_upstream/master (#2209) 2020-05-12 15:20:12 -07:00
Pavel Feldman
91c0631827
browser(webkit): extract webkit embedders into webkit/src (#1919) 2020-04-22 10:52:17 -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
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
Yury Semikhatsky
8cf8eec3a0 chore(scripts): ignore untracked files and print custom checkout path in logs (#117) 2019-12-02 12:58:44 -08:00
Andrey Lushnikov
2914f9a1f1 devops: fix prepare_checkout with custom checkout path 2019-11-23 16:22:04 -08:00
Andrey Lushnikov
98e05b66fd devops: revamp scripts 2019-11-21 17:29:40 -08:00