99 - main
1010
1111env :
12- MAIN_PYTHON_VERSION : ' 3.12 '
12+ MAIN_PYTHON_VERSION : ' 3.13 '
1313 PACKAGE_NAME : ' ansys-geometry-core'
1414 DOCUMENTATION_CNAME : ' geometry.docs.pyansys.com'
1515 ANSRV_GEO_IMAGE : ' ghcr.io/ansys/geometry'
16- ANSRV_GEO_IMAGE_WINDOWS_TAG : ghcr.io/ansys/geometry:windows-latest
16+ ANSRV_GEO_IMAGE_DOCS_TAG : ghcr.io/ansys/geometry:windows-latest
1717 ANSRV_GEO_PORT : 700
1818 ANSRV_GEO_LICENSE_SERVER : ${{ secrets.LICENSE_SERVER }}
1919 GEO_CONT_NAME : ans_geo
2020 RESET_IMAGE_CACHE : 4
2121 IS_WORKFLOW_RUNNING : True
22- ARTIFACTORY_VERSION : v251
22+ ARTIFACTORY_VERSION : v252
2323
2424concurrency :
2525 group : ${{ github.workflow }}-${{ github.ref }}
7878 fail-fast : false
7979 matrix :
8080 os : [ubuntu-latest, windows-latest, macos-latest]
81- python-version : ['3.10', '3.11', '3.12']
81+ python-version : ['3.10', '3.11', '3.12', '3.13' ]
8282 should-release :
8383 - ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }}
8484 exclude :
@@ -109,7 +109,10 @@ jobs:
109109 testing-windows :
110110 name : Testing and coverage (Windows)
111111 needs : [smoke-tests]
112- runs-on : [self-hosted, Windows, pygeometry]
112+ # runs-on: [self-hosted, Windows, pygeometry]
113+ runs-on : # TODO: Waiting for ansys-network runner to be updated
114+ group : pyansys-self-hosted
115+ labels : [self-hosted, Windows, pygeometry]
113116 continue-on-error : ${{ matrix.experimental }}
114117 env :
115118 SKIP_UNSTABLE : ${{ vars.SKIP_UNSTABLE_CONTAINERS_TEMPORARILY == 1 && matrix.experimental }}
@@ -122,6 +125,10 @@ jobs:
122125 experimental : false
123126 - docker-image : " windows-latest-unstable"
124127 experimental : true
128+ - docker-image : " core-windows-latest"
129+ experimental : false
130+ - docker-image : " core-windows-latest-unstable"
131+ experimental : true
125132
126133 steps :
127134 - uses : actions/checkout@v4
@@ -135,7 +142,7 @@ jobs:
135142
136143 - name : Set up headless display
137144 if : env.SKIP_UNSTABLE == 'false'
138- uses : pyvista/setup-headless-display-action@v2
145+ uses : pyvista/setup-headless-display-action@v3
139146 with :
140147 pyvista : false
141148
@@ -170,6 +177,14 @@ jobs:
170177 run :
171178 echo "ANSRV_GEO_LICENSE_SERVER=${{ secrets.INTERNAL_LICENSE_SERVER }}" | Out-File -FilePath $env:GITHUB_ENV -Append
172179
180+ - name : Stop any running containers
181+ run : |
182+ $dockerContainers = docker ps -a -q
183+ if (-not [string]::IsNullOrEmpty($dockerContainers)) {
184+ docker stop $dockerContainers
185+ docker rm $dockerContainers
186+ }
187+
173188 - name : Start Geometry service and verify start
174189 if : env.SKIP_UNSTABLE == 'false'
175190 run : |
@@ -227,11 +242,11 @@ jobs:
227242 - name : Stop the Geometry service
228243 if : always()
229244 run : |
230- if ( $ env: SKIP_UNSTABLE -match 'false')
245+ if ( "${{ env. SKIP_UNSTABLE }}" -match 'false')
231246 {
232- docker stop $env: GEO_CONT_NAME
233- docker logs $env: GEO_CONT_NAME
234- docker rm $env: GEO_CONT_NAME
247+ docker stop ${{ env. GEO_CONT_NAME }}
248+ docker logs ${{ env. GEO_CONT_NAME }}
249+ docker rm ${{ env. GEO_CONT_NAME }}
235250 }
236251
237252 - name : Stop any remaining containers
@@ -254,7 +269,7 @@ jobs:
254269 PYVISTA_OFF_SCREEN : true
255270 steps :
256271 - name : Set up headless display
257- uses : pyvista/setup-headless-display-action@v2
272+ uses : pyvista/setup-headless-display-action@v3
258273 with :
259274 pyvista : false
260275
@@ -266,15 +281,23 @@ jobs:
266281 password : ${{ secrets.GITHUB_TOKEN }}
267282
268283 - name : Download Geometry service container (if needed)
269- run : docker pull $env:ANSRV_GEO_IMAGE_WINDOWS_TAG
284+ run : docker pull ${{ env.ANSRV_GEO_IMAGE_DOCS_TAG }}
270285
271286 - name : Check location of self-hosted runner and define license server accordingly
272287 if : runner.name == 'pygeometry-ci-2'
273288 run :
274289 echo "ANSRV_GEO_LICENSE_SERVER=${{ secrets.INTERNAL_LICENSE_SERVER }}" | Out-File -FilePath $env:GITHUB_ENV -Append
275290
291+ - name : Stop any running containers
292+ run : |
293+ $dockerContainers = docker ps -a -q
294+ if (-not [string]::IsNullOrEmpty($dockerContainers)) {
295+ docker stop $dockerContainers
296+ docker rm $dockerContainers
297+ }
298+
276299 - name : Start Geometry service and verify start
277- run : docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ${{ env.ANSRV_GEO_IMAGE_WINDOWS_TAG }}
300+ run : docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ${{ env.ANSRV_GEO_IMAGE_DOCS_TAG }}
278301
279302 - name : Run Ansys documentation building action
280303 uses : ansys/actions/doc-build@v8
@@ -286,9 +309,9 @@ jobs:
286309 - name : Stop the Geometry service
287310 if : always()
288311 run : |
289- docker stop $env: GEO_CONT_NAME
290- docker logs $env: GEO_CONT_NAME
291- docker rm $env: GEO_CONT_NAME
312+ docker stop ${{ env. GEO_CONT_NAME }}
313+ docker logs ${{ env. GEO_CONT_NAME }}
314+ docker rm ${{ env. GEO_CONT_NAME }}
292315
293316 - name : Stop any remaining containers
294317 if : always()
@@ -315,9 +338,9 @@ jobs:
315338 fail-fast : false
316339 matrix :
317340 include :
318- - docker-image : " linux-latest"
341+ - docker-image : " core- linux-latest"
319342 experimental : false
320- - docker-image : " linux-latest-unstable"
343+ - docker-image : " core- linux-latest-unstable"
321344 experimental : true
322345
323346 steps :
@@ -387,11 +410,11 @@ jobs:
387410 needs : [smoke-tests]
388411 runs-on : ubuntu-latest
389412 env :
390- ANSRV_GEO_IMAGE_MINREQS : ' ghcr.io/ansys/geometry:linux-latest'
413+ ANSRV_GEO_IMAGE_MINREQS : ' ghcr.io/ansys/geometry:core- linux-latest'
391414 strategy :
392415 fail-fast : false
393416 matrix :
394- python-version : ['3.10', '3.11', '3.12']
417+ python-version : ['3.10', '3.11', '3.12', '3.13' ]
395418 steps :
396419 - name : Login in Github Container registry
397420 uses : docker/login-action@v3
@@ -465,8 +488,9 @@ jobs:
465488 - name : Download binaries (if conditions met)
466489 if : env.REUSE_LAST_ARTIFACTS == 'false'
467490 run : |
468- curl.exe -X GET -H "X-JFrog-Art-Api: ${{ secrets.ARTIFACTORY_KEY }}" ${{ secrets.ARTIFACTORY_URL }}/${{ env.ARTIFACTORY_VERSION }}/DockerWindows.zip --output windows-binaries.zip
469- curl.exe -X GET -H "X-JFrog-Art-Api: ${{ secrets.ARTIFACTORY_KEY }}" ${{ secrets.ARTIFACTORY_URL }}/${{ env.ARTIFACTORY_VERSION }}/DockerLinux.zip --output linux-binaries.zip
491+ curl.exe -X GET -H "X-JFrog-Art-Api: ${{ secrets.ARTIFACTORY_KEY }}" ${{ secrets.ARTIFACTORY_URL }}/${{ env.ARTIFACTORY_VERSION }}/DockerWindows.zip --output windows-dms-binaries.zip
492+ curl.exe -X GET -H "X-JFrog-Art-Api: ${{ secrets.ARTIFACTORY_KEY }}" ${{ secrets.ARTIFACTORY_URL }}/${{ env.ARTIFACTORY_VERSION }}/DockerCoreWindows.zip --output windows-core-binaries.zip
493+ curl.exe -X GET -H "X-JFrog-Art-Api: ${{ secrets.ARTIFACTORY_KEY }}" ${{ secrets.ARTIFACTORY_URL }}/${{ env.ARTIFACTORY_VERSION }}/DockerCoreLinux.zip --output linux-core-binaries.zip
470494
471495 - name : Reuse last binaries (if conditions met)
472496 if : env.REUSE_LAST_ARTIFACTS == 'true'
@@ -485,21 +509,29 @@ jobs:
485509 git lfs fetch origin --include="$env:PREVIOUS_VERSION/*"
486510 git lfs checkout $env:PREVIOUS_VERSION
487511 # Copy the binaries from the previous version
488- cp ./$env:PREVIOUS_VERSION/windows-binaries.zip windows-binaries.zip
489- cp ./$env:PREVIOUS_VERSION/linux-binaries.zip linux-binaries.zip
512+ cp ./$env:PREVIOUS_VERSION/windows-dms-binaries.zip windows-dms-binaries.zip
513+ cp ./$env:PREVIOUS_VERSION/windows-core-binaries.zip windows-core-binaries.zip
514+ cp ./$env:PREVIOUS_VERSION/linux-core-binaries.zip linux-core-binaries.zip
515+
516+ - name : Upload DMS Windows binaries as workflow artifacts
517+ uses : actions/upload-artifact@v4
518+ with :
519+ name : windows-dms-binaries.zip
520+ path : windows-dms-binaries.zip
521+ retention-days : 1
490522
491- - name : Upload Windows binaries as workflow artifacts
523+ - name : Upload Linux Core service binaries as workflow artifacts
492524 uses : actions/upload-artifact@v4
493525 with :
494- name : windows -binaries.zip
495- path : windows -binaries.zip
526+ name : linux-core -binaries.zip
527+ path : linux-core -binaries.zip
496528 retention-days : 1
497529
498- - name : Upload Linux binaries as workflow artifacts
530+ - name : Upload Windows Core service binaries as workflow artifacts
499531 uses : actions/upload-artifact@v4
500532 with :
501- name : linux -binaries.zip
502- path : linux -binaries.zip
533+ name : windows-core -binaries.zip
534+ path : windows-core -binaries.zip
503535 retention-days : 1
504536
505537 - name : Publish the binaries to private repo
@@ -509,8 +541,9 @@ jobs:
509541 $env:VERSION=$env:VERSION_WITH_PREFIX.substring(1)
510542 mkdir $env:VERSION -ErrorAction SilentlyContinue
511543 Remove-Item -Recurse -Force .\$env:VERSION\*
512- mv windows-binaries.zip .\$env:VERSION\
513- mv linux-binaries.zip .\$env:VERSION\
544+ mv windows-dms-binaries.zip .\$env:VERSION\
545+ mv windows-core-binaries.zip .\$env:VERSION\
546+ mv linux-core-binaries.zip .\$env:VERSION\
514547 git config user.email ${{ secrets.BINARIES_EMAIL }}
515548 git config user.name ${{ secrets.BINARIES_USERNAME }}
516549 git add *
@@ -519,8 +552,19 @@ jobs:
519552
520553 build-windows-container :
521554 name : Building Geometry Service - Windows
522- runs-on : [self-hosted, Windows, pygeometry]
555+ # runs-on: [self-hosted, Windows, pygeometry]
556+ runs-on : # TODO: Waiting for ansys-network runner to be updated
557+ group : pyansys-self-hosted
558+ labels : [self-hosted, Windows, pygeometry]
523559 needs : [fetch-release-artifacts]
560+ strategy :
561+ fail-fast : false
562+ matrix :
563+ include :
564+ - mode : " dms"
565+ zip-file : " windows-dms-binaries.zip"
566+ - mode : " coreservice"
567+ zip-file : " windows-core-binaries.zip"
524568 steps :
525569 - name : Checkout repository
526570 uses : actions/checkout@v4
@@ -530,16 +574,16 @@ jobs:
530574 with :
531575 python-version : ${{ env.MAIN_PYTHON_VERSION }}
532576
533- - name : Download Windows binaries
577+ - name : Download Windows binaries for ${{ matrix.mode }}
534578 uses : actions/download-artifact@v4
535579 with :
536- name : windows-binaries .zip
537- path : docker/windows-binaries .zip
580+ name : ${{ matrix .zip-file }}
581+ path : docker/${{ matrix .zip-file }}
538582
539583 - name : Build Docker image
540584 working-directory : docker
541585 run : |
542- docker build -f windows/Dockerfile -t ghcr.io/ansys/geometry:windows-latest -tmp .
586+ docker build -f windows/${{ matrix.mode }}/ Dockerfile -t ghcr.io/ansys/geometry:windows-tmp .
543587
544588 - name : Check location of self-hosted runner and define license server accordingly
545589 if : runner.name == 'pygeometry-ci-2'
@@ -548,7 +592,7 @@ jobs:
548592
549593 - name : Launch Geometry service
550594 run : |
551- docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ghcr.io/ansys/geometry:windows-latest- tmp
595+ docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ghcr.io/ansys/geometry:windows-tmp
552596
553597 - name : Validate connection using PyAnsys Geometry
554598 run : |
@@ -573,14 +617,14 @@ jobs:
573617 - name : " Compressing Windows Dockerfile"
574618575619 with :
576- files : docker/windows/Dockerfile
577- dest : windows-dockerfile.zip
620+ files : docker/windows/${{ matrix.mode }}/ Dockerfile
621+ dest : windows-${{ matrix.mode }}- dockerfile.zip
578622
579623 - name : Upload Windows Dockerfile
580624 uses : actions/upload-artifact@v4
581625 with :
582- name : windows-dockerfile.zip
583- path : windows-dockerfile.zip
626+ name : windows-${{ matrix.mode }}- dockerfile.zip
627+ path : windows-${{ matrix.mode }}- dockerfile.zip
584628 retention-days : 7
585629
586630 - name : Stop the Geometry service
@@ -602,7 +646,7 @@ jobs:
602646 - name : Delete the Docker images (and untagged ones)
603647 if : always()
604648 run : |
605- docker image rm ghcr.io/ansys/geometry:windows-latest- tmp
649+ docker image rm ghcr.io/ansys/geometry:windows-tmp
606650 docker system prune -f
607651
608652# =================================================================================================
@@ -625,17 +669,17 @@ jobs:
625669 - name : Download Linux binaries
626670 uses : actions/download-artifact@v4
627671 with :
628- name : linux-binaries.zip
629- path : docker/linux-binaries.zip
672+ name : linux-core- binaries.zip
673+ path : docker/linux-core- binaries.zip
630674
631675 - name : Build Docker image
632676 working-directory : docker
633677 run : |
634- docker build -f linux/Dockerfile -t ghcr.io/ansys/geometry:linux-latest- tmp .
678+ docker build -f linux/Dockerfile -t ghcr.io/ansys/geometry:linux-tmp .
635679
636680 - name : Launch Geometry service
637681 run : |
638- docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ghcr.io/ansys/geometry:linux-latest- tmp
682+ docker run --detach --name ${{ env.GEO_CONT_NAME }} -e LICENSE_SERVER=${{ env.ANSRV_GEO_LICENSE_SERVER }} -p ${{ env.ANSRV_GEO_PORT }}:50051 ghcr.io/ansys/geometry:linux-tmp
639683
640684 - name : Validate connection using PyAnsys Geometry
641685 run : |
@@ -663,14 +707,14 @@ jobs:
663707 - name : " Compressing Linux Dockerfile"
664708665709 with :
666- files : docker/linux/Dockerfile
667- dest : linux-dockerfile.zip
710+ files : docker/linux/coreservice/ Dockerfile
711+ dest : linux-core- dockerfile.zip
668712
669713 - name : Upload Linux Dockerfile
670714 uses : actions/upload-artifact@v4
671715 with :
672- name : linux-dockerfile.zip
673- path : linux-dockerfile.zip
716+ name : linux-core- dockerfile.zip
717+ path : linux-core- dockerfile.zip
674718 retention-days : 7
675719
676720 - name : Stop the Geometry service
@@ -701,7 +745,7 @@ jobs:
701745 uses : ansys/actions/release-github@v8
702746 with :
703747 library-name : ${{ env.PACKAGE_NAME }}
704- additional-artifacts : windows-dockerfile.zip linux-dockerfile.zip
748+ additional-artifacts : windows-dms- dockerfile.zip windows-core-dockerfile.zip linux-core -dockerfile.zip
705749
706750 upload_dev_docs :
707751 name : Upload dev documentation
0 commit comments