Compare commits

...

23 Commits

Author SHA1 Message Date
270b7a3502 pierremtb/adhoc/use-less-namespace-resources-back-to-8-workers-1-on-retry 2025-03-18 09:10:59 -04:00
578cc7304c Back to 1 workers to double check sth 2025-03-18 08:52:11 -04:00
f79ee9bf75 A snapshot a day keeps the bugs away! 📷🐛 2025-03-18 12:20:18 +00:00
7142a72674 Merge branch 'main' into pierremtb/adhoc/use-less-namespace-resources 2025-03-18 08:11:06 -04:00
fc37b8a4bf A snapshot a day keeps the bugs away! 📷🐛 2025-03-18 12:04:24 +00:00
e2d3e00a2c A snapshot a day keeps the bugs away! 📷🐛 2025-03-18 02:21:52 +00:00
2ea2ac570d Should be ready for review 2025-03-17 22:12:20 -04:00
d9b053675d Cleaning up to get closer to a review-able state 2025-03-17 22:09:13 -04:00
b92cbd33fd Merge branch 'main' into pierremtb/adhoc/use-less-namespace-resources 2025-03-17 21:38:15 -04:00
2d71e0a31c Snaptshots on ubuntu aws 2025-03-17 21:36:34 -04:00
f11f72d48d Back to 4 shards to see the diff 2025-03-17 21:26:42 -04:00
780f62254f Fix name for ubuntu aws, back to 10 step retry 2025-03-17 21:17:33 -04:00
4890f74de8 Change to ubuntu aws, change macos to macos-latest-large 2025-03-17 20:45:45 -04:00
d7839978f8 Step retry down to 3 2025-03-17 20:31:17 -04:00
a7ef882dca 2 workers for non-windows machineis 2025-03-17 19:45:30 -04:00
738295f72a Disable concurrency, bump to 45min step retry timeout 2025-03-17 19:44:06 -04:00
f189e395b4 All on gh, just to see 2025-03-17 19:09:59 -04:00
af2bd8e7c3 Merge branch 'main' into pierremtb/adhoc/use-less-namespace-resources 2025-03-17 17:03:36 -04:00
0dec6a25e7 Draft: Use less namespace vCPUs for e2e 2025-03-17 16:47:12 -04:00
d21002c652 Clean up for PR 2025-03-17 16:40:13 -04:00
3b547030f0 Attempt: Hourly tests on ubuntu only through dummy boolean key 2025-03-17 16:24:55 -04:00
3f86d53d8c Attempt: Hourly tests on ubuntu only through os exlusion rules 2025-03-17 16:17:29 -04:00
2f4fa89e0c Attempt: Hourly tests on ubuntu only 2025-03-17 16:06:56 -04:00
12 changed files with 28 additions and 37 deletions

View File

@ -21,7 +21,7 @@ if [[ ! -f "test-results/.last-run.json" ]]; then
fi
retry=1
max_retrys=1
max_retrys=3
# retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues
while [[ $retry -le $max_retrys ]]; do
@ -31,11 +31,11 @@ while [[ $retry -le $max_retrys ]]; do
echo "retried=true" >>$GITHUB_OUTPUT
echo "run playwright with last failed tests and retry $retry"
if [[ "$3" == *ubuntu* ]]; then
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn test:playwright:electron:ubuntu -- --last-failed || true
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn test:playwright:electron:ubuntu -- --last-failed --workers 1 || true
elif [[ "$3" == *windows* ]]; then
yarn test:playwright:electron:windows -- --last-failed || true
yarn test:playwright:electron:windows -- --last-failed --workers 1 || true
elif [[ "$3" == *macos* ]]; then
yarn test:playwright:electron:macos -- --last-failed || true
yarn test:playwright:electron:macos -- --last-failed --workers 1 || true
else
echo "Do not run playwright. Unable to detect os runtime."
exit 1

View File

@ -1,7 +1,7 @@
name: E2E Tests
on:
push:
branches: [ main ]
branches: [ main, pierremtb/adhoc/use-less-namespace-resources-back-to-8-workers-1-on-retry ]
pull_request:
schedule:
- cron: 0 * * * * # hourly
@ -75,7 +75,7 @@ jobs:
prepare-wasm:
# seperate job on Ubuntu to build or fetch the wasm blob once on the fastest runner
runs-on: namespace-profile-ubuntu-8-cores
runs-on: runs-on=${{ github.run_id }}/family=i7ie.2xlarge/image=ubuntu22-full-x64
needs: conditions
steps:
- uses: actions/checkout@v4
@ -163,7 +163,7 @@ jobs:
snapshots:
name: playwright:snapshots:ubuntu
runs-on: namespace-profile-ubuntu-8-cores
runs-on: runs-on=${{ github.run_id }}/family=i7ie.2xlarge/image=ubuntu22-full-x64
needs: [conditions, prepare-wasm]
steps:
- uses: actions/create-github-app-token@v1
@ -237,19 +237,14 @@ jobs:
- uses: actions/upload-artifact@v4
if: ${{ needs.conditions.outputs.should-run == 'true' && !cancelled() && (success() || failure()) }}
with:
name: playwright-report-snapshots-${{ matrix.os }}-snapshot-${{ matrix.shardIndex }}-${{ github.sha }}
name: playwright-report-ubuntu-snapshot-${{ github.sha }}
path: playwright-report/
include-hidden-files: true
retention-days: 30
overwrite: true
- name: Clean up test-results
if: ${{ needs.conditions.outputs.should-run == 'true' && !cancelled() && (success() || failure()) }}
continue-on-error: true
run: rm -r test-results
- name: check for changes
if: ${{ needs.conditions.outputs.should-run == 'true' && matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 && github.ref != 'refs/heads/main' }}
if: ${{ needs.conditions.outputs.should-run == 'true' && github.ref != 'refs/heads/main' }}
shell: bash
id: git-check
run: |
@ -270,31 +265,26 @@ jobs:
git fetch origin
echo ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
git commit -m "A snapshot a day keeps the bugs away! 📷🐛 (OS: ${{matrix.os}})" || true
git commit -m "A snapshot a day keeps the bugs away! 📷🐛" || true
git push
git push origin ${{ github.head_ref }}
# only upload artifacts if there's actually changes
- uses: actions/upload-artifact@v4
if: ${{ needs.conditions.outputs.should-run == 'true' && steps.git-check.outputs.modified == 'true' }}
with:
name: playwright-report-ubuntu-${{ github.sha }}
path: playwright-report/
include-hidden-files: true
retention-days: 30
electron:
needs: [conditions, prepare-wasm]
timeout-minutes: 60
name: playwright:electron:${{ matrix.os }} ${{ matrix.shardIndex }} ${{ matrix.shardTotal }}
env:
OS_NAME: ${{ contains(matrix.os, 'ubuntu') && 'ubuntu' || (contains(matrix.os, 'windows') && 'windows' || 'macos') }}
name: playwright:electron:${{ contains(matrix.os, 'ubuntu') && 'ubuntu' || (contains(matrix.os, 'windows') && 'windows' || 'macos') }}:${{ matrix.shardIndex }}:${{ matrix.shardTotal }}
strategy:
fail-fast: false
matrix:
# TODO: enable namespace-profile-windows-8-cores once available
os: [namespace-profile-ubuntu-8-cores, namespace-profile-macos-8-cores, windows-16-cores]
shardIndex: [1, 2, 3, 4, 5, 6, 7, 8]
shardTotal: [8]
# TODO: enable namespace-profile-windows-latest once available
os:
- "runs-on=${{ github.run_id }}/family=i7ie.2xlarge/image=ubuntu22-full-x64"
- namespace-profile-macos-8-cores
- windows-16-cores
shardIndex: [1]
shardTotal: [1]
# Disable macos and windows tests on hourly e2e tests since we only care
# about server side changes.
# Technique from https://github.com/joaomcteixeira/python-project-skeleton/pull/31/files
@ -361,7 +351,7 @@ jobs:
if: ${{ needs.conditions.outputs.should-run == 'true' && !cancelled() && (success() || failure()) }}
continue-on-error: true
with:
name: test-results-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
name: test-results-${{ env.OS_NAME }}-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/
- name: Run playwright/electron flow (with retries)
@ -370,8 +360,8 @@ jobs:
uses: nick-fields/retry@v3.0.2
with:
shell: bash
command: .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}}
timeout_minutes: 30
command: .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{ env.OS_NAME }}
timeout_minutes: 45
max_attempts: 15
env:
CI: true
@ -384,7 +374,7 @@ jobs:
- uses: actions/upload-artifact@v4
if: ${{ needs.conditions.outputs.should-run == 'true' && always() }}
with:
name: test-results-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
name: test-results-${{ env.OS_NAME }}-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/
include-hidden-files: true
retention-days: 30
@ -393,7 +383,7 @@ jobs:
- uses: actions/upload-artifact@v4
if: ${{ needs.conditions.outputs.should-run == 'true' && always() }}
with:
name: playwright-report-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
name: playwright-report-${{ env.OS_NAME }}-${{ matrix.shardIndex }}-${{ github.sha }}
path: playwright-report/
include-hidden-files: true
retention-days: 30

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -1,4 +1,5 @@
import { defineConfig, devices } from '@playwright/test'
import { platform } from 'os'
/**
* See https://playwright.dev/docs/test-configuration.
@ -13,7 +14,7 @@ export default defineConfig({
/* Do not retry */
retries: 0,
/* Different amount of parallelism on CI and local. */
workers: 1,
workers: process.env.CI ? 8 : 1,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: [
['dot'],