Skip to content

Commit e337f4c

Browse files
vharsekoCopilot
andauthored
CI: matrixed ui-smoke-tests job across Java 17,26 × context paths × samples (#167)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vharseko <6818498+vharseko@users.noreply.github.com>
1 parent 307d2e1 commit e337f4c

1 file changed

Lines changed: 76 additions & 29 deletions

File tree

.github/workflows/build.yml

Lines changed: 76 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -57,35 +57,6 @@ jobs:
5757
grep -q "OpenIDM ready" openidm/logs/openidm0.log.0
5858
! grep "ERROR" openidm/logs/openidm0.log.0
5959
! grep "SEVERE" openidm/logs/openidm0.log.0
60-
- name: UI Smoke Tests (Playwright)
61-
if: runner.os == 'Linux'
62-
run: |
63-
cd e2e
64-
npm init -y
65-
npm install @playwright/test
66-
npx playwright install chromium --with-deps
67-
npx playwright test --reporter=list
68-
env:
69-
OPENIDM_URL: http://localhost:8080
70-
- name: Start OpenIDM with custom context path /myidm
71-
if: runner.os == 'Linux'
72-
run: |
73-
openidm/shutdown.sh
74-
timeout 1m bash -c 'while [ -f openidm/.openidm.pid ]; do sleep 2; done' || true
75-
rm -rf openidm/logs/*
76-
OPENIDM_OPTS="-Dlogback.configurationFile=conf/logging-config.groovy -Dopenidm.context.path=/myidm" openidm/startup.sh &
77-
timeout 3m bash -c 'until grep -q "OpenIDM ready" openidm/logs/openidm0.log.0 ; do sleep 5; done' || cat openidm/logs/openidm0.log.0
78-
grep -q "OpenIDM ready" openidm/logs/openidm0.log.0
79-
! grep "ERROR" openidm/logs/openidm0.log.0
80-
! grep "SEVERE" openidm/logs/openidm0.log.0
81-
- name: UI Smoke Tests with /myidm context path (Playwright)
82-
if: runner.os == 'Linux'
83-
run: |
84-
cd e2e
85-
npx playwright test --reporter=list
86-
env:
87-
OPENIDM_URL: http://localhost:8080
88-
OPENIDM_CONTEXT_PATH: /myidm
8960
- name: Test on Windows
9061
if: runner.os == 'Windows'
9162
run: |
@@ -112,6 +83,82 @@ jobs:
11283
retention-days: 5
11384
path: |
11485
openidm-zip/target/*.zip
86+
ui-smoke-tests:
87+
runs-on: ubuntu-latest
88+
needs: build-maven
89+
strategy:
90+
fail-fast: false
91+
matrix:
92+
java: [ '17', '26' ]
93+
context_path: [ "", "/myidm" ]
94+
samples: [ "", "samples/getting-started", "samples/workflow" ]
95+
include:
96+
- context_path: ""
97+
context_label: default
98+
- context_path: "/myidm"
99+
context_label: myidm
100+
- samples: ""
101+
samples_label: default
102+
- samples: "samples/getting-started"
103+
samples_label: getting-started
104+
- samples: "samples/workflow"
105+
samples_label: workflow
106+
steps:
107+
- uses: actions/checkout@v6
108+
- name: Set up Java ${{ matrix.java }}
109+
uses: actions/setup-java@v5
110+
with:
111+
java-version: ${{ matrix.java }}
112+
distribution: 'zulu'
113+
- name: Download OpenIDM zip artifact
114+
uses: actions/download-artifact@v5
115+
with:
116+
name: ubuntu-latest-${{ matrix.java }}
117+
path: openidm-zip/target
118+
- name: Unpack OpenIDM
119+
run: unzip -q openidm-zip/target/openidm-*.zip
120+
- name: Cache Playwright browsers
121+
uses: actions/cache@v5
122+
with:
123+
path: ~/.cache/ms-playwright
124+
key: ${{ runner.os }}-playwright-browsers
125+
restore-keys: ${{ runner.os }}-playwright-
126+
- name: Start OpenIDM (context_path='${{ matrix.context_path }}', samples='${{ matrix.samples }}')
127+
run: |
128+
OPTS=""
129+
if [ -n "${{ matrix.context_path }}" ]; then
130+
OPTS="-Dlogback.configurationFile=conf/logging-config.groovy -Dopenidm.context.path=${{ matrix.context_path }}"
131+
fi
132+
ARGS=""
133+
if [ -n "${{ matrix.samples }}" ]; then
134+
ARGS="-p ${{ matrix.samples }}"
135+
fi
136+
OPENIDM_OPTS="$OPTS" openidm/startup.sh $ARGS &
137+
timeout 3m bash -c 'until grep -q "OpenIDM ready" openidm/logs/openidm0.log.0 ; do sleep 5; done' || cat openidm/logs/openidm0.log.0
138+
grep -q "OpenIDM ready" openidm/logs/openidm0.log.0
139+
! grep "ERROR" openidm/logs/openidm0.log.0
140+
! grep "SEVERE" openidm/logs/openidm0.log.0
141+
- name: UI Smoke Tests (Playwright)
142+
run: |
143+
cd e2e
144+
npm init -y
145+
npm install @playwright/test
146+
npx playwright install chromium --with-deps
147+
npx playwright test --reporter=list
148+
env:
149+
OPENIDM_URL: http://localhost:8080
150+
OPENIDM_CONTEXT_PATH: ${{ matrix.context_path }}
151+
OPENIDM_SAMPLE: ${{ matrix.samples }}
152+
- name: Upload failure artifacts
153+
uses: actions/upload-artifact@v7
154+
if: ${{ failure() }}
155+
with:
156+
name: failure-ui-java${{ matrix.java }}-${{ matrix.context_label }}-${{ matrix.samples_label }}
157+
retention-days: 1
158+
path: |
159+
openidm/logs/**
160+
e2e/playwright-report/**
161+
e2e/test-results/**
115162
build-docker:
116163
runs-on: 'ubuntu-latest'
117164
services:

0 commit comments

Comments
 (0)