You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2026/07/04 22:24:05 UTC
(grails-core) 01/01: ci: raise publish retry timeout to give slow Nexus uploads headroom
This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a commit to branch ci/publish-timeout-headroom
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 82946a2ca8f50ece9a46a3d62f035393ed50cffc
Author: James Fredley <ja...@users.noreply.github.com>
AuthorDate: Sat Jul 4 18:21:59 2026 -0400
ci: raise publish retry timeout to give slow Nexus uploads headroom
The `publish` and `publishMicronaut` jobs wrap the Gradle publish command
(`--no-build-cache --rerun-tasks`) in the `nick-fields/retry` action with a
per-attempt `timeout_seconds: 1200` (20 min). That command does a full
from-scratch recompile plus groovydoc/javadoc for 60+ modules and uploads to
Apache Nexus, which legitimately runs ~14-20 min. When Nexus uploads are slow,
a single attempt exceeds 20 min and is killed mid-publish; because every retry
repeats the identical full uncached build, all 3 attempts hit the same wall and
the job fails on a pure timeout (no build error, no Nexus exception).
Raise `timeout_seconds` to 1800 (30 min) on both publish retry steps to give
headroom for slow uploads so a single attempt is not killed mid-publish, while
keeping `max_attempts: 3` / `retry_wait_seconds: 180` for genuine transient
read-timeouts. Worst case (3 x 30 min + 2 x 180 s waits) is ~96 min, well under
the GitHub Actions job limit.
Assisted-by: opencode:claude-opus-4-8
---
.github/workflows/gradle.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index 091d9346f5..898dea7e08 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -496,7 +496,7 @@ jobs:
MAVEN_PUBLISH_USERNAME: ${{ secrets.NEXUS_USER }}
MAVEN_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PW }}
with:
- timeout_seconds: 1200 # normal range 14min if build is not cached (no tests running)
+ timeout_seconds: 1800 # normal range ~14min uncached (no tests); headroom for slow Nexus uploads so a single attempt is not killed mid-publish
max_attempts: 3 # Attempts to address: Could not write to resource 'https://repository.apache.org/content/repositories/snapshots/...' Read timed out
retry_wait_seconds: 180
command: ./gradlew publish aggregateChecksums aggregatePublishedArtifacts --no-build-cache --rerun-tasks
@@ -566,7 +566,7 @@ jobs:
MAVEN_PUBLISH_USERNAME: ${{ secrets.NEXUS_USER }}
MAVEN_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PW }}
with:
- timeout_seconds: 1200
+ timeout_seconds: 1800 # headroom for slow Nexus uploads so a single attempt is not killed mid-publish (see `publish` job)
max_attempts: 3
retry_wait_seconds: 180
command: ./gradlew :grails-micronaut:publish :grails-micronaut-bom:publish --no-build-cache --rerun-tasks