| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- name: test
- on:
- push:
- branches:
- - dev
- pull_request:
- workflow_dispatch:
- concurrency:
- # Keep every run on dev so cancelled checks do not pollute the default branch
- # commit history. PRs and other branches still share a group and cancel stale runs.
- group: ${{ case(github.ref == 'refs/heads/dev', format('{0}-{1}', github.workflow, github.run_id), format('{0}-{1}', github.workflow, github.event.pull_request.number || github.ref)) }}
- cancel-in-progress: true
- permissions:
- contents: read
- jobs:
- unit:
- name: unit (${{ matrix.settings.name }})
- strategy:
- fail-fast: false
- matrix:
- settings:
- - name: linux
- host: blacksmith-4vcpu-ubuntu-2404
- - name: windows
- host: blacksmith-4vcpu-windows-2025
- runs-on: ${{ matrix.settings.host }}
- defaults:
- run:
- shell: bash
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- - name: Setup Bun
- uses: ./.github/actions/setup-bun
- - name: Configure git identity
- run: |
- git config --global user.email "[email protected]"
- git config --global user.name "opencode"
- - name: Run unit tests
- run: bun turbo test
- e2e:
- name: e2e (${{ matrix.settings.name }})
- needs: unit
- strategy:
- fail-fast: false
- matrix:
- settings:
- - name: linux
- host: blacksmith-4vcpu-ubuntu-2404
- playwright: bunx playwright install --with-deps
- - name: windows
- host: blacksmith-4vcpu-windows-2025
- playwright: bunx playwright install
- runs-on: ${{ matrix.settings.host }}
- env:
- PLAYWRIGHT_BROWSERS_PATH: 0
- defaults:
- run:
- shell: bash
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- - name: Setup Bun
- uses: ./.github/actions/setup-bun
- - name: Install Playwright browsers
- working-directory: packages/app
- run: ${{ matrix.settings.playwright }}
- - name: Run app e2e tests
- run: bun --cwd packages/app test:e2e:local
- env:
- CI: true
- timeout-minutes: 30
- - name: Upload Playwright artifacts
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: playwright-${{ matrix.settings.name }}-${{ github.run_attempt }}
- if-no-files-found: ignore
- retention-days: 7
- path: |
- packages/app/e2e/test-results
- packages/app/e2e/playwright-report
|