diff --git a/.github/workflows/black-box.yaml b/.github/workflows/black-box.yaml index 05dcfad..866a462 100644 --- a/.github/workflows/black-box.yaml +++ b/.github/workflows/black-box.yaml @@ -38,7 +38,10 @@ jobs: run: | sudo apt-get update sudo apt-get install -y podman - pip install podman-compose + pip install podman-compose==1.6.0 + sudo loginctl enable-linger "$(id -un)" + timeout 30 bash -c 'until [ -d /run/user/$(id -u) ]; do sleep 0.5; done' + echo "XDG_RUNTIME_DIR=/run/user/$(id -u)" >> "$GITHUB_ENV" - name: Pre-pull container images if: inputs.images != '' @@ -58,10 +61,30 @@ jobs: - name: Run tests run: make ${{ inputs.test-target }} - - name: Collect logs on failure - if: failure() + - name: Collect diagnostics + if: failure() || cancelled() + continue-on-error: true run: | - podman-compose logs + set +e + echo "::group::podman ps -a" + podman ps -a + echo "::endgroup::" + + echo "::group::container health" + for c in $(podman ps -aq 2>/dev/null); do + name=$(podman inspect --format '{{.Name}}' "$c" 2>/dev/null || echo "$c") + echo "--- $name ---" + podman inspect --format '{{json .State.Health}}' "$c" + done + echo "::endgroup::" + + echo "::group::container logs" + for c in $(podman ps -aq 2>/dev/null); do + name=$(podman inspect --format '{{.Name}}' "$c" 2>/dev/null || echo "$c") + echo "--- $name ---" + podman logs --tail 200 "$c" + done + echo "::endgroup::" - name: Stop services if: always()