Skip to content

Commit 6529f65

Browse files
authored
ci: auth-react (#575)
- Sets up workflow to run auth-react tests - Updates test-servers to work with updated tests - Removes `thirdpartypasswordless` feature flag
1 parent 70de715 commit 6529f65

File tree

12 files changed

+817
-268
lines changed

12 files changed

+817
-268
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Auth-React Tests - L1 - Django
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- reopened
8+
- synchronize
9+
push:
10+
branches:
11+
- master
12+
- "v[0-9]+.[0-9]+"
13+
tags:
14+
- "(dev-)?v[0-9]+.[0-9]+.[0-9]+"
15+
16+
jobs:
17+
define-versions:
18+
runs-on: ubuntu-latest
19+
outputs:
20+
fdiVersions: ${{ steps.versions.outputs.fdiVersions }}
21+
cdiVersions: ${{ steps.versions.outputs.cdiVersions }}
22+
pyVersions: '["3.8", "3.13"]'
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: supertokens/get-supported-versions-action@main
26+
id: versions
27+
with:
28+
has-fdi: true
29+
has-cdi: true
30+
31+
setup-auth-react:
32+
runs-on: ubuntu-latest
33+
needs: define-versions
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
38+
39+
outputs:
40+
AUTH_REACT__LOG_DIR: ${{ steps.envs.outputs.AUTH_REACT__LOG_DIR }}
41+
AUTH_REACT__SCREENSHOT_DIR: ${{ steps.envs.outputs.AUTH_REACT__SCREENSHOT_DIR }}
42+
AUTH_REACT__APP_SERVER: ${{ steps.envs.outputs.AUTH_REACT__APP_SERVER }}
43+
AUTH_REACT__NODE_PORT: ${{ steps.envs.outputs.AUTH_REACT__NODE_PORT }}
44+
AUTH_REACT__TEST_MODE: ${{ steps.envs.outputs.AUTH_REACT__TEST_MODE }}
45+
AUTH_REACT__PORT: ${{ steps.envs.outputs.AUTH_REACT__PORT }}
46+
specs: ${{ steps.envs.outputs.specs }}
47+
matrix: ${{ steps.setup-matrix.outputs.matrix }}
48+
49+
steps:
50+
- uses: supertokens/get-versions-action@main
51+
id: versions
52+
with:
53+
driver-name: python
54+
fdi-version: ${{ matrix.fdi-version }}
55+
env:
56+
SUPERTOKENS_API_KEY: ${{ secrets.SUPERTOKENS_API_KEY }}
57+
58+
- uses: supertokens/auth-react-testing-action/setup@main
59+
id: envs
60+
with:
61+
auth-react-version: ${{ steps.versions.outputs.authReactVersionXy }}
62+
node-sdk-version: ${{ steps.versions.outputs.nodeTag }}
63+
fdi-version: ${{ matrix.fdi-version }}
64+
65+
- id: setup-matrix
66+
uses: supertokens/extended-matrix-action@main
67+
with:
68+
artifact-id: ${{ matrix.fdi-version }}
69+
matrix: |
70+
py-version: ${{ needs.define-versions.outputs.pyVersions }}
71+
framework: ["django"]
72+
spec: ${{ steps.envs.outputs.specs }}
73+
74+
launch-fdi-workflows:
75+
uses: ./.github/workflows/auth-react-test-2.yml
76+
needs:
77+
- define-versions
78+
- setup-auth-react
79+
strategy:
80+
max-parallel: 1 # This is important to avoid ddos GHA API
81+
fail-fast: false # Don't fail fast to avoid locking TF State
82+
matrix:
83+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
84+
name: FDI ${{ matrix.fdi-version }}
85+
with:
86+
artifact-id: ${{ matrix.fdi-version }}
87+
AUTH_REACT__LOG_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__LOG_DIR }}
88+
AUTH_REACT__SCREENSHOT_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__SCREENSHOT_DIR }}
89+
AUTH_REACT__APP_SERVER: ${{ needs.setup-auth-react.outputs.AUTH_REACT__APP_SERVER }}
90+
AUTH_REACT__NODE_PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__NODE_PORT }}
91+
AUTH_REACT__TEST_MODE: ${{ needs.setup-auth-react.outputs.AUTH_REACT__TEST_MODE }}
92+
AUTH_REACT__PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__PORT }}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Auth-React Tests - L1 - Fastapi
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- reopened
8+
- synchronize
9+
push:
10+
branches:
11+
- master
12+
- "v[0-9]+.[0-9]+"
13+
tags:
14+
- "(dev-)?v[0-9]+.[0-9]+.[0-9]+"
15+
16+
jobs:
17+
define-versions:
18+
runs-on: ubuntu-latest
19+
outputs:
20+
fdiVersions: ${{ steps.versions.outputs.fdiVersions }}
21+
cdiVersions: ${{ steps.versions.outputs.cdiVersions }}
22+
pyVersions: '["3.8", "3.13"]'
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: supertokens/get-supported-versions-action@main
26+
id: versions
27+
with:
28+
has-fdi: true
29+
has-cdi: true
30+
31+
setup-auth-react:
32+
runs-on: ubuntu-latest
33+
needs: define-versions
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
38+
39+
outputs:
40+
AUTH_REACT__LOG_DIR: ${{ steps.envs.outputs.AUTH_REACT__LOG_DIR }}
41+
AUTH_REACT__SCREENSHOT_DIR: ${{ steps.envs.outputs.AUTH_REACT__SCREENSHOT_DIR }}
42+
AUTH_REACT__APP_SERVER: ${{ steps.envs.outputs.AUTH_REACT__APP_SERVER }}
43+
AUTH_REACT__NODE_PORT: ${{ steps.envs.outputs.AUTH_REACT__NODE_PORT }}
44+
AUTH_REACT__TEST_MODE: ${{ steps.envs.outputs.AUTH_REACT__TEST_MODE }}
45+
AUTH_REACT__PORT: ${{ steps.envs.outputs.AUTH_REACT__PORT }}
46+
specs: ${{ steps.envs.outputs.specs }}
47+
matrix: ${{ steps.setup-matrix.outputs.matrix }}
48+
49+
steps:
50+
- uses: supertokens/get-versions-action@main
51+
id: versions
52+
with:
53+
driver-name: python
54+
fdi-version: ${{ matrix.fdi-version }}
55+
env:
56+
SUPERTOKENS_API_KEY: ${{ secrets.SUPERTOKENS_API_KEY }}
57+
58+
- uses: supertokens/auth-react-testing-action/setup@main
59+
id: envs
60+
with:
61+
auth-react-version: ${{ steps.versions.outputs.authReactVersionXy }}
62+
node-sdk-version: ${{ steps.versions.outputs.nodeTag }}
63+
fdi-version: ${{ matrix.fdi-version }}
64+
65+
- id: setup-matrix
66+
uses: supertokens/extended-matrix-action@main
67+
with:
68+
artifact-id: ${{ matrix.fdi-version }}
69+
matrix: |
70+
py-version: ${{ needs.define-versions.outputs.pyVersions }}
71+
framework: ["fastapi"]
72+
spec: ${{ steps.envs.outputs.specs }}
73+
74+
launch-fdi-workflows:
75+
uses: ./.github/workflows/auth-react-test-2.yml
76+
needs:
77+
- define-versions
78+
- setup-auth-react
79+
strategy:
80+
max-parallel: 1 # This is important to avoid ddos GHA API
81+
fail-fast: false # Don't fail fast to avoid locking TF State
82+
matrix:
83+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
84+
name: FDI ${{ matrix.fdi-version }}
85+
with:
86+
artifact-id: ${{ matrix.fdi-version }}
87+
AUTH_REACT__LOG_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__LOG_DIR }}
88+
AUTH_REACT__SCREENSHOT_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__SCREENSHOT_DIR }}
89+
AUTH_REACT__APP_SERVER: ${{ needs.setup-auth-react.outputs.AUTH_REACT__APP_SERVER }}
90+
AUTH_REACT__NODE_PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__NODE_PORT }}
91+
AUTH_REACT__TEST_MODE: ${{ needs.setup-auth-react.outputs.AUTH_REACT__TEST_MODE }}
92+
AUTH_REACT__PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__PORT }}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Auth-React Tests - L1 - Flask
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- reopened
8+
- synchronize
9+
push:
10+
branches:
11+
- master
12+
- "v[0-9]+.[0-9]+"
13+
tags:
14+
- "(dev-)?v[0-9]+.[0-9]+.[0-9]+"
15+
16+
jobs:
17+
define-versions:
18+
runs-on: ubuntu-latest
19+
outputs:
20+
fdiVersions: ${{ steps.versions.outputs.fdiVersions }}
21+
cdiVersions: ${{ steps.versions.outputs.cdiVersions }}
22+
pyVersions: '["3.8", "3.13"]'
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: supertokens/get-supported-versions-action@main
26+
id: versions
27+
with:
28+
has-fdi: true
29+
has-cdi: true
30+
31+
setup-auth-react:
32+
runs-on: ubuntu-latest
33+
needs: define-versions
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
38+
39+
outputs:
40+
AUTH_REACT__LOG_DIR: ${{ steps.envs.outputs.AUTH_REACT__LOG_DIR }}
41+
AUTH_REACT__SCREENSHOT_DIR: ${{ steps.envs.outputs.AUTH_REACT__SCREENSHOT_DIR }}
42+
AUTH_REACT__APP_SERVER: ${{ steps.envs.outputs.AUTH_REACT__APP_SERVER }}
43+
AUTH_REACT__NODE_PORT: ${{ steps.envs.outputs.AUTH_REACT__NODE_PORT }}
44+
AUTH_REACT__TEST_MODE: ${{ steps.envs.outputs.AUTH_REACT__TEST_MODE }}
45+
AUTH_REACT__PORT: ${{ steps.envs.outputs.AUTH_REACT__PORT }}
46+
specs: ${{ steps.envs.outputs.specs }}
47+
matrix: ${{ steps.setup-matrix.outputs.matrix }}
48+
49+
steps:
50+
- uses: supertokens/get-versions-action@main
51+
id: versions
52+
with:
53+
driver-name: python
54+
fdi-version: ${{ matrix.fdi-version }}
55+
env:
56+
SUPERTOKENS_API_KEY: ${{ secrets.SUPERTOKENS_API_KEY }}
57+
58+
- uses: supertokens/auth-react-testing-action/setup@main
59+
id: envs
60+
with:
61+
auth-react-version: ${{ steps.versions.outputs.authReactVersionXy }}
62+
node-sdk-version: ${{ steps.versions.outputs.nodeTag }}
63+
fdi-version: ${{ matrix.fdi-version }}
64+
65+
- id: setup-matrix
66+
uses: supertokens/extended-matrix-action@main
67+
with:
68+
artifact-id: ${{ matrix.fdi-version }}
69+
matrix: |
70+
py-version: ${{ needs.define-versions.outputs.pyVersions }}
71+
framework: ["flask"]
72+
spec: ${{ steps.envs.outputs.specs }}
73+
74+
launch-fdi-workflows:
75+
uses: ./.github/workflows/auth-react-test-2.yml
76+
needs:
77+
- define-versions
78+
- setup-auth-react
79+
strategy:
80+
max-parallel: 1 # This is important to avoid ddos GHA API
81+
fail-fast: false # Don't fail fast to avoid locking TF State
82+
matrix:
83+
fdi-version: ${{ fromJSON(needs.define-versions.outputs.fdiVersions) }}
84+
name: FDI ${{ matrix.fdi-version }}
85+
with:
86+
artifact-id: ${{ matrix.fdi-version }}
87+
AUTH_REACT__LOG_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__LOG_DIR }}
88+
AUTH_REACT__SCREENSHOT_DIR: ${{ needs.setup-auth-react.outputs.AUTH_REACT__SCREENSHOT_DIR }}
89+
AUTH_REACT__APP_SERVER: ${{ needs.setup-auth-react.outputs.AUTH_REACT__APP_SERVER }}
90+
AUTH_REACT__NODE_PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__NODE_PORT }}
91+
AUTH_REACT__TEST_MODE: ${{ needs.setup-auth-react.outputs.AUTH_REACT__TEST_MODE }}
92+
AUTH_REACT__PORT: ${{ needs.setup-auth-react.outputs.AUTH_REACT__PORT }}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Auth-React Tests - L2
2+
on:
3+
workflow_call:
4+
inputs:
5+
artifact-id:
6+
description: "Matrix artifact ID"
7+
required: true
8+
type: string
9+
10+
AUTH_REACT__LOG_DIR:
11+
description: AUTH_REACT__LOG_DIR
12+
required: true
13+
type: string
14+
15+
AUTH_REACT__SCREENSHOT_DIR:
16+
description: AUTH_REACT__SCREENSHOT_DIR
17+
required: true
18+
type: string
19+
20+
AUTH_REACT__APP_SERVER:
21+
description: AUTH_REACT__APP_SERVER
22+
required: true
23+
type: string
24+
25+
AUTH_REACT__NODE_PORT:
26+
description: AUTH_REACT__NODE_PORT
27+
required: true
28+
type: string
29+
30+
AUTH_REACT__TEST_MODE:
31+
description: AUTH_REACT__TEST_MODE
32+
required: true
33+
type: string
34+
35+
AUTH_REACT__PORT:
36+
description: AUTH_REACT__PORT
37+
required: true
38+
type: string
39+
40+
41+
jobs:
42+
retrieve-matrix:
43+
runs-on: ubuntu-latest
44+
45+
outputs:
46+
matrix: ${{ steps.get-matrix.outputs.matrix }}
47+
48+
steps:
49+
- uses: actions/download-artifact@v4
50+
with:
51+
name: matrix-${{ inputs.artifact-id }}
52+
- id: get-matrix
53+
run: |
54+
matrix=$(<matrix-${{ inputs.artifact-id }}.json)
55+
echo "matrix=$matrix" | tee -a "$GITHUB_OUTPUT"
56+
57+
launch-test-workflows:
58+
needs:
59+
- retrieve-matrix
60+
61+
strategy:
62+
max-parallel: 1 # This is important to avoid ddos GHA API
63+
fail-fast: false # Don't fail fast to avoid locking TF State
64+
matrix: ${{ fromJson(needs.retrieve-matrix.outputs.matrix) }}
65+
66+
uses: ./.github/workflows/auth-react-test-3.yml
67+
name: Group ${{ matrix.name }}
68+
with:
69+
matrix: ${{ matrix.items }}
70+
fdi-version: ${{ inputs.artifact-id }}
71+
AUTH_REACT__LOG_DIR: ${{ inputs.AUTH_REACT__LOG_DIR }}
72+
AUTH_REACT__SCREENSHOT_DIR: ${{ inputs.AUTH_REACT__SCREENSHOT_DIR }}
73+
AUTH_REACT__APP_SERVER: ${{ inputs.AUTH_REACT__APP_SERVER }}
74+
AUTH_REACT__NODE_PORT: ${{ inputs.AUTH_REACT__NODE_PORT }}
75+
AUTH_REACT__TEST_MODE: ${{ inputs.AUTH_REACT__TEST_MODE }}
76+
AUTH_REACT__PORT: ${{ inputs.AUTH_REACT__PORT }}

0 commit comments

Comments
 (0)