7373 - name : Run pytest
7474 run : pixi run pytest-${{ matrix.package }} --cov-report=xml:coverage.xml --junitxml=report.xml
7575 - name : Upload coverage report
76- uses : codecov/codecov-action@v5.5.2
76+ uses : codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
7777
7878 pytest-integration :
7979 runs-on : ubuntu-latest
@@ -121,44 +121,32 @@ jobs:
121121 with :
122122 cache : false
123123 environments : ${{ matrix.extension == 'diracx' && 'default' || 'default-gubbins' }}
124- - name : Build gubbins wheels
125- if : ${{ matrix.extension == 'gubbins' }}
126- run : |
127- for pkg_dir in $PWD/diracx-*; do
128- echo "Building $pkg_dir"
129- pixi exec python-build --outdir $PWD/extensions/containers/services/ $pkg_dir
130- done
131- # Also build the diracx metapackage
132- pixi exec python-build --outdir $PWD/extensions/containers/services/ .
133- # And build the gubbins package
134- for pkg_dir in $PWD/extensions/gubbins/gubbins-*; do
135- # Skip the testing package
136- if [[ "${pkg_dir}" =~ .*testing.* ]];
137- then
138- echo "Do not build ${pkg_dir}";
139- continue;
140- fi
141- echo "Building $pkg_dir"
142- pixi exec python-build --outdir $PWD/extensions/containers/services/ $pkg_dir
143- done
144124 - name : Set up Docker Buildx
145- if : ${{ matrix.extension == 'gubbins' }}
146125 uses : docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4
147- - name : Build container for gubbins
148- if : ${{ matrix.extension == 'gubbins' }}
126+ - name : Build services image
127+ uses : docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
128+ with :
129+ context : .
130+ file : containers/Dockerfile
131+ build-args : |
132+ PIXI_ENV=${{ matrix.extension == 'diracx' && 'container-services' || 'gubbins-container-services' }}
133+ tags : ghcr.io/${{ matrix.extension == 'diracx' && 'diracgrid/diracx' || 'gubbins' }}/services:dev
134+ outputs : type=docker,dest=/tmp/services_image.tar
135+ - name : Build client image
149136 uses : docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
150137 with :
151- context : extensions/containers/services
152- tags : gubbins/services:dev
153- outputs : type=docker,dest=/tmp/gubbins_services_image.tar
138+ context : .
139+ file : containers/Dockerfile
154140 build-args : |
155- EXTENSION_CUSTOM_SOURCES_TO_INSTALL=/bindmount/gubbins_db*.whl,/bindmount/gubbins_logic*.whl,/bindmount/gubbins_routers*.whl,/bindmount/gubbins_client*.whl
156- - name : Load image
157- if : ${{ matrix.extension == 'gubbins' }}
141+ PIXI_ENV=${{ matrix.extension == 'diracx' && 'container-client' || 'gubbins-container-client' }}
142+ tags : ghcr.io/${{ matrix.extension == 'diracx' && 'diracgrid/diracx' || 'gubbins' }}/client:dev
143+ outputs : type=docker,dest=/tmp/client_image.tar
144+ - name : Load images
158145 run : |
159- docker load --input /tmp/gubbins_services_image.tar
160- # Free up disk space by removing the tarball after loading the image
161- rm -Rf /tmp/gubbins_services_image.tar
146+ docker load --input /tmp/services_image.tar
147+ rm -f /tmp/services_image.tar
148+ docker load --input /tmp/client_image.tar
149+ rm -f /tmp/client_image.tar
162150 docker builder prune -af || true
163151 docker image ls -a
164152 - name : Start demo
@@ -171,41 +159,39 @@ jobs:
171159 demo_args+=("--exit-when-done")
172160 demo_args+=("--ci-values" "../diracx-charts/demo/ci_values.yaml")
173161
174- declare -a demo_source_dirs=("$PWD")
175-
176162 # Download helm/kubectl/kind first
177163 ../diracx-charts/run_demo.sh --only-download-deps
178164
179165 if [ ${{ matrix.extension }} == 'gubbins' ]; then
180166 demo_args+=("--set-value" "diracx.developer.autoReload=false")
181167
182- # We have to copy the code to another directory
183- # and make it a git repository by itself because otherwise the
184- # root in the pyproject do not make sense once mounted
185- # in the containers.
186- cp -r ./extensions/gubbins /tmp/
187- sed -i 's@../..@.@g' /tmp/gubbins/pyproject.toml
188- sed -i 's@../../@@g' /tmp/gubbins/gubbins-*/pyproject.toml
189- git init /tmp/gubbins/
190-
191168 # Copy gubbins-charts to a temporary location and build dependencies
192169 cp -r ./extensions/gubbins-charts /tmp/
193170 ../diracx-charts/.demo/helm dependency build /tmp/gubbins-charts
171+ # Replace the downloaded subchart with the locally-cloned one to
172+ # ensure we have the pixi-compatible ConfigMap entrypoint
173+ rm -f /tmp/gubbins-charts/charts/diracx-*.tgz
174+ ../diracx-charts/.demo/helm package ../diracx-charts/diracx -d /tmp/gubbins-charts/charts/
194175
195176 demo_args+=("--extension-chart-path" "/tmp/gubbins-charts")
196177 demo_args+=("--ci-values" "./extensions/gubbins_values.yaml")
197- demo_args+=("--load-docker-image" "gubbins/services:dev")
198- demo_source_dirs+=("/tmp/gubbins/")
178+ demo_args+=("--load-docker-image" "ghcr.io/gubbins/services:dev")
179+ demo_args+=("--load-docker-image" "ghcr.io/gubbins/client:dev")
180+ demo_args+=("--prune-loaded-images")
199181 elif [ ${{ matrix.extension }} != 'diracx' ]; then
200182 echo "Unknown extension: ${{ matrix.extension }}"
201183 exit 1
202184 else
203185 demo_args+=("--set-value" "developer.autoReload=false")
186+ demo_args+=("--set-value" "global.imagePullPolicy=IfNotPresent")
187+ demo_args+=("--load-docker-image" "ghcr.io/diracgrid/diracx/services:dev")
188+ demo_args+=("--load-docker-image" "ghcr.io/diracgrid/diracx/client:dev")
189+ demo_args+=("--prune-loaded-images")
204190 fi
205191
206192 # Run the demo with the provided arguments
207193 set -x
208- ../diracx-charts/run_demo.sh "${demo_args[@]}" "${demo_source_dirs[@]}"
194+ ../diracx-charts/run_demo.sh "${demo_args[@]}"
209195 - name : Debugging information
210196 if : always()
211197 run : .github/scripts/collect-k8s-debug-info.sh "$PWD/../diracx-charts/.demo" "${{ matrix.extension == 'gubbins' && 'gubbins' || 'diracx' }}"
@@ -216,7 +202,7 @@ jobs:
216202 run : |
217203 pixi run -e ${{ matrix.extension == 'diracx' && 'default' || 'default-gubbins' }} python -m diracx.testing coverage collect-demo --demo-dir=../diracx-charts/.demo
218204 - name : Upload coverage report
219- uses : codecov/codecov-action@v5.5.2
205+ uses : codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
220206 with :
221207 files : ./coverage-pytest.xml,./coverage-demo.xml
222208
0 commit comments