name: "E2E" on: workflow_call: inputs: package: description: The identifier of the job to run default: webapp required: false type: string jobs: cli-v3: name: "๐Ÿงช CLI v3 tests" if: inputs.package == 'cli-v3' || inputs.package == '' runs-on: buildjet-8vcpu-ubuntu-2204 strategy: fail-fast: false matrix: package-manager: ["npm", "pnpm", "yarn"] steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 - name: โŽ” Setup pnpm uses: pnpm/action-setup@v4 with: version: 8.15.5 - name: โŽ” Setup node uses: buildjet/setup-node@v3 with: node-version: 20.11.1 cache: "pnpm" - name: ๐Ÿ“ฅ Download deps run: pnpm install --frozen-lockfile --filter trigger.dev... - name: ๐Ÿ”ง Build v3 cli monorepo dependencies run: pnpm run build --filter trigger.dev^... - name: ๐Ÿ”ง Build worker template files run: pnpm --filter trigger.dev run build:workers - name: Enable corepack run: corepack enable - name: Run E2E Tests run: | PM=${{ matrix.package-manager }} pnpm --filter trigger.dev run test:e2e webapp: name: "๐Ÿงช Webapp tests" if: inputs.package == 'webapp' || inputs.package == '' runs-on: buildjet-16vcpu-ubuntu-2204 steps: - name: ๐Ÿณ Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME || vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN || vars.DOCKERHUB_TOKEN }} - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive - name: โŽ” Setup pnpm uses: pnpm/action-setup@v4 with: version: 8.15.5 - name: โŽ” Setup node uses: buildjet/setup-node@v3 with: node-version: 20.11.1 cache: "pnpm" - name: ๐Ÿ“ฅ Download deps run: pnpm install --frozen-lockfile - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests run: | # Setup environment variables cp ./.env.example ./.env cp ./references/nextjs-test/.env.example ./references/nextjs-test/.env.local # Build packages pnpm run build --filter @references/nextjs-test^... cd apps/webapp && pnpm run build:server cd ../.. pnpm --filter @trigger.dev/database generate pnpm --filter @trigger.dev/otlp-importer generate # Move trigger-cli bin to correct place pnpm install --frozen-lockfile # Execute tests pnpm run docker pnpm run db:migrate pnpm run db:seed pnpm run test:e2e # Cleanup pnpm run docker:stop - name: Upload Playwright report uses: actions/upload-artifact@v3 if: always() with: name: playwright-report path: playwright-report/ retention-days: 30