name: Pre-release checks on: workflow_dispatch: jobs: changes: name: Detect changes runs-on: buildjet-4vcpu-ubuntu-2204 permissions: pull-requests: read outputs: app-store: ${{ steps.filter.outputs.app-store }} embed: ${{ steps.filter.outputs.embed }} embed-react: ${{ steps.filter.outputs.embed-react }} steps: - uses: actions/checkout@v3 - uses: ./.github/actions/dangerous-git-checkout - uses: dorny/paths-filter@v2 id: filter with: filters: | app-store: - 'apps/web/**' - 'packages/app-store/**' - 'playwright.config.ts' embed: - 'apps/web/**' - 'packages/embeds/**' - 'playwright.config.ts' embed-react: - 'apps/web/**' - 'packages/embeds/**' - 'playwright.config.ts' lint: name: Linters uses: ./.github/workflows/lint.yml secrets: inherit build: name: Production build uses: ./.github/workflows/production-build.yml secrets: inherit e2e: name: E2E tests needs: [changes, lint, build] uses: ./.github/workflows/e2e.yml secrets: inherit e2e-app-store: name: E2E App Store tests needs: [changes, lint, build] uses: ./.github/workflows/e2e-app-store.yml secrets: inherit e2e-embed: name: E2E embeds tests needs: [changes, lint, build] uses: ./.github/workflows/e2e-embed.yml secrets: inherit e2e-embed-react: name: E2E React embeds tests needs: [changes, lint, build] uses: ./.github/workflows/e2e-embed-react.yml secrets: inherit build-without-database: name: Production build (without database) uses: ./.github/workflows/production-build-without-database.yml secrets: inherit required: needs: [e2e, e2e-app-store, e2e-embed, e2e-embed-react, build-without-database] if: always() runs-on: buildjet-4vcpu-ubuntu-2204 steps: - name: fail if conditional jobs failed if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled') run: exit 1