Skip to content

Commit 9de8209

Browse files
authored
Merge pull request #16 from grigoreo-dev/test/playwright-e2e
test: replace Cypress with Playwright e2e
2 parents dcd1023 + dc61fbf commit 9de8209

92 files changed

Lines changed: 2351 additions & 69092 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-cordova.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
runs-on: ubuntu-latest
2323
environment: ${{ github.event.inputs.environment || 'Local' }}
2424
steps:
25-
- uses: actions/checkout@v3
25+
- uses: actions/checkout@v5
2626
- uses: actions/setup-java@v3
2727
with:
2828
distribution: "adopt"
@@ -32,8 +32,8 @@ jobs:
3232
candidate: gradle
3333
version: 7.2
3434
- uses: android-actions/setup-android@v2
35-
- uses: pnpm/action-setup@v4
36-
- uses: actions/setup-node@v3
35+
- uses: pnpm/action-setup@v6
36+
- uses: actions/setup-node@v6
3737
with:
3838
node-version-file: ".nvmrc"
3939
cache: "pnpm"
@@ -53,7 +53,7 @@ jobs:
5353
PL_ANDROID_KEYSTORE_ALIAS: ${{ secrets.PL_ANDROID_KEYSTORE_ALIAS }}
5454
run: npm run cordova:build:android:signed
5555
- name: Archive Signed APK (Android)
56-
uses: actions/upload-artifact@v2
56+
uses: actions/upload-artifact@v6
5757
with:
5858
name: padloc-android-${{ github.sha }}-signed.apk
5959
path: packages/cordova/platforms/android/app/build/outputs/apk/release/app-release.apk
@@ -66,9 +66,9 @@ jobs:
6666
runs-on: macos-11
6767
environment: ${{ github.event.inputs.environment || 'Local' }}
6868
steps:
69-
- uses: actions/checkout@v3
70-
- uses: pnpm/action-setup@v4
71-
- uses: actions/setup-node@v3
69+
- uses: actions/checkout@v5
70+
- uses: pnpm/action-setup@v6
71+
- uses: actions/setup-node@v6
7272
with:
7373
node-version-file: ".nvmrc"
7474
cache: "pnpm"
@@ -80,7 +80,7 @@ jobs:
8080
PL_SERVER_URL: ${{ secrets.PL_SERVER_URL }}
8181
run: npm run cordova:build:ios
8282
- name: Archive Unsigned App (iOS)
83-
uses: actions/upload-artifact@v2
83+
uses: actions/upload-artifact@v6
8484
with:
8585
name: padloc-ios-${{ github.sha }}-unsigned.app
8686
path: packages/cordova/platforms/ios/build/emulator/Padloc.app

.github/workflows/build-electron.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ jobs:
2626
runs-on: ubuntu-latest
2727
environment: ${{ github.event.inputs.environment || 'Local' }}
2828
steps:
29-
- uses: actions/checkout@v3
30-
- uses: pnpm/action-setup@v4
31-
- uses: actions/setup-node@v3
29+
- uses: actions/checkout@v5
30+
- uses: pnpm/action-setup@v6
31+
- uses: actions/setup-node@v6
3232
with:
3333
node-version-file: ".nvmrc"
3434
cache: "pnpm"
@@ -47,31 +47,31 @@ jobs:
4747
env:
4848
PL_PWA_URL: ${{ secrets.PL_PWA_URL }}
4949
- name: Archive AppImage
50-
uses: actions/upload-artifact@v2
50+
uses: actions/upload-artifact@v6
5151
with:
5252
name: padloc-linux-${{ github.sha }}-unsigned.AppImage
5353
path: packages/electron/dist/*.AppImage
5454
if-no-files-found: error
5555
- name: Archive deb
56-
uses: actions/upload-artifact@v2
56+
uses: actions/upload-artifact@v6
5757
with:
5858
name: padloc-linux-${{ github.sha }}-unsigned.deb
5959
path: packages/electron/dist/*.deb
6060
if-no-files-found: error
6161
- name: Archive snap
62-
uses: actions/upload-artifact@v2
62+
uses: actions/upload-artifact@v6
6363
with:
6464
name: padloc-linux-${{ github.sha }}-unsigned.snap
6565
path: packages/electron/dist/*.snap
6666
if-no-files-found: error
6767
- name: Archive flatpak
68-
uses: actions/upload-artifact@v2
68+
uses: actions/upload-artifact@v6
6969
with:
7070
name: padloc-linux-${{ github.sha }}-unsigned.flatpak
7171
path: packages/electron/dist/*.flatpak
7272
if-no-files-found: error
7373
- name: Archive Unpacked
74-
uses: actions/upload-artifact@v2
74+
uses: actions/upload-artifact@v6
7575
with:
7676
name: padloc-linux-${{ github.sha }}-unpacked
7777
path: packages/electron/dist/linux-unpacked
@@ -81,9 +81,9 @@ jobs:
8181
runs-on: macos-11
8282
environment: ${{ github.event.inputs.environment || 'Local' }}
8383
steps:
84-
- uses: actions/checkout@v3
85-
- uses: pnpm/action-setup@v4
86-
- uses: actions/setup-node@v3
84+
- uses: actions/checkout@v5
85+
- uses: pnpm/action-setup@v6
86+
- uses: actions/setup-node@v6
8787
with:
8888
node-version-file: ".nvmrc"
8989
cache: "pnpm"
@@ -97,7 +97,7 @@ jobs:
9797
PL_PWA_URL: ${{ secrets.PL_PWA_URL }}
9898
CSC_IDENTITY_AUTO_DISCOVERY: false
9999
- name: Archive dmg
100-
uses: actions/upload-artifact@v2
100+
uses: actions/upload-artifact@v6
101101
with:
102102
name: padloc-macos-${{ github.sha }}-unsigned.dmg
103103
path: packages/electron/dist/*.dmg
@@ -107,9 +107,9 @@ jobs:
107107
runs-on: macos-11
108108
environment: ${{ github.event.inputs.environment || 'Local' }}
109109
steps:
110-
- uses: actions/checkout@v3
111-
- uses: pnpm/action-setup@v4
112-
- uses: actions/setup-node@v3
110+
- uses: actions/checkout@v5
111+
- uses: pnpm/action-setup@v6
112+
- uses: actions/setup-node@v6
113113
with:
114114
node-version-file: ".nvmrc"
115115
cache: "pnpm"
@@ -124,7 +124,7 @@ jobs:
124124
CSC_KEY_PASSWORD: ${{ secrets.PL_MACOS_SIGNING_CERT_PASSWORD }}
125125
PL_PWA_URL: ${{ secrets.PL_PWA_URL }}
126126
- name: Archive dmg
127-
uses: actions/upload-artifact@v2
127+
uses: actions/upload-artifact@v6
128128
with:
129129
name: padloc-macos-${{ github.sha }}-signed.dmg
130130
path: packages/electron/dist/*.dmg
@@ -134,9 +134,9 @@ jobs:
134134
runs-on: windows-2019
135135
environment: ${{ github.event.inputs.environment || 'Local' }}
136136
steps:
137-
- uses: actions/checkout@v3
138-
- uses: pnpm/action-setup@v4
139-
- uses: actions/setup-node@v3
137+
- uses: actions/checkout@v5
138+
- uses: pnpm/action-setup@v6
139+
- uses: actions/setup-node@v6
140140
with:
141141
node-version-file: ".nvmrc"
142142
cache: "pnpm"
@@ -149,7 +149,7 @@ jobs:
149149
env:
150150
PL_PWA_URL: ${{ secrets.PL_PWA_URL }}
151151
- name: Archive exe
152-
uses: actions/upload-artifact@v2
152+
uses: actions/upload-artifact@v6
153153
with:
154154
name: padloc-windows-${{ github.sha }}-unsigned.exe
155155
path: packages/electron/dist/*.exe

.github/workflows/build-tauri.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ jobs:
3030

3131
runs-on: ${{ matrix.config.os }}
3232
steps:
33-
- uses: actions/checkout@v3
34-
- uses: pnpm/action-setup@v4
35-
- uses: actions/setup-node@v3
33+
- uses: actions/checkout@v5
34+
- uses: pnpm/action-setup@v6
35+
- uses: actions/setup-node@v6
3636
with:
3737
node-version-file: ".nvmrc"
3838
cache: "pnpm"
@@ -66,35 +66,35 @@ jobs:
6666
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
6767
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
6868
- name: Archive AppImage
69-
uses: actions/upload-artifact@v2
69+
uses: actions/upload-artifact@v6
7070
if: matrix.config.os == 'ubuntu-latest'
7171
with:
7272
name: padloc-linux-${{ github.sha }}-unsigned.AppImage
7373
path: packages/tauri/src-tauri/target/debug/bundle/appimage/padloc*.AppImage
7474
if-no-files-found: error
7575
- name: Archive deb
76-
uses: actions/upload-artifact@v2
76+
uses: actions/upload-artifact@v6
7777
if: matrix.config.os == 'ubuntu-latest'
7878
with:
7979
name: padloc-linux-${{ github.sha }}-unsigned.deb
8080
path: packages/tauri/src-tauri/target/debug/bundle/deb/*.deb
8181
if-no-files-found: error
8282
- name: Archive dmg
83-
uses: actions/upload-artifact@v2
83+
uses: actions/upload-artifact@v6
8484
if: matrix.config.os == 'macos-latest'
8585
with:
8686
name: padloc-macos-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.dmg
8787
path: packages/tauri/src-tauri/target/debug/bundle/dmg/*.dmg
8888
if-no-files-found: error
8989
- name: Archive app
90-
uses: actions/upload-artifact@v2
90+
uses: actions/upload-artifact@v6
9191
if: matrix.config.os == 'macos-latest'
9292
with:
9393
name: padloc-macos-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.app
9494
path: packages/tauri/src-tauri/target/debug/bundle/macos/*.app
9595
if-no-files-found: error
9696
- name: Archive msi
97-
uses: actions/upload-artifact@v2
97+
uses: actions/upload-artifact@v6
9898
if: matrix.config.os == 'windows-latest'
9999
with:
100100
name: padloc-windows-${{ github.sha }}-unsigned.msi

.github/workflows/build-web-extension.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ jobs:
2929
runs-on: ubuntu-latest
3030
environment: ${{ github.event.inputs.environment || 'Local' }}
3131
steps:
32-
- uses: actions/checkout@v3
33-
- uses: pnpm/action-setup@v4
34-
- uses: actions/setup-node@v3
32+
- uses: actions/checkout@v5
33+
- uses: pnpm/action-setup@v6
34+
- uses: actions/setup-node@v6
3535
with:
3636
node-version-file: ".nvmrc"
3737
cache: "pnpm"
@@ -50,13 +50,13 @@ jobs:
5050
# run: cd packages/extension/dist && web-ext sign --id="${{ secrets.PL_WEB_EXTENSION_FIREFOX_ID }}" --channel=unlisted --api-key=${{ secrets.PL_WEB_EXTENSION_FIREFOX_API_KEY }} --api-secret=${{ secrets.PL_WEB_EXTENSION_FIREFOX_API_SECRET }}
5151
# - name: Archive Signed Web Extension (Firefox)
5252
# if: github.event.inputs.environment == 'Beta' || github.event.inputs.environment == 'Production'
53-
# uses: actions/upload-artifact@v2
53+
# uses: actions/upload-artifact@v6
5454
# with:
5555
# name: padloc-web-extension-${{ github.sha }}-signed.xpi
5656
# path: packages/extension/dist/web-ext-artifacts/*.xpi
5757
# if-no-files-found: error
5858
- name: Archive Unsigned Web Extension (Chrome/Edge/Firefox)
59-
uses: actions/upload-artifact@v2
59+
uses: actions/upload-artifact@v6
6060
with:
6161
name: padloc-web-extension-${{ github.sha }}-unsigned
6262
path: |
@@ -77,7 +77,7 @@ jobs:
7777
crxFilePath: packages/extension/padloc-signed.crx
7878
privateKey: ${{ secrets.PL_WEB_EXTENSION_CHROME_CRX_PRIVATE_KEY }}
7979
- name: Archive Signed Web Extension (Chrome/Edge)
80-
uses: actions/upload-artifact@v2
80+
uses: actions/upload-artifact@v6
8181
with:
8282
name: padloc-web-extension-${{ github.sha }}-signed.crx
8383
path: packages/extension/padloc-signed.crx

.github/workflows/ci.yml

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ jobs:
1515
name: lint
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v4
19-
- uses: pnpm/action-setup@v4
20-
- uses: actions/setup-node@v4
18+
- uses: actions/checkout@v5
19+
- uses: pnpm/action-setup@v6
20+
- uses: actions/setup-node@v6
2121
with:
2222
node-version-file: ".nvmrc"
2323
cache: "pnpm"
@@ -37,9 +37,9 @@ jobs:
3737
name: build
3838
runs-on: ubuntu-latest
3939
steps:
40-
- uses: actions/checkout@v4
41-
- uses: pnpm/action-setup@v4
42-
- uses: actions/setup-node@v4
40+
- uses: actions/checkout@v5
41+
- uses: pnpm/action-setup@v6
42+
- uses: actions/setup-node@v6
4343
with:
4444
node-version-file: ".nvmrc"
4545
cache: "pnpm"
@@ -58,13 +58,58 @@ jobs:
5858
name: unit
5959
runs-on: ubuntu-latest
6060
steps:
61-
- uses: actions/checkout@v4
62-
- uses: pnpm/action-setup@v4
63-
- uses: actions/setup-node@v4
61+
- uses: actions/checkout@v5
62+
- uses: pnpm/action-setup@v6
63+
- uses: actions/setup-node@v6
6464
with:
6565
node-version-file: ".nvmrc"
6666
cache: "pnpm"
6767
- name: Install dependencies
6868
run: pnpm install --frozen-lockfile
6969
- name: Run unit tests
7070
run: pnpm test
71+
72+
e2e:
73+
name: e2e
74+
runs-on: ubuntu-latest
75+
steps:
76+
- uses: actions/checkout@v5
77+
- uses: pnpm/action-setup@v6
78+
- uses: actions/setup-node@v6
79+
with:
80+
node-version-file: ".nvmrc"
81+
cache: "pnpm"
82+
- name: Install dependencies
83+
run: pnpm install --frozen-lockfile
84+
- name: Install Playwright Chromium
85+
run: pnpm exec playwright install --with-deps chromium
86+
- name: Start maildev
87+
run: |
88+
docker run -d --name padloc-e2e-maildev \
89+
-p 1025:1025 -p 1080:1080 \
90+
maildev/maildev:2.1.0
91+
for i in $(seq 1 60); do
92+
body="$(curl -sf http://localhost:1080/email 2>/dev/null || true)"
93+
if [[ "$body" == \[* ]]; then
94+
echo "maildev ready"
95+
exit 0
96+
fi
97+
sleep 0.5
98+
done
99+
echo "maildev failed to start" >&2
100+
docker logs padloc-e2e-maildev || true
101+
exit 1
102+
- name: Run E2E tests
103+
env:
104+
E2E_MAILDEV_URL: http://localhost:1080
105+
run: pnpm run test:e2e:ci
106+
- name: Upload Playwright artifacts
107+
if: always()
108+
uses: actions/upload-artifact@v6
109+
with:
110+
name: playwright-artifacts
111+
path: |
112+
playwright-report/
113+
test-results/
114+
if-no-files-found: ignore
115+
retention-days: 7

.github/workflows/e2e.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)