mirror of
https://github.com/logto-io/logto.git
synced 2025-02-17 22:04:19 -05:00
64 lines
2.3 KiB
YAML
64 lines
2.3 KiB
YAML
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 }}
|