diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index ef36c41..b72f897 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -98,6 +98,10 @@ jobs: SAFE_TAG_NAME: ${{ steps.tag.outputs.SAFE_TAG_NAME }} working-directory: ${{ runner.temp }}/docker_practice-pdf-src run: | + # mdPress PDF generation drives headless Chrome, which intermittently dies with + # "websocket url timeout reached" + dbus errors. Retry the build, not the whole job. + mdpress() { local a; for a in 1 2 3; do command mdpress "$@" && return 0; + echo "::warning::mdpress attempt $a failed; retrying in 10s"; sleep 10; done; return 1; } mkdir -p "$GITHUB_WORKSPACE/dist" mdpress build --format pdf \ --output "$GITHUB_WORKSPACE/dist/docker_practice-${SAFE_TAG_NAME}.pdf" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fd91639..a1e0980 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -93,6 +93,10 @@ jobs: - name: Build PDF working-directory: ${{ runner.temp }}/docker_practice-pdf-src run: | + # mdPress PDF generation drives headless Chrome, which intermittently dies with + # "websocket url timeout reached" + dbus errors. Retry the build, not the whole job. + mdpress() { local a; for a in 1 2 3; do command mdpress "$@" && return 0; + echo "::warning::mdpress attempt $a failed; retrying in 10s"; sleep 10; done; return 1; } mkdir -p "$GITHUB_WORKSPACE/dist" mdpress build --format pdf --output "$GITHUB_WORKSPACE/dist/docker_practice.pdf" diff --git a/.github/workflows/preview-pdf.yml b/.github/workflows/preview-pdf.yml index 8eca4d2..9056009 100644 --- a/.github/workflows/preview-pdf.yml +++ b/.github/workflows/preview-pdf.yml @@ -72,6 +72,10 @@ jobs: - name: Build latest preview PDF working-directory: ${{ runner.temp }}/docker_practice-pdf-src run: | + # mdPress PDF generation drives headless Chrome, which intermittently dies with + # "websocket url timeout reached" + dbus errors. Retry the build, not the whole job. + mdpress() { local a; for a in 1 2 3; do command mdpress "$@" && return 0; + echo "::warning::mdpress attempt $a failed; retrying in 10s"; sleep 10; done; return 1; } mkdir -p "$GITHUB_WORKSPACE/dist" mdpress build --format pdf --output "$GITHUB_WORKSPACE/dist/docker_practice.pdf"