summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/playwright.yml62
1 files changed, 62 insertions, 0 deletions
diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
new file mode 100644
index 0000000..d5106f2
--- /dev/null
+++ b/.github/workflows/playwright.yml
@@ -0,0 +1,62 @@
+name: Playwright Tests
+
+on:
+ push:
+ branches:
+ - main
+ - 'feature/**'
+ - 'release/**'
+ - 'fix/**'
+ # The branches below must be a subset of the branches above
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ test:
+ name: Run Playwright tests
+ runs-on: ubuntu-latest
+
+ # The maximum number of minutes to let a workflow run
+ # before GitHub automatically cancels it. Default: 360
+ timeout-minutes: 30
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Set up Node 20.x
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20.x'
+
+ - name: Setup npm cache
+ uses: actions/cache@v4
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+ - name: Install npm dependencies
+ run: npm ci --ignore-scripts
+
+ - name: Install Playwright Browsers
+ run: npx playwright install --with-deps
+
+ - name: Setup Hugo
+ uses: peaceiris/actions-hugo@v3
+ with:
+ hugo-version: '0.101.0'
+ extended: true
+
+ - name: Run Playwright tests
+ run: npx playwright test
+
+ - name: Upload tests artifact
+ uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: playwright-report
+ path: playwright-report/
+ retention-days: 30