Migrate to bun #3784
This file contains hidden or 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
name: Test @notesnook/web | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- "master" | |
paths: | |
- "apps/web/**" | |
# re-run workflow if workflow file changes | |
- ".github/workflows/web.tests.yml" | |
pull_request_target: | |
branches: | |
- "master" | |
paths: | |
- "apps/web/**" | |
# re-run workflow if workflow file changes | |
- ".github/workflows/web.tests.yml" | |
types: | |
- "ready_for_review" | |
- "opened" | |
- "synchronize" | |
- "reopened" | |
jobs: | |
authorize: | |
environment: ${{ github.event_name == 'pull_request_target' && | |
github.event.pull_request.head.repo.full_name != github.repository && | |
'external' || 'internal' }} | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo true | |
build: | |
needs: authorize | |
name: Build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha || github.ref }} | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=web | |
- name: Generate test build | |
run: bun run build:test:web | |
- name: Archive build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build | |
path: apps/web/build/**/* | |
test: | |
needs: build | |
name: 🧪 Test (${{ matrix.shard }}/${{ strategy.job-total }}) | |
strategy: | |
matrix: | |
shard: [1, 2, 3, 4, 5] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha || github.ref }} | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: ./apps/web/build | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Install packages | |
run: | | |
bun ci | |
bun add -D @playwright/test otplib dayjs @zip.js/zip.js | |
- name: Validate build extraction | |
run: ls -ld ./apps/web/build/index.html | |
- name: Install Playwright Browsers | |
run: bun playwright install chromium --with-deps | |
working-directory: apps/web | |
- name: Add environment variables | |
run: | | |
echo "USER_EMAIL=${{ secrets.USER_EMAIL }}" >> $GITHUB_ENV | |
echo "USER_PASSWORD=${{ secrets.USER_PASSWORD }}" >> $GITHUB_ENV | |
echo "USER_TOTP_SECRET=${{ secrets.USER_TOTP_SECRET }}" >> $GITHUB_ENV | |
echo "USER_KEY=${{ secrets.USER_KEY }}" >> $GITHUB_ENV | |
- name: Run tests | |
run: bun playwright test --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
working-directory: apps/web | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-results-${{ matrix.shard }} | |
path: apps/web/test-results | |
retention-days: 5 |