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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup uses: ./.github/actions/setup - name: Basic Checks run: bun run check builds: name: Builds runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup uses: ./.github/actions/setup - name: Build All Packages run: bun run buildc all build-demo: name: Build Demo runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup uses: ./.github/actions/setup - name: Build run: bun run build:all working-directory: packages/wxt-demo - name: ZIP run: bun run wxt zip working-directory: packages/wxt-demo tests: name: Tests (${{ matrix.title }}) runs-on: ${{ matrix.os }} strategy: matrix: include: - title: 'Linux' os: ubuntu-22.04 coverage: true - title: 'Windows' os: windows-latest coverage: false steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup uses: ./.github/actions/setup - name: Setup PNPM uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 with: version: latest - name: Run Tests if: ${{ ! matrix.coverage }} run: bun run test - name: Run Tests (Coverage) if: matrix.coverage run: bun run test:coverage --reporter=default --reporter=hanging-process - name: Upload Coverage if: matrix.coverage uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup uses: ./.github/actions/setup - name: Pack WXT package run: bun pm 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: bun run compile if: matrix.template != 'svelte' working-directory: templates/${{ matrix.template }} - name: Type Check Template run: bun run check if: matrix.template == 'svelte' working-directory: templates/${{ matrix.template }} - name: Build Template run: bun run build working-directory: templates/${{ matrix.template }}