name: ✅ Validate on: workflow_call: pull_request: push: branches: - main permissions: contents: read jobs: checks: name: Checks runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Basic Checks run: pnpm check builds: name: Builds runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Build All Packages run: pnpm buildc all build-demo: name: Build Demo runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Build run: pnpm build:all working-directory: packages/wxt-demo - name: ZIP run: pnpm wxt zip working-directory: packages/wxt-demo tests: name: Tests runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Run Tests run: pnpm test:coverage -- --reporter=default --reporter=hanging-process - name: Upload Coverage uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} windows-tests: name: Windows Tests runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Run Tests run: pnpm test template: name: Template runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: template: - react - solid - svelte - vanilla - vue steps: - name: Checkout uses: actions/checkout@v4 - name: Setup uses: ./.github/actions/setup - name: Pack WXT package run: pnpm pack working-directory: packages/wxt - name: Install Dependencies run: npm i working-directory: templates/${{ matrix.template }} - name: Install Packed WXT run: npm i -D ../../packages/wxt/wxt-*.tgz working-directory: templates/${{ matrix.template }} - name: Type Check Template run: pnpm compile if: matrix.template != 'svelte' working-directory: templates/${{ matrix.template }} - name: Type Check Template run: pnpm check if: matrix.template == 'svelte' working-directory: templates/${{ matrix.template }} - name: Build Template run: pnpm build working-directory: templates/${{ matrix.template }}