1- name : Nightly Server test - Latest build
1+ name : Unstable build tests and promotion
22on :
33 workflow_dispatch :
44 inputs :
@@ -35,13 +35,65 @@ concurrency:
3535
3636jobs :
3737
38+ manifests :
39+ name : Check Docker manifests
40+ runs-on : ubuntu-latest
41+ outputs :
42+ skip_dms : ${{ steps.services.outputs.skip_dms }}
43+ skip_core_windows : ${{ steps.services.outputs.skip_core_windows }}
44+ skip_core_linux : ${{ steps.services.outputs.skip_core_linux }}
45+ strategy :
46+ matrix :
47+ include :
48+ - container-stable : " windows-latest"
49+ container-unstable : " windows-latest-unstable"
50+ service : " dms"
51+ service-name : " Windows DMS"
52+ - container-stable : " core-windows-latest"
53+ container-unstable : " core-windows-latest-unstable"
54+ service : " core_windows"
55+ service-name : " Windows Core Service"
56+ - container-stable : " core-linux-latest"
57+ container-unstable : " core-linux-latest-unstable"
58+ service : " core_linux"
59+ service-name : " Linux Core Service"
60+ steps :
61+ - name : Login to GitHub Container Registry
62+ uses : docker/login-action@v3
63+ with :
64+ registry : ghcr.io
65+ username : ${{ github.actor }}
66+ password : ${{ secrets.GITHUB_TOKEN }}
67+
68+ - name : Check ${{ matrix.service-name }} manifest
69+ id : services
70+ run : |
71+ docker manifest inspect ghcr.io/ansys/geometry:${{ matrix.container-stable }} > ${{ matrix.container-stable }}.json
72+ docker manifest inspect ghcr.io/ansys/geometry:${{ matrix.container-unstable }} > ${{ matrix.container-unstable }}.json || true
73+
74+ # Verify that the unstable manifest exists - otherwise create an empty file
75+ if [ ! -f ${{ matrix.container-unstable }}.json ]; then
76+ touch ${{ matrix.container-unstable }}.json
77+ fi
78+
79+
80+ # Check if the manifests are the same (and if so, create an output that will skip the next job)
81+ if diff ${{ matrix.container-stable }}.json ${{ matrix.container-unstable }}.json; then
82+ echo "${{ matrix.service-name }} container manifests are the same... skipping"
83+ echo "skip_${{ matrix.service }}=1" >> "$GITHUB_OUTPUT"
84+ else
85+ echo "${{ matrix.service-name }} container manifests are different"
86+ echo "skip_${{ matrix.service }}=0" >> "$GITHUB_OUTPUT"
87+ fi
88+
3889# =================================================================================================
3990# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RUNNING ON SELF-HOSTED RUNNER ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4091# =================================================================================================
4192
4293 windows-dms-tests :
43- name : Nightly unstable testing - Windows DMS
44- if : vars.SKIP_UNSTABLE_CONTAINERS_TEMPORARILY != 1
94+ name : Windows DMS
95+ needs : manifests
96+ if : needs.manifests.outputs.skip_dms == 0
4597 runs-on : [self-hosted, Windows, pygeometry]
4698 env :
4799 PYVISTA_OFF_SCREEN : true
@@ -127,12 +179,12 @@ jobs:
127179 {
128180 "@type": "MessageCard",
129181 "@context": "http://schema.org/extensions",
130- "summary": "Nightly Tests for Windows DMS failing",
182+ "summary": "Unstable build tests for Windows DMS failing",
131183 "themeColor": "f44336",
132- "title": "PyAnsys Geometry Nightly Tests - Windows DMS failing",
184+ "title": "PyAnsys Geometry unstable build tests - Windows DMS failing",
133185 "sections": [
134186 {
135- "activityTitle": "Windows DMS nightly tests are failing",
187+ "activityTitle": "Windows DMS unstable build tests are failing",
136188 "activitySubtitle": "Check the run for more details: https://github.com/ansys/pyansys-geometry/actions/runs/${{ github.run_id }}",
137189 "facts": [
138190 {
@@ -145,8 +197,9 @@ jobs:
145197 }
146198
147199 windows-core-tests :
148- name : Nightly unstable testing - Windows Core Service
149- if : vars.SKIP_UNSTABLE_CONTAINERS_TEMPORARILY != 1
200+ name : Windows Core Service
201+ needs : manifests
202+ if : needs.manifests.outputs.skip_core_windows == 0
150203 # runs-on: [self-hosted, Windows, pygeometry]
151204 runs-on : # TODO: Waiting for ansys-network runner to be updated
152205 group : pyansys-self-hosted
@@ -235,12 +288,12 @@ jobs:
235288 {
236289 "@type": "MessageCard",
237290 "@context": "http://schema.org/extensions",
238- "summary": "Nightly Tests for Windows Core Service failing",
291+ "summary": "Unstable build tests for Windows Core Service failing",
239292 "themeColor": "f44336",
240- "title": "PyAnsys Geometry Nightly Tests - Windows Core Service failing",
293+ "title": "PyAnsys Geometry unstable build tests - Windows Core Service failing",
241294 "sections": [
242295 {
243- "activityTitle": "Windows Core Service nightly tests are failing",
296+ "activityTitle": "Windows Core Service unstable build tests are failing",
244297 "activitySubtitle": "Check the run for more details: https://github.com/ansys/pyansys-geometry/actions/runs/${{ github.run_id }}",
245298 "facts": [
246299 {
@@ -258,8 +311,9 @@ jobs:
258311# =================================================================================================
259312
260313 linux-tests :
261- name : Nightly unstable testing - Linux
262- if : vars.SKIP_UNSTABLE_CONTAINERS_TEMPORARILY != 1
314+ name : Linux Core Service
315+ needs : manifests
316+ if : needs.manifests.outputs.skip_core_linux == 0
263317 runs-on : ubuntu-latest
264318
265319 steps :
@@ -300,12 +354,12 @@ jobs:
300354 {
301355 "@type": "MessageCard",
302356 "@context": "http://schema.org/extensions",
303- "summary": "Nightly Tests for Linux failing",
357+ "summary": "Unstable build tests for Linux Core Service failing",
304358 "themeColor": "f44336",
305- "title": "PyAnsys Geometry Nightly Tests - Linux failing",
359+ "title": "PyAnsys Geometry unstable build tests - Linux Core Service failing",
306360 "sections": [
307361 {
308- "activityTitle": "Linux nightly tests are failing",
362+ "activityTitle": "Linux Core Service unstable build tests are failing",
309363 "activitySubtitle": "Check the run for more details: https://github.com/ansys/pyansys-geometry/actions/runs/${{ github.run_id }}",
310364 "facts": [
311365 {
@@ -318,9 +372,9 @@ jobs:
318372 }
319373
320374 promote-windows-dms :
321- needs : [ windows-dms-tests, windows-core-tests, linux-tests]
375+ needs : windows-dms-tests
322376 runs-on : windows-latest
323- name : Promote Windows container
377+ name : Promote Windows DMS container
324378 if : ${{ github.event.inputs.promote == 'true' || github.event_name == 'schedule' }}
325379 env :
326380 WINDOWS_UNSTABLE : ghcr.io/ansys/geometry:windows-latest-unstable
@@ -343,9 +397,9 @@ jobs:
343397 run : docker push ${{ env.WINDOWS_STABLE_GHCR }}
344398
345399 promote-windows-core :
346- needs : [ windows-dms-tests, windows- core-tests, linux-tests]
400+ needs : windows-core-tests
347401 runs-on : windows-latest
348- name : Promote Windows container
402+ name : Promote Windows Core Service container
349403 if : ${{ github.event.inputs.promote == 'true' || github.event_name == 'schedule' }}
350404 env :
351405 WINDOWS_UNSTABLE : ghcr.io/ansys/geometry:core-windows-latest-unstable
@@ -368,9 +422,9 @@ jobs:
368422 run : docker push ${{ env.WINDOWS_STABLE_GHCR }}
369423
370424 promote-linux :
371- needs : [windows-dms-tests, windows-core-tests, linux-tests]
425+ needs : linux-tests
372426 runs-on : ubuntu-latest
373- name : Promote Linux container
427+ name : Promote Linux Core Service container
374428 if : ${{ github.event.inputs.promote == 'true' || github.event_name == 'schedule' }}
375429 env :
376430 LINUX_UNSTABLE : ghcr.io/ansys/geometry:core-linux-latest-unstable
0 commit comments