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] runs-on: ubuntu-latest env: INTEGRATION_TEST: true DEV_FEATURES_ENABLED: ${{ matrix.dev-features-enabled }} steps: - uses: logto-io/actions-package-logto-artifact@v2 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-latest 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-latest 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 }}