-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
devops: scheduled daily runs with latest browser revisions
- Loading branch information
Showing
7 changed files
with
109 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
|
||
browser_name="$1" | ||
playwright_dir="$(pwd)" | ||
|
||
function set_github_action_output_parameter { | ||
echo "::set-output name=$1::$2" | ||
} | ||
|
||
git config --global user.email "[email protected]" | ||
git config --global user.name "playwright-devops" | ||
|
||
# Ensure the compiled browser will be used | ||
rm -rf ~/.cache/ms-playwright/ | ||
|
||
set_github_action_output_parameter "FFPATH" "$(pwd)/browser_patches/firefox/checkout/obj-build-playwright/dist/bin/firefox" | ||
set_github_action_output_parameter "WKPATH" "$(pwd)/browser_patches/webkit/pw_run.sh" | ||
|
||
if [[ "${browser_name}" == "webkit" ]]; then | ||
sudo apt install -y libharfbuzz-dev libepoxy-dev libgcrypt-dev libsoup2.4-dev libwebp-dev flatpak | ||
elif [[ "${browser_name}" == "firefox" ]]; then | ||
sudo apt install -y autoconf2.13 libclang-dev clang | ||
fi | ||
|
||
./browser_patches/prepare_checkout.sh "$browser_name" | ||
|
||
if [[ "${browser_name}" == "webkit" ]]; then | ||
./browser_patches/webkit/checkout/Tools/gtk/install-dependencies | ||
./browser_patches/webkit/checkout/Tools/wpe/install-dependencies | ||
|
||
./browser_patches/webkit/checkout/Tools/Scripts/update-webkitwpe-libs | ||
./browser_patches/webkit/checkout/Tools/Scripts/update-webkitgtk-libs | ||
elif [[ "${browser_name}" == "firefox" ]]; then | ||
cd browser_patches/firefox/checkout | ||
SHELL=/bin/bash ./mach bootstrap --no-interactive --application-choice="Firefox for Desktop" | ||
cd - | ||
fi | ||
|
||
if [[ "${browser_name}" == "webkit" ]]; then | ||
cd ./browser_patches/webkit/checkout | ||
# Rebase WebKit atop of master branch. | ||
git rebase browser_upstream/master | ||
cd - | ||
elif [[ "${browser_name}" == "firefox" ]]; then | ||
cd ./browser_patches/firefox/checkout | ||
# We keep firefox atop of beta branch since it's much more stable. | ||
git rebase browser_upstream/beta | ||
cd - | ||
fi | ||
|
||
echo "Building $browser_name" | ||
SHELL=/bin/bash "./browser_patches/$browser_name/build.sh" | ||
|
||
./browser_patches/export.sh "${browser_name}" | ||
|
||
git commit -am "feat($browser_name): roll $browser_name" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Auto browser roll | ||
on: | ||
schedule: | ||
- cron: '0 1 * * *' | ||
jobs: | ||
roll: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
browser: [firefox, webkit] | ||
runs-on: ubuntu-18.04 | ||
name: ${{ matrix.browser }} | ||
steps: | ||
- uses: microsoft/playwright-github-action@v1 | ||
- uses: actions/checkout@v2 | ||
- uses: actions/setup-node@v1 | ||
with: | ||
node-version: 10 | ||
- run: npm ci | ||
- run: npm run build | ||
- name: Build ${{ matrix.browser }} | ||
id: build-browser | ||
run: bash .github/workflows/auto_roll.sh ${{ matrix.browser }} | ||
- run: mkdir -p coredumps | ||
# Set core dump file name pattern | ||
- run: sudo bash -c 'echo "$(pwd -P)/coredumps/core-pid_%p.dump" > /proc/sys/kernel/core_pattern' | ||
# XVFB-RUN merges both STDOUT and STDERR, whereas we need only STDERR | ||
# Wrap `npm run` in a subshell to redirect STDERR to file. | ||
# Enable core dumps in the subshell. | ||
- run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- bash -c "ulimit -c unlimited && node test/runner test/ --jobs=1 --forbid-only --timeout=30000 && npm run coverage" | ||
env: | ||
BROWSER: ${{ matrix.browser }} | ||
DEBUG: "pw:*,-pw:wrapped*,-pw:test*" | ||
DEBUG_FILE: "testrun.log" | ||
PWCHANNEL: none | ||
FFPATH: ${{ steps.build-browser.outputs.FFPATH }} | ||
WKPATH: ${{ steps.build-browser.outputs.WKPATH }} | ||
- uses: actions/upload-artifact@v1 | ||
if: failure() | ||
with: | ||
name: ${{ matrix.browser }}-output | ||
path: test/output-${{ matrix.browser }} | ||
- uses: actions/upload-artifact@v1 | ||
if: ${{ always() }} | ||
with: | ||
name: ${{ matrix.browser }}-testrun.log | ||
path: testrun.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,9 +10,6 @@ on: | |
- master | ||
- release-* | ||
|
||
env: | ||
CI: true | ||
|
||
jobs: | ||
doc-and-lint: | ||
name: "docs & lint" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,9 +6,6 @@ on: | |
- master | ||
- release-* | ||
|
||
env: | ||
CI: true | ||
|
||
jobs: | ||
publish-canary-npm: | ||
name: "publish to NPM" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,9 +4,6 @@ on: | |
release: | ||
types: [published] | ||
|
||
env: | ||
CI: true | ||
|
||
jobs: | ||
publish-npm-release: | ||
name: "publish to NPM" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters