1212 test :
1313 timeout-minutes : 60
1414 runs-on : ubuntu-24.04
15+ strategy :
16+ fail-fast : false
17+ matrix :
18+ include :
19+ - testType : complete
20+ configFile : playwright.config.complete.ts
21+ extraEnv : |
22+ PLAYWRIGHT_JWT_TOKEN: ${{ secrets.PLAYWRIGHT_JWT_TOKEN }}
23+ PLAYWRIGHT_GOOGLE_EMAIL: ${{ secrets.PLAYWRIGHT_GOOGLE_EMAIL }}
24+ PLAYWRIGHT_GOOGLE_PASSWORD: ${{ secrets.PLAYWRIGHT_GOOGLE_PASSWORD }}
25+ PLAYWRIGHT_GOOGLE_TOTP_SECRET: ${{ secrets.PLAYWRIGHT_GOOGLE_TOTP_SECRET }}
26+ - testType : connect
27+ configFile : playwright.config.connect.ts
28+ extraEnv : |
29+ BACKEND_API_BASIC_AUTH: ${{ secrets.BACKEND_API_BASIC_AUTH }}
30+ PLAYWRIGHT_CONNECT_PROJECT_ID: ${{ secrets.PLAYWRIGHT_CONNECT_PROJECT_ID }}
31+ PLAYWRIGHT_NGROK_AUTH_TOKEN: ${{ secrets.PLAYWRIGHT_NGROK_AUTH_TOKEN }}
1532
1633 steps :
1734 - name : Checkout code
@@ -90,78 +107,26 @@ jobs:
90107 echo "LOG_STREAM_NAME=javascript-$TIMESTAMP" >> $GITHUB_ENV
91108 aws logs create-log-stream --log-group-name "test-results-board" --log-stream-name "javascript-$TIMESTAMP"
92109
93- - name : Run Complete tests for react
94- run : |
95- cd packages/tests-e2e
96- set +e
97- npx playwright test --config=playwright.config.complete.ts
98- EXIT_CODE=$?
99- if [ $EXIT_CODE -ne 0 ]; then
100- echo "COMPLETE_REACT_FAILED=true" >> $GITHUB_ENV
101- fi
102- env :
110+ - name : Run ${{ matrix.testType }} tests for react
111+ working-directory : packages/tests-e2e
112+ env : |
103113 PLAYWRIGHT_NUM_CORES: 4
104- PLAYWRIGHT_JWT_TOKEN : ${{ secrets.PLAYWRIGHT_JWT_TOKEN }}
105- PLAYWRIGHT_GOOGLE_EMAIL : ${{ secrets.PLAYWRIGHT_GOOGLE_EMAIL }}
106- PLAYWRIGHT_GOOGLE_PASSWORD : ${{ secrets.PLAYWRIGHT_GOOGLE_PASSWORD }}
107- PLAYWRIGHT_GOOGLE_TOTP_SECRET : ${{ secrets.PLAYWRIGHT_GOOGLE_TOTP_SECRET }}
108114 GITHUB_RUN_ID: ${{ github.run_id }}
109115 SLACK_BOT_USER_OAUTH_TOKEN: ${{ secrets.SLACK_BOT_USER_OAUTH_TOKEN }}
110116 GITHUB_BRANCH_NAME: ${{ github.ref_name }}
111- continue-on-error : true
112-
113- - uses : actions/upload-artifact@v4
114- with :
115- name : playwright-report-complete-react
116- path : packages/tests-e2e/playwright-report/
117- retention-days : 30
118-
119- - name : Send logs to AWS CloudWatch
120- env :
121- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
122- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
123- AWS_REGION : ${{ secrets.AWS_REGION }}
117+ ${{ matrix.extraEnv }}
124118 run : |
125- cd packages/tests-e2e
126- TESTS=$(xmllint --xpath 'string(/testsuites/@tests)' test-results/results.xml)
127- FAILURES=$(xmllint --xpath 'string(/testsuites/@failures)' test-results/results.xml)
128- SKIPPED=$(xmllint --xpath 'string(/testsuites/@skipped)' test-results/results.xml)
129- ERRORS=$(xmllint --xpath 'string(/testsuites/@errors)' test-results/results.xml)
130- TIME=$(xmllint --xpath 'string(/testsuites/@time)' test-results/results.xml)
131- PASSED=$((TESTS - FAILURES - ERRORS - SKIPPED))
132- FAILED=$((FAILURES + ERRORS))
133- TIMESTAMP=$(date +%s000)
134- LOG_EVENT_JSON="[{\"timestamp\":$TIMESTAMP,\"message\":\"{\\\"application\\\":\\\"complete\\\",\\\"platform\\\":\\\"react\\\",\\\"run_type\\\":\\\"commitly\\\",\\\"execution_time\\\":$TIME,\\\"passed\\\":$PASSED,\\\"failed\\\":$FAILED,\\\"link\\\":\\\"https://github.com/corbado/javascript/actions/runs/${GITHUB_RUN_ID}\\\"}\"}]"
135- aws logs put-log-events --log-group-name "test-results-board" --log-stream-name "$LOG_STREAM_NAME" --log-events "$LOG_EVENT_JSON"
136-
137- - name : Run Connect tests for react
138- run : |
139- cd packages/tests-e2e
140- BRANCH_NAME=$(echo $BRANCH_NAME_RAW | tr '/_' '-')
141- export PLAYWRIGHT_TEST_URL="https://$BRANCH_NAME.connect-next.playground.corbado.io"
142- set +e
143- npx playwright test --config=playwright.config.connect.ts
144- EXIT_CODE=$?
145- if [ $EXIT_CODE -ne 0 ]; then
146- echo "CONNECT_REACT_FAILED=true" >> $GITHUB_ENV
147- fi
148- env :
149- PLAYWRIGHT_NUM_CORES : 4
150- BACKEND_API_BASIC_AUTH : ${{ secrets.BACKEND_API_BASIC_AUTH }}
151- PLAYWRIGHT_CONNECT_PROJECT_ID : ${{ secrets.PLAYWRIGHT_CONNECT_PROJECT_ID }}
152- PLAYWRIGHT_NGROK_AUTH_TOKEN : ${{ secrets.PLAYWRIGHT_NGROK_AUTH_TOKEN }}
153- GITHUB_RUN_ID : ${{ github.run_id }}
154- SLACK_BOT_USER_OAUTH_TOKEN : ${{ secrets.SLACK_BOT_USER_OAUTH_TOKEN }}
155- GITHUB_BRANCH_NAME : ${{ env.BRANCH_NAME_RAW }}
156- continue-on-error : true
119+ npx playwright test --config=${{ matrix.configFile }}
157120
158121 - uses : actions/upload-artifact@v4
122+ if : always()
159123 with :
160- name : playwright-report-connect -react
124+ name : playwright-report-${{ matrix.testType }} -react
161125 path : packages/tests-e2e/playwright-report/
162126 retention-days : 30
163127
164128 - name : Send logs to AWS CloudWatch
129+ if : always()
165130 env :
166131 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
167132 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -176,24 +141,5 @@ jobs:
176141 PASSED=$((TESTS - FAILURES - ERRORS - SKIPPED))
177142 FAILED=$((FAILURES + ERRORS))
178143 TIMESTAMP=$(date +%s000)
179- LOG_EVENT_JSON="[{\"timestamp\":$TIMESTAMP,\"message\":\"{\\\"application\\\":\\\"connect \\\",\\\"platform\\\":\\\"react\\\",\\\"run_type\\\":\\\"commitly\\\",\\\"execution_time\\\":$TIME,\\\"passed\\\":$PASSED,\\\"failed\\\":$FAILED,\\\"link\\\":\\\"https://github.com/corbado/javascript/actions/runs/${GITHUB_RUN_ID}\\\"}\"}]"
144+ LOG_EVENT_JSON="[{\"timestamp\":$TIMESTAMP,\"message\":\"{\\\"application\\\":\\\"${{ matrix.testType }} \\\",\\\"platform\\\":\\\"react\\\",\\\"run_type\\\":\\\"commitly\\\",\\\"execution_time\\\":$TIME,\\\"passed\\\":$PASSED,\\\"failed\\\":$FAILED,\\\"link\\\":\\\"https://github.com/corbado/javascript/actions/runs/${GITHUB_RUN_ID}\\\"}\"}]"
180145 aws logs put-log-events --log-group-name "test-results-board" --log-stream-name "$LOG_STREAM_NAME" --log-events "$LOG_EVENT_JSON"
181-
182- - name : Aggregate results
183- run : |
184- FAILED_STEPS=""
185- if [ "${COMPLETE_REACT_FAILED}" = "true" ]; then
186- FAILED_STEPS="${FAILED_STEPS} Complete-React"
187- fi
188- if [ "${COMPLETE_WEBJS_FAILED}" = "true" ]; then
189- FAILED_STEPS="${FAILED_STEPS} Complete-WebJs"
190- fi
191- if [ "${COMPLETE_WEBJSSCRIPT_FAILED}" = "true" ]; then
192- FAILED_STEPS="${FAILED_STEPS} Complete-WebJsScript"
193- fi
194- if [ -n "$FAILED_STEPS" ]; then
195- echo "The following test steps have failed: $FAILED_STEPS"
196- exit 1
197- else
198- echo "All tests passed."
199- fi
0 commit comments