@@ -32,9 +32,7 @@ concurrency:
3232 group : ${{ github.workflow }}-${{ github.ref }}
3333 cancel-in-progress : true
3434
35- permissions :
36- contents : write
37- packages : write
35+ permissions : {} # Disable default permissions
3836
3937jobs :
4038
4442 outputs :
4543 skip_core_windows : ${{ steps.services.outputs.skip_core_windows }}
4644 skip_core_linux : ${{ steps.services.outputs.skip_core_linux }}
45+ permissions :
46+ contents : read
47+ packages : read
4748 strategy :
4849 matrix :
4950 include :
@@ -65,23 +66,28 @@ jobs:
6566
6667 - name : Check ${{ matrix.service-name }} manifest
6768 id : services
69+ env :
70+ CONTAINER_STABLE : ${{ matrix.container-stable }}
71+ CONTAINER_UNSTABLE : ${{ matrix.container-unstable }}
72+ SERVICE : ${{ matrix.service }}
73+ SERVICE_NAME : ${{ matrix.service-name }}
6874 run : |
69- docker manifest inspect ghcr.io/ansys/geometry:${{ matrix.container-stable }} > ${{ matrix.container-stable } }.json
70- docker manifest inspect ghcr.io/ansys/geometry:${{ matrix.container-unstable }} > ${{ matrix.container-unstable } }.json || true
75+ docker manifest inspect ghcr.io/ansys/geometry:${CONTAINER_STABLE} > ${CONTAINER_STABLE }.json
76+ docker manifest inspect ghcr.io/ansys/geometry:${CONTAINER_UNSTABLE} > ${CONTAINER_UNSTABLE }.json || true
7177
7278 # Verify that the unstable manifest exists - otherwise create an empty file
73- if [ ! -f ${{ matrix.container-unstable } }.json ]; then
74- touch ${{ matrix.container-unstable } }.json
79+ if [ ! -f ${CONTAINER_UNSTABLE }.json ]; then
80+ touch ${CONTAINER_UNSTABLE }.json
7581 fi
7682
7783
7884 # Check if the manifests are the same (and if so, create an output that will skip the next job)
79- if diff ${{ matrix.container-stable }} .json ${{ matrix.container-unstable } }.json; then
80- echo "${{ matrix.service-name } } container manifests are the same... skipping"
81- echo "skip_${{ matrix.service } }=1" >> "$GITHUB_OUTPUT"
85+ if diff ${CONTAINER_STABLE} .json ${CONTAINER_UNSTABLE }.json; then
86+ echo "${SERVICE_NAME } container manifests are the same... skipping"
87+ echo "skip_${SERVICE }=1" >> "$GITHUB_OUTPUT"
8288 else
83- echo "${{ matrix.service-name } } container manifests are different"
84- echo "skip_${{ matrix.service } }=0" >> "$GITHUB_OUTPUT"
89+ echo "${SERVICE_NAME } container manifests are different"
90+ echo "skip_${SERVICE }=0" >> "$GITHUB_OUTPUT"
8591 fi
8692
8793# =================================================================================================
95101 runs-on : [self-hosted, Windows, pygeometry]
96102 env :
97103 PYVISTA_OFF_SCREEN : true
104+ permissions :
105+ contents : read
106+ packages : read
98107 steps :
99108 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
100109 with :
@@ -128,18 +137,23 @@ jobs:
128137
129138 - name : Download Geometry service container (always latest version)
130139 run : |
131- docker image rm ${{ env. ANSRV_GEO_IMAGE_WINDOWS_CORE_TAG }}
132- docker pull ${{ env. ANSRV_GEO_IMAGE_WINDOWS_CORE_TAG }}
140+ docker image rm $env: ANSRV_GEO_IMAGE_WINDOWS_CORE_TAG
141+ docker pull $env: ANSRV_GEO_IMAGE_WINDOWS_CORE_TAG
133142
134143 - name : Check location of self-hosted runner and define license server accordingly
135144 if : runner.name == 'pygeometry-ci-2'
145+ env :
146+ LICENSE_SERVER_INTERNAL : ${{ secrets.LICENSE_SERVER_INTERNAL }}
136147 run :
137- echo "ANSRV_GEO_LICENSE_SERVER=${{ secrets. LICENSE_SERVER_INTERNAL }} " | Out-File -FilePath $env:GITHUB_ENV -Append
148+ echo "ANSRV_GEO_LICENSE_SERVER=$env: LICENSE_SERVER_INTERNAL" | Out-File -FilePath $env:GITHUB_ENV -Append
138149
139150 - name : Start Geometry service and verify start
151+ env :
152+ TRANSPORT_MODE_SELECTION : ${{ secrets.TRANSPORT_MODE_SELECTION }}
153+ PORT_MAPPING : " ${{ env.ANSRV_GEO_PORT }}:50051"
140154 run : |
141155 .\.venv\Scripts\Activate.ps1
142- 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_CORE_TAG }} ${{ secrets. TRANSPORT_MODE_SELECTION }}
156+ docker run --detach --name $env: GEO_CONT_NAME -e LICENSE_SERVER=$env: ANSRV_GEO_LICENSE_SERVER -p $env:PORT_MAPPING $ env: ANSRV_GEO_IMAGE_WINDOWS_CORE_TAG $env: TRANSPORT_MODE_SELECTION
143157 python -c "from ansys.geometry.core.connection.validate import validate; validate()"
144158
145159 - name : Run PyAnsys Geometry tests
@@ -151,9 +165,9 @@ jobs:
151165 - name : Stop the Geometry service
152166 if : always()
153167 run : |
154- docker stop ${{ env. GEO_CONT_NAME }}
155- docker logs ${{ env. GEO_CONT_NAME }}
156- docker rm ${{ env. GEO_CONT_NAME }}
168+ docker stop $env: GEO_CONT_NAME
169+ docker logs $env: GEO_CONT_NAME
170+ docker rm $env: GEO_CONT_NAME
157171
158172 - name : Stop any remaining containers
159173 if : always()
@@ -206,7 +220,9 @@ jobs:
206220 needs : manifests
207221 if : needs.manifests.outputs.skip_core_linux == 0
208222 runs-on : ubuntu-latest
209-
223+ permissions :
224+ contents : read
225+ packages : read
210226 steps :
211227 - name : Login in Github Container registry
212228 uses : docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
@@ -216,9 +232,11 @@ jobs:
216232 password : ${{ secrets.GITHUB_TOKEN }}
217233
218234 - name : Pull and launch geometry service
235+ env :
236+ TRANSPORT_MODE_SELECTION : ${{ secrets.TRANSPORT_MODE_SELECTION }}
219237 run : |
220238 docker pull ${ANSRV_GEO_IMAGE_LINUX_CORE_TAG}
221- docker run --detach --name ${GEO_CONT_NAME} -e LICENSE_SERVER=${ANSRV_GEO_LICENSE_SERVER} -p ${ANSRV_GEO_PORT}:50051 ${ANSRV_GEO_IMAGE_LINUX_CORE_TAG} ${{ secrets. TRANSPORT_MODE_SELECTION } }
239+ docker run --detach --name ${GEO_CONT_NAME} -e LICENSE_SERVER=${ANSRV_GEO_LICENSE_SERVER} -p ${ANSRV_GEO_PORT}:50051 ${ANSRV_GEO_IMAGE_LINUX_CORE_TAG} ${TRANSPORT_MODE_SELECTION}
222240
223241 - name : Set up headless display
224242 uses : pyvista/setup-headless-display-action@7d84ae825e6d9297a8e99bdbbae20d1b919a0b19 # v4.2
@@ -273,6 +291,8 @@ jobs:
273291 env :
274292 WINDOWS_UNSTABLE : ghcr.io/ansys/geometry:core-windows-latest-unstable
275293 WINDOWS_STABLE_GHCR : ghcr.io/ansys/geometry:core-windows-latest
294+ permissions :
295+ packages : write
276296 steps :
277297 - name : Login in Github Container registry
278298 uses : docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
@@ -298,6 +318,8 @@ jobs:
298318 env :
299319 LINUX_UNSTABLE : ghcr.io/ansys/geometry:core-linux-latest-unstable
300320 LINUX_STABLE_GHCR : ghcr.io/ansys/geometry:core-linux-latest
321+ permissions :
322+ packages : write
301323 steps :
302324 - name : Login in Github Container registry
303325 uses : docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
0 commit comments