@@ -25,35 +25,35 @@ jobs:
2525 docker-images :
2626 outputs :
2727 COOKIE_IMAGE : ${{ steps.images.outputs.COOKIE_IMAGE}}
28- COOKIE_KEY : ${{ steps.keys.outputs.COOKIE_KEY }}'"
28+ COOKIE_KEY : ${{ steps.keys.outputs.COOKIE_KEY }}
2929 PUBSUB_IMAGE : ${{ steps.images.outputs.PUBSUB_IMAGE }}
30- PUBSUB_KEY : ${{ steps.keys.outputs.PUBSUB_KEY }}'"
30+ PUBSUB_KEY : ${{ steps.keys.outputs.PUBSUB_KEY }}
3131 SOLID_CRUD_TESTS_IMAGE : ${{steps.images.outputs.SOLID_CRUD_TESTS_IMAGE}}
32- SOLID_CRUD_TESTS_KEY : ${{ steps.keys.outputs.SOLID_CRUD_TESTS_KEY }}'"
32+ SOLID_CRUD_TESTS_KEY : ${{ steps.keys.outputs.SOLID_CRUD_TESTS_KEY }}
3333 WEB_ACCESS_CONTROL_TESTS_IMAGE : ${{steps.images.outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE}}
34- WEB_ACCESS_CONTROL_TESTS_KEY : ${{ steps.keys.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}'"
34+ WEB_ACCESS_CONTROL_TESTS_KEY : ${{ steps.keys.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}
3535 WEBID_PROVIDER_TESTS_IMAGE : ${{steps.images.outputs.WEBID_PROVIDER_TESTS_IMAGE}}
36- WEBID_PROVIDER_TESTS_KEY : ${{ steps.keys.outputs.WEBID_PROVIDER_TESTS_KEY }}'"
36+ WEBID_PROVIDER_TESTS_KEY : ${{ steps.keys.outputs.WEBID_PROVIDER_TESTS_KEY }}
3737 runs-on : ubuntu-latest
3838 steps :
3939 - id : images
40- run : >-
41- echo "COOKIE_IMAGE='michielbdejong/nextcloud-cookie:${{ env.COOKIE_TAG }}'" >> "${GITHUB_OUTPUT}";
42- echo "PUBSUB_IMAGE='ghcr.io/pdsinterop/php-solid-pubsub-server:${{ env.PUBSUB_TAG }}'" >> "${GITHUB_OUTPUT}";
43- echo "SOLID_CRUD_TESTS_IMAGE=' solidtestsuite/solid-crud-tests:v7.0.5' " >> "${GITHUB_OUTPUT}";
44- echo "WEB_ACCESS_CONTROL_TESTS_IMAGE=' solidtestsuite/web-access-control-tests:v7.1.0' " >> "${GITHUB_OUTPUT}";
45- echo "WEBID_PROVIDER_TESTS_IMAGE=' solidtestsuite/webid-provider-tests:v2.1.1' " >> "${GITHUB_OUTPUT}";
40+ run : |
41+ echo "COOKIE_IMAGE='michielbdejong/nextcloud-cookie:${{ env.COOKIE_TAG }}'" >> "${GITHUB_OUTPUT}"
42+ echo "PUBSUB_IMAGE='ghcr.io/pdsinterop/php-solid-pubsub-server:${{ env.PUBSUB_TAG }}'" >> "${GITHUB_OUTPUT}"
43+ echo "SOLID_CRUD_TESTS_IMAGE=solidtestsuite/solid-crud-tests:v7.0.5" >> "${GITHUB_OUTPUT}"
44+ echo "WEB_ACCESS_CONTROL_TESTS_IMAGE=solidtestsuite/web-access-control-tests:v7.1.0" >> "${GITHUB_OUTPUT}"
45+ echo "WEBID_PROVIDER_TESTS_IMAGE=solidtestsuite/webid-provider-tests:v2.1.1" >> "${GITHUB_OUTPUT}"
4646 - id : keys
47- run : >-
48- echo "COOKIE_KEY='$ {{ steps.outputs.COOKIE_IMAGE }}'"
49- | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}";
50- echo "PUBSUB_KEY='$ {{ steps.outputs.PUBSUB_IMAGE }}'"
51- | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}";
52- echo "SOLID_CRUD_TESTS_KEY='$ {{ steps.outputs.SOLID_CRUD_TESTS_IMAGE }}'"
53- | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}";
54- echo "WEB_ACCESS_CONTROL_TESTS_KEY='$ {{ steps.outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE }}'"
55- | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}";
56- echo "WEBID_PROVIDER_TESTS_KEY='$ {{ steps.outputs.WEBID_PROVIDER_TESTS_IMAGE }}'"
47+ run : |
48+ echo "COOKIE_KEY=$(echo "$ {{ steps.images. outputs.COOKIE_IMAGE }}" \
49+ | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}"
50+ echo "PUBSUB_KEY=$(echo "$ {{ steps.images. outputs.PUBSUB_IMAGE }}" \
51+ | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}"
52+ echo "SOLID_CRUD_TESTS_KEY=$(echo "$ {{ steps.images. outputs.SOLID_CRUD_TESTS_IMAGE }}" \
53+ | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}"
54+ echo "WEB_ACCESS_CONTROL_TESTS_KEY=$(echo "$ {{ steps.images. outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE }}" \
55+ | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}"
56+ echo "WEBID_PROVIDER_TESTS_KEY=$(echo "$ {{ steps.images. outputs.WEBID_PROVIDER_TESTS_IMAGE }}" \
5757 | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_OUTPUT}";
5858
5959 # @TODO: Instead of building the docker image here, take a pre-build image and mount the code?
@@ -103,7 +103,8 @@ jobs:
103103 .
104104 docker push "ghcr.io/${{ github.repository }}:${{ env.TAG }}"
105105 mkdir -p cache/solid-nextcloud
106- docker image save solid-nextcloud:${{ env.TAG }} --output ./cache/solid-nextcloud/${{ github.sha }}-${{ matrix.nextcloud_version }}.tar
106+ docker image save solid-nextcloud:${{ env.TAG }} \
107+ --output ./cache/solid-nextcloud/${{ github.sha }}-${{ matrix.nextcloud_version }}.tar
107108
108109 pull-docker-cookie :
109110 needs : docker-images
@@ -112,29 +113,29 @@ jobs:
112113 - uses : actions/cache@v4
113114 id : cache-docker-cookie
114115 with :
115- path : cache/
116+ path : cache/cookie
116117 key : ${{ needs.docker-images.outputs.COOKIE_KEY }}
117118 - if : steps.cache-docker-cookie.outputs.cache-hit != 'true'
118119 run : |
119- mkdir -p cache/
120+ mkdir -p cache/cookie/
120121 docker pull ${{ needs.docker-images.outputs.COOKIE_IMAGE }}
121122 docker image save ${{ needs.docker-images.outputs.COOKIE_IMAGE }} \
122- --output ./cache/${{ needs.docker-images.outputs.COOKIE_KEY }}.tar
123+ --output ./cache/cookie/ ${{ needs.docker-images.outputs.COOKIE_KEY }}.tar
123124 pull-docker-pubsub :
124125 needs : docker-images
125126 runs-on : ubuntu-latest
126127 steps :
127128 - uses : actions/cache@v4
128129 id : cache-docker-pubsub
129130 with :
130- path : cache/
131+ path : cache/pubsub
131132 key : ${{ needs.docker-images.outputs.PUBSUB_KEY }}
132133 - if : steps.cache-docker-pubsub.outputs.cache-hit != 'true'
133134 run : |
134- mkdir -p cache/
135+ mkdir -p cache/pubsub/
135136 docker pull ${{ needs.docker-images.outputs.PUBSUB_IMAGE }}
136137 docker image save ${{ needs.docker-images.outputs.PUBSUB_IMAGE }} \
137- --output ./cache/${{ needs.docker-images.outputs.PUBSUB_KEY }}.tar
138+ --output ./cache/pubsub/ ${{ needs.docker-images.outputs.PUBSUB_KEY }}.tar
138139
139140 pull-docker-solid-crud-tests :
140141 needs : docker-images
@@ -143,44 +144,44 @@ jobs:
143144 - uses : actions/cache@v4
144145 id : cache-docker-solid-crud-tests
145146 with :
146- path : cache/
147+ path : cache/tests/
147148 key : ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_KEY }}
148149 - if : steps.cache-docker-solid-crud-tests.outputs.cache-hit != 'true'
149150 run : |
150- mkdir -p cache/
151+ mkdir -p cache/tests/
151152 docker pull ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_IMAGE }}
152153 docker image save ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_IMAGE }} \
153- --output ./cache/${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_KEY }}.tar
154+ --output ./cache/tests/ ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_KEY }}.tar
154155 pull-docker-web-access-control-tests :
155156 needs : docker-images
156157 runs-on : ubuntu-latest
157158 steps :
158159 - uses : actions/cache@v4
159160 id : cache-docker-web-access-control-tests
160161 with :
161- path : cache/
162+ path : cache/tests/
162163 key : ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}
163164 - if : steps.cache-docker-web-access-control-tests.outputs.cache-hit != 'true'
164165 run : |
165- mkdir -p cache/
166+ mkdir -p cache/tests/
166167 docker pull ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE }}
167168 docker image save ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE }} \
168- --output ./cache/${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}.tar
169+ --output ./cache/tests/ ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}.tar
169170 pull-docker-webid-provider-tests :
170171 needs : docker-images
171172 runs-on : ubuntu-latest
172173 steps :
173174 - uses : actions/cache@v4
174175 id : cache-docker-webid-provider-tests
175176 with :
176- path : cache/
177+ path : cache/tests/
177178 key : ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_KEY }}
178179 - if : steps.cache-docker-webid-provider-tests.outputs.cache-hit != 'true'
179180 run : |
180- mkdir -p cache/
181+ mkdir -p cache/tests/
181182 docker pull ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_IMAGE }}
182183 docker image save ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_IMAGE }} \
183- --output ./cache/${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_KEY }}.tar
184+ --output ./cache/tests/ ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_KEY }}.tar
184185
185186 solid-testsuite :
186187 timeout-minutes : 30
@@ -203,9 +204,12 @@ jobs:
203204 - 29
204205 - 30
205206 test :
206- - ' solidtestsuite/solid-crud-tests:v7.0.5'
207- - ' solidtestsuite/web-access-control-tests:v7.1.0'
208- - ' solidtestsuite/webid-provider-tests:v2.1.1'
207+ - image : ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_IMAGE }}
208+ file : ${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_KEY }}
209+ - image : ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_IMAGE }}
210+ file : ${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}
211+ - image : ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_IMAGE }}
212+ file : ${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_KEY }}
209213
210214 # Prevent EOL or non-stable versions of Nextcloud to fail the test-suite
211215 continue-on-error : ${{ contains(fromJson('[28,29,30]'), matrix.nextcloud_version) == false }}
@@ -215,8 +219,7 @@ jobs:
215219 # A tag name may only contain lower- and uppercase letters, digits, underscores, periods and dashes.
216220 run : |
217221 echo "TAG=$(echo -n "${{ github.ref_name }}-${{ matrix.nextcloud_version }}" \
218- | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" \
219- >> "${GITHUB_ENV}"
222+ | tr --complement --squeeze-repeats '[:alnum:]._-' '_')" >> "${GITHUB_ENV}"
220223
221224 - uses : actions/checkout@v4
222225
@@ -225,6 +228,21 @@ jobs:
225228 with :
226229 path : cache/solid-nextcloud
227230 key : solid-nextcloud-docker-${{ matrix.nextcloud_version }}-${{ github.sha }}
231+ - uses : actions/cache@v4
232+ id : cache-docker-cookie
233+ with : {path: cache/cookie, key: "${{ needs.docker-images.outputs.COOKIE_KEY }}"}
234+ - uses : actions/cache@v4
235+ id : cache-docker-pubsub
236+ with : {path: cache/pubsub, key: "${{ needs.docker-images.outputs.PUBSUB_KEY }}"}
237+ - uses : actions/cache@v4
238+ id : cache-docker-solid-crud-tests
239+ with : {path: cache/tests, key: "${{ needs.docker-images.outputs.SOLID_CRUD_TESTS_KEY }}"}
240+ - uses : actions/cache@v4
241+ id : cache-docker-web-access-control-tests
242+ with : {path: cache/tests, key: "${{ needs.docker-images.outputs.WEB_ACCESS_CONTROL_TESTS_KEY }}"}
243+ - uses : actions/cache@v4
244+ id : cache-docker-webid-provider-tests
245+ with : {path: cache/tests, key: "${{ needs.docker-images.outputs.WEBID_PROVIDER_TESTS_KEY }}"}
228246
229247 - uses : docker/login-action@v3
230248 with :
@@ -235,9 +253,9 @@ jobs:
235253 - name : Load docker Images
236254 run : |
237255 docker image load --input ./cache/solid-nextcloud/${{ github.sha }}-${{ matrix.nextcloud_version }}.tar
238- docker image load --input ./cache/${{ needs.docker-images.outputs.COOKIE_IMAGE }}.tar
239- docker image load --input ./cache/${{ matrix.test }}.tar
240- docker image load --input ./cache/${{ needs.docker-images.outputs.PUBSUB_TAG }}.tar
256+ docker image load --input ./cache/cookie/ ${{ needs.docker-images.outputs.COOKIE_KEY }}.tar
257+ docker image load --input ./cache/tests/ ${{ matrix.test.file }}.tar
258+ docker image load --input ./cache/pubsub/ ${{ needs.docker-images.outputs.PUBSUB_KEY }}.tar
241259
242260 - name : Start Docker Containers
243261 run : |
@@ -247,16 +265,16 @@ jobs:
247265 --interactive \
248266 --name 'pubsub' \
249267 --network=testnet \
250- "ghcr.io/pdsinterop/php-solid-pubsub-server: ${{ env.PUBSUB_TAG }}"
268+ ${{ needs.docker-images.outputs.PUBSUB_IMAGE }}
251269
252270 source ./run-solid-test-suite.sh
253- startSolidNextcloud 'server' "solid-nextcloud:${{ env.TAG }}" ${{ matrix.test }}
254- startSolidNextcloud 'thirdparty' "solid-nextcloud:${{ env.TAG }}" ${{ matrix.test }}
271+ startSolidNextcloud 'server' "solid-nextcloud:${{ env.TAG }}" ${{ matrix.test.image }}
272+ startSolidNextcloud 'thirdparty' "solid-nextcloud:${{ env.TAG }}" ${{ matrix.test.image }}
255273
256274 echo "COOKIE_server=${COOKIE_server}" >> "${GITHUB_ENV}"
257275 echo "COOKIE_thirdparty=${COOKIE_thirdparty}" >> "${GITHUB_ENV}"
258276
259- - name : Run tests - ${{ matrix.test }}
277+ - name : Run tests - ${{ matrix.test.image }}
260278 run : |
261279 export COOKIE_server="${{ env.COOKIE_server }}"
262280 export COOKIE_thirdparty="${{ env.COOKIE_thirdparty }}"
@@ -267,13 +285,13 @@ jobs:
267285 --env COOKIE_ALICE="$COOKIE_server" \
268286 --env COOKIE_BOB="$COOKIE_thirdparty" \
269287 --env-file ./env-vars-testers.list \
270- ${{ matrix.test }}
288+ ${{ matrix.test.image }}
271289
272- # - name: Setup tmate session - ${{ matrix.test }}
290+ # - name: Setup tmate session - ${{ matrix.test.image }}
273291# if: failure()
274292# uses: mxschmitt/action-tmate@v3
275293
276- - name : Show nextcloud logs - ${{ matrix.test }}
294+ - name : Show nextcloud logs - ${{ matrix.test.image }}
277295 if : always()
278296 run : |
279297 docker exec -i server cat /var/www/html/data/nextcloud.log
0 commit comments