@@ -25,30 +25,13 @@ jobs:
2525 name : Workflow Overview
2626 runs-on : ubuntu-latest
2727 steps :
28- - name : Write overview
29- shell : bash
30- run : |
31- : "${GITHUB_STEP_SUMMARY:=$RUNNER_TEMP/summary.md}"
32- {
33- echo "# GEMC Images — Overview"
34- echo "Repository: [gemc images](https://github.com/gemc/src/pkgs/container/src)"
35- echo "Except for archlinux (amd64-only), all images are built for both the *amd64* and *arm64* architectures."
36- echo ""
37- echo ""
38- echo "Set these convenience variables for the interactive use below (choose your own password)"
39- echo '```bash'
40- echo 'VPORTS=(-p 6080:6080 -p 5900:5900)'
41- echo 'VNC_PASS=(-e X11VNC_PASSWORD=change-me)'
42- echo 'VNC_BIND=(-e VNC_BIND=0.0.0.0)'
43- echo 'GEO_FLAGS=(-e GEOMETRY=1920x1200)'
44- echo '```'
45- echo ""
46- echo "If your arch is arm64 and want to use the archlinux image, add this to all command lines:"
47- echo '```bash'
48- echo '--platform=linux/amd64'
49- echo '```'
50- echo "---"
51- } >> "$GITHUB_STEP_SUMMARY"
28+ - name : Write overview
29+ shell : bash
30+ run : |
31+ : "${GITHUB_STEP_SUMMARY:=$RUNNER_TEMP/summary.md}"
32+ bash ci/summary.sh "$GITHUB_STEP_SUMMARY"
33+
34+
5235
5336 discover :
5437 if : ${{ github.event_name != 'pull_request' }}
@@ -234,103 +217,21 @@ jobs:
234217 merge-multiple : true
235218
236219 - name : Summary (manifest)
237- if : ${{ always() }} # run regardless of earlier step outcomes
220+ if : ${{ always() }}
238221 shell : bash
239222 env :
240223 IMAGE : ${{ needs.discover.outputs.image }}
241224 TAG : ${{ env.TAG4 }}
242225 run : |
243226 SUMMARY_FILE="${GITHUB_STEP_SUMMARY:-$RUNNER_TEMP/manifest_summary.md}"
244227 echo "MANIFEST_SUMMARY_FILE=$SUMMARY_FILE" >> "$GITHUB_ENV"
245- {
246- echo "## \`${IMAGE}:${TAG}\`"
247- echo ""
248- echo "Includes:"
249- if docker buildx imagetools inspect "${IMAGE}:${TAG}-amd64" >/dev/null 2>&1; then echo "- amd64"; fi
250- if docker buildx imagetools inspect "${IMAGE}:${TAG}-arm64" >/dev/null 2>&1; then echo "- arm64"; else echo "- no arm64. Run with --platform=linux/amd64 in arm64 CPUs"; fi
251- echo ""
252- echo "### Pull"
253- echo '```bash'
254- echo "docker pull ${IMAGE}:${TAG}"
255- echo '```'
256- echo ""
257- echo "### Run in batch mode"
258- echo '```bash'
259- echo "docker run --rm -it ${IMAGE}:${TAG} bash -l"
260- echo '```'
261- echo ""
262- echo "### Run with VNC/noVNC"
263- echo "_VNC → localhost:5900 (password: change-me)_"
264- echo "_noVNC → http://localhost:6080/vnc.html (password: change-me)_"
265- echo '```bash'
266- echo "docker run --rm -it \$VPORTS \$VNC_BIND \$VNC_PASS \$GEO_FLAGS ${IMAGE}:${TAG}"
267- echo '```'
268- } >> "$SUMMARY_FILE"
269- {
270- echo ""
271- echo "## Tests"
272- echo ""
273-
274- DL="${{ runner.temp }}/downloaded-logs"
275- echo "_Logs downloaded to:_ \`$DL\`"
276- echo ""
277-
278- PATTERN="$DL/logs-${TAG}-*.tgz"
279-
280- shopt -s nullglob
281- TARS=( $PATTERN )
282- shopt -u nullglob
283-
284- if (( ${#TARS[@]} == 0 )); then
285- echo "_No logs tarballs found matching:_ \`$PATTERN\`"
286- else
287- echo "_Found ${#TARS[@]} tarball(s)._"
288- echo ""
289- for tarball in "${TARS[@]}"; do
290- base="$(basename "$tarball")"
291- arch="${base#logs-${TAG}-}"
292- arch="${arch%.tgz}"
293-
294- work="$DL/extract-$arch"
295- mkdir -p "$work"
296- tar -xzf "$tarball" -C "$work"
297-
298- TEST_LOG="$work/logs/test.log"
299-
300- echo "### ${arch}"
301- if [[ -f "$TEST_LOG" ]]; then
302- echo '```'
303- OK_FAIL="$(tail -n 2 "$TEST_LOG")"
304-
305- if grep -q '^Summary of Failures:' "$TEST_LOG"; then
306- sed -n '/^Summary of Failures:/,/^Ok:/p' "$TEST_LOG" | sed '$d'
307- echo ""
308- else
309- echo "Summary of Failures:"
310- echo "(none)"
311- echo ""
312- fi
313-
314- echo "$OK_FAIL"
315- echo '```'
316- else
317- echo "_No test log found at:_ \`$TEST_LOG\`"
318- fi
319-
320- echo ""
321- done
322- fi
323-
324- } >> "$SUMMARY_FILE"
325-
326- # Also save a copy inside the workspace for artifact upload
228+ bash ci/manifest.sh "$SUMMARY_FILE" "$IMAGE" "$TAG" "${{ runner.temp }}/downloaded-logs"
229+
327230 mkdir -p "$GITHUB_WORKSPACE/summaries"
328231 OUT="$GITHUB_WORKSPACE/summaries/summary-${TAG}-${{ job.status }}.md"
329232 cp "$SUMMARY_FILE" "$OUT" || true
330233 echo "Wrote $OUT"
331234
332- ls -l "$GITHUB_WORKSPACE/summaries"
333-
334235 - name : Upload summary artifact (manifest)
335236 uses : actions/upload-artifact@v4
336237 with :
0 commit comments