name: Integration Test on: push: branches: - master pull_request: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: package: strategy: matrix: # Run the integration tests with and without dev features enabled dev-features-enabled: [true, false] # An error will occur if we use a newer version of Ubuntu in the CI environment, as it has restrictions on unprivileged user namespaces and sandbox usage, which prevents Chromium (used by Puppeteer) from launching properly during integration tests. So we lock the Ubuntu version to 22.04. # See error record: https://github.com/logto-io/logto/actions/runs/12803809008/job/35697654974 runs-on: ubuntu-22.04 env: INTEGRATION_TEST: true DEV_FEATURES_ENABLED: ${{ matrix.dev-features-enabled }} steps: - uses: logto-io/actions-package-logto-artifact@v3 with: artifact-name: integration-test-${{ github.sha }}-dev-features-${{ matrix.dev-features-enabled }} pnpm-version: 9 run-logto: strategy: fail-fast: false matrix: target: [api, experience, console] # Run the integration tests with and without dev features enabled dev-features-enabled: [true, false] needs: package runs-on: ubuntu-22.04 env: INTEGRATION_TEST: true DEV_FEATURES_ENABLED: ${{ matrix.dev-features-enabled }} DB_URL: postgres://postgres:postgres@localhost:5432/postgres steps: - uses: logto-io/actions-run-logto-integration-tests@v4 with: logto-artifact: integration-test-${{ github.sha }}-dev-features-${{ env.DEV_FEATURES_ENABLED }} test-target: ${{ matrix.target }} pnpm-version: 9 # Automatically rerun the workflow since the integration tests are moody # From this genius: https://github.com/orgs/community/discussions/67654#discussioncomment-8038649 rerun-on-failure: needs: run-logto if: failure() && fromJSON(github.run_attempt) < 3 runs-on: ubuntu-22.04 steps: - env: GH_REPO: ${{ github.repository }} GH_TOKEN: ${{ github.token }} GH_DEBUG: api run: gh workflow run rerun.yml -r ${{ github.head_ref || github.ref_name }} -F run_id=${{ github.run_id }}