Skip to content

Commit 3393866

Browse files
author
aehnh
committed
matrix complete and connect tests
1 parent 7c84765 commit 3393866

File tree

1 file changed

+26
-80
lines changed

1 file changed

+26
-80
lines changed

.github/workflows/test.yml

Lines changed: 26 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ jobs:
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

Comments
 (0)