Skip to content

Commit 9e3d4bb

Browse files
authored
chore(build-driver): auto update README on roll (#86)
1 parent 03babe9 commit 9e3d4bb

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 🎭 Playwright for Python
22

3-
[![PyPI version](https://badge.fury.io/py/playwright.svg)](https://pypi.python.org/pypi/playwright/) [![Join Slack](https://img.shields.io/badge/join-slack-infomational)](https://join.slack.com/t/playwright/shared_invite/enQtOTEyMTUxMzgxMjIwLThjMDUxZmIyNTRiMTJjNjIyMzdmZDA3MTQxZWUwZTFjZjQwNGYxZGM5MzRmNzZlMWI5ZWUyOTkzMjE5Njg1NDg) <!-- GEN:chromium-version-badge -->[![Chromium version](https://img.shields.io/badge/chromium-85.0.4182.0-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[![Firefox version](https://img.shields.io/badge/firefox-78.0b5-blue.svg?logo=mozilla-firefox)](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> [![WebKit version](https://img.shields.io/badge/webkit-14.0-blue.svg?logo=safari)](https://webkit.org/)
3+
[![PyPI version](https://badge.fury.io/py/playwright.svg)](https://pypi.python.org/pypi/playwright/) [![Join Slack](https://img.shields.io/badge/join-slack-infomational)](https://join.slack.com/t/playwright/shared_invite/enQtOTEyMTUxMzgxMjIwLThjMDUxZmIyNTRiMTJjNjIyMzdmZDA3MTQxZWUwZTFjZjQwNGYxZGM5MzRmNzZlMWI5ZWUyOTkzMjE5Njg1NDg) <!-- GEN:chromium-version-badge -->[![Chromium version](https://img.shields.io/badge/chromium-86.0.4209.0-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[![Firefox version](https://img.shields.io/badge/firefox-78.0b5-blue.svg?logo=mozilla-firefox)](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> [![WebKit version](https://img.shields.io/badge/webkit-14.0-blue.svg?logo=safari)](https://webkit.org/)
44
[![Coverage Status](https://coveralls.io/repos/github/microsoft/playwright-python/badge.svg?branch=master)](https://coveralls.io/github/microsoft/playwright-python?branch=master)
55

66
##### [Docs](https://github.com/microsoft/playwright/blob/master/docs/README.md) | [API reference](https://github.com/microsoft/playwright/blob/master/docs/api.md)
@@ -9,7 +9,7 @@ Playwright is a Python library to automate [Chromium](https://www.chromium.org/H
99

1010
| | Linux | macOS | Windows |
1111
| :--- | :---: | :---: | :---: |
12-
| Chromium <!-- GEN:chromium-version -->85.0.4182.0<!-- GEN:stop --> ||||
12+
| Chromium <!-- GEN:chromium-version -->86.0.4209.0<!-- GEN:stop --> ||||
1313
| WebKit 14.0 ||||
1414
| Firefox <!-- GEN:firefox-version -->78.0b5<!-- GEN:stop --> ||||
1515

build_driver.py

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,52 @@
1414

1515
import gzip
1616
import os
17+
import re
1718
import shutil
1819
import subprocess
20+
from pathlib import Path
1921

20-
driver_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "driver")
21-
package_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "playwright")
22-
drivers_path = os.path.join(package_path, "drivers")
22+
_dirname = Path(os.path.dirname(os.path.abspath(__file__)))
2323

24-
if os.path.exists(os.path.join(driver_path, "package-lock.json")):
25-
os.remove(os.path.join(driver_path, "package-lock.json"))
26-
if os.path.exists(os.path.join(driver_path, "node_modules")):
27-
shutil.rmtree(os.path.join(driver_path, "node_modules"))
28-
if os.path.exists(os.path.join(driver_path, "out")):
29-
shutil.rmtree(os.path.join(driver_path, "out"))
24+
driver_path = _dirname / "driver"
25+
package_path = _dirname / "playwright"
26+
drivers_path = package_path / "drivers"
27+
28+
if (driver_path / "package-lock.json").exists():
29+
os.remove(driver_path / "package-lock.json")
30+
if (driver_path / "node_modules").exists():
31+
shutil.rmtree(driver_path / "node_modules")
32+
if (driver_path / "out").exists():
33+
shutil.rmtree(driver_path / "out")
3034

3135
subprocess.run("npm i", cwd=driver_path, shell=True)
3236
subprocess.run("npm run bake", cwd=driver_path, shell=True)
3337

3438
for driver in ["driver-linux", "driver-macos", "driver-win.exe"]:
35-
if os.path.exists(os.path.join(package_path, driver)):
36-
os.remove(os.path.join(package_path, driver))
39+
if (package_path / driver).exists():
40+
os.remove((package_path / driver))
3741

38-
in_path = os.path.join(driver_path, "out", driver)
39-
out_path = os.path.join(drivers_path, driver + ".gz")
42+
in_path = driver_path / "out" / driver
43+
out_path = drivers_path / (driver + ".gz")
4044
with open(in_path, "rb") as f_in, gzip.open(out_path, "wb") as f_out:
4145
shutil.copyfileobj(f_in, f_out)
4246

47+
node_modules_playwright = driver_path / "node_modules" / "playwright"
48+
4349
shutil.copyfile(
44-
os.path.join(driver_path, "node_modules", "playwright", "browsers.json"),
45-
os.path.join(drivers_path, "browsers.json"),
50+
node_modules_playwright / "browsers.json", drivers_path / "browsers.json",
4651
)
52+
53+
upstream_readme = (node_modules_playwright / "README.md").read_text()
54+
pw_python_readme = (_dirname / "README.md").read_text()
55+
56+
matches = re.findall(r"<!-- GEN:(.*?) -->(.*?)<!-- GEN:stop -->", upstream_readme)
57+
58+
for key, value in matches:
59+
pw_python_readme = re.sub(
60+
rf"(<!-- GEN:{key} -->).*?(<!-- GEN:stop -->)",
61+
f"<!-- GEN:{key} -->{value}<!-- GEN:stop -->",
62+
pw_python_readme,
63+
)
64+
65+
(_dirname / "README.md").write_text(pw_python_readme)

0 commit comments

Comments
 (0)