Commit Graph

15 Commits

Author SHA1 Message Date
Maja Frydrychowicz
c5a72e9887 feat(launcher): add option to run Puppeteer with different browsers (#5137)
* feat: Set which browser to launch via PUPPETEER_PRODUCT

This change introduces a PUPPETEER_PRODUCT environment
variable as a first step toward using Puppeteer with
many different browsers. Setting PUPPETEER_PRODUCT=firefox, for
example, enables Firefox-specific Launcher settings.

The state is also exposed as `puppeteer.product` in the API
to support adding other product-specific behaviour as needed.

The bulk of the change is a refactoring in Launcher
to decouple generic browser start-up from product-specific
configuration.

Respecting the puppeteer-core restriction for PUPPETEER_
environment variables, lazily instantiate the Launcher
based on a `product` Puppeteer.launch option, if available.

* test: Distinguish Juggler unit tests from Firefox

The funit script is renamed to fjunit (j for Juggler, which is
used only by the experimental puppeteer-firefox package.

In contrast, the funit script now refers to running Puppeteer
unit tests against the main puppeteer package with Firefox.
To do so with Firefox Nightly, run:

`BINARY=path/to/firefox npm run funit`

A number of changes in this patch make it easier to run
Puppeteer unit tests in Mozilla's CI.
2019-11-26 10:23:19 +01:00
Mathias Bynens
11ff374ca3
chore: drop Node.js v6 support (#5045)
Node.js v6 was end-of-life'd in April, 2019, with AWS Lambda prohibiting updaets to the Node.js v6 runtime since June 30, 2019.

This makes it quite safe for us to remove the Node 6 support from the repository.
2019-10-16 17:00:20 +02:00
Andrey Lushnikov
dcff850b6f
chore(flakiness): update flakiness format (#4808)
This patch:
- updates Flakiness Dashboard format to define version per-build
  and to pass COMMIT information
- drops the README.md generation - we'll move on to a designated flakiness
  dashboard viewer
2019-08-06 15:32:55 -07:00
Andrey Lushnikov
e252dcf200
chore(flakiness): Flakiness Dashboard fixes (#4788)
- fix `FLAKINESS_DASHBOARD_BUILD_URL` to point to a task instead of a build
- do not pretty-print `dashboard.json` when serializing flakiness results
- filter out 'COVERAGE' test(s) so that they don't add up to `dashboard.json` payload. These are useless
- validate certain important options of flakiness dashboard
- more logging to STDOUT to actually say which repo and what branch is getting used
- enhance commit message with a build URL
- use a more compact format for JSON. For 100 runs of 700 tests it yields 21MB json instead of 23MB.
- bump default builds number to 100
2019-08-01 16:09:02 -07:00
Andrey Lushnikov
932c8cbe9a
chore: introduce initial version of flakiness dashboard (#4781)
This patch introduces a dashboard that records test results and
uploads them to https://github.com/aslushnikov/puppeteer-flakiness-dashboard

Since many bots might push results in parallel, each bot pushes
results to its own git branch.

FlakinessDashboard also generates a simple README.md with a flakiness
summary. If this proves to be not enough, we can build a website that
fetches flakiness data and renders it nicely.
2019-07-31 22:23:50 -07:00
Andrey Lushnikov
a582c11b1b
chore(ci): add Node10 and Node12 to Cirrus (#4699) 2019-07-13 23:22:02 -07:00
Andrey Lushnikov
a762dbe96f
chore(ci): add Puppeteer-Firefox to CI (#3932)
This patch adds Puppeteer-Firefox bot running on Linux+Node8
on Cirrus CI.

References #3889
2019-02-06 14:28:02 -08:00
Joel Einbinder
f2c968fdb8 chore(types): generate our own d.ts file from api.md (#3744)
Generate `//index.d.ts` file with precise typescript definitions for all of the
Puppeteer API.
2019-01-28 15:12:45 -08:00
Andrey Lushnikov
78ebf401c2
chore(ci): move all CI from Node7 to Node8 (#2938)
Node 8 is the current LTS. We should use it by default on all
our CIs.
2018-07-26 16:27:11 -07:00
Fedor Korotkov
e445e1c8b8 chore(ci): disable brew auto-update (#2861) 2018-07-10 05:23:51 +03:00
Fedor Korotkov
ea8ec1e567 chore(ci): Configure OSX on Cirrus CI (#2774)
Cirrus CI recently started supporting Mac OS builds. This PR adds a CI task to test Puppeteer on MacOS.

It uses Node 8 since only [Node 6 and Node 8 are LTS](https://github.com/nodejs/Release#release-schedule) so `brew` only has receipts for those two TLS versions besides the latest one.
2018-06-19 13:03:30 -07:00
Andrey Lushnikov
36b87000e4
chore(ci): remove Win from Cirrus builds (#2689)
Remove Cirrus Win targets until there's a good resolution.

Postmortem:
- CirrusCI uses [Windows Server
Containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/#windows-container-types) to run windows builds.
- Windows Server Containers don't include all the libraries that are required to run general application. See [msdn discussion](https://social.msdn.microsoft.com/Forums/en-US/a50e7dd7-c73f-45e0-89b4-92ba3ad2bcda/ieframedll-and-shdocvwdll-are-missing-from-windowsservercore-image?forum=windowscontainers).
- A recent [chromium commit](https://crrev.com/560677) added win dependencies missing in Windows Server Containers.

We'll be able to bring back Win builds on Cirrus once the full-fledged
Win containers are released (announced
[recently](https://channel9.msdn.com/Events/Build/2018/BRK2149).
2018-06-06 20:11:22 -05:00
Andrey Lushnikov
4bc23319a2
chore(ci): temporary disable cirrus win builds (#2666)
Win bots all fail on Cirrus; disable them until the issue is resolved.

We still have win coverage with AppVeyour.
2018-06-02 11:45:14 -07:00
Fedor Korotkov
85d5a3348c chore(ci): switch Windows containers (#2662)
Cirrus CI got some optimizations for containers based of `microsoft/windowsservercore:latest`.

Now startup time for windows builds is around 1:30 seconds instead of around 4 minutes.

to: @aslushnikov
2018-06-01 15:15:16 -07:00
Fedor Korotkov
554bd59588 chore(CI): add experimental Cirrus CI (#2181)
This patch adds experimental support for Cirrus CI builds.
Cirrus CI has both Windows and Linux, uses google cloud and runs builds
in Docker containers.

This seems to be a promising combination for our needs.
2018-03-13 08:06:40 -07:00