Skip to content

Allow concurrent documentation publishing - #16110

Open
jamesfredley wants to merge 1 commit into
7.0.xfrom
ci/remove-docs-publish-serialization
Open

Allow concurrent documentation publishing#16110
jamesfredley wants to merge 1 commit into
7.0.xfrom
ci/remove-docs-publish-serialization

Conversation

@jamesfredley

Copy link
Copy Markdown
Contributor

Depends On

This PR must not merge until apache/grails-github-actions#110 is merged to asf and the updated deploy-github-pages@asf ref is verified.

Summary

Remove the job-level grails-docs-publish queue from snapshot and release documentation publishing. Once the action-level optimistic retry is available, independent documentation jobs can run in parallel and let Git's normal fast-forward rules coordinate updates to the destination branch.

The diff removes only the two queue declarations added by #15988. It does not change documentation generation, credentials, destination paths, action references, or workflow-level release coordination.

Why Remove the Queue

GitHub Actions concurrency groups coordinate runs only within one repository. Grails Core, grails-static-website, and future publishers such as Grails Forge can all target the same website repository, but a grails-docs-publish group in Grails Core cannot coordinate those other repositories. The manual release-publish-docs.yml workflow is also a publisher and has never used this group.

Within Grails Core, the static group makes unrelated release documentation jobs serial:

This turned a parallel release sequence into a serial one and required manual retriggering.

Replacement Safety

apache/grails-github-actions#110 retries only genuine non-fast-forward races. It fetches the new destination tip into the existing shallow checkout, verifies descendant history, rebases the unpublished local deployment commit, and retries a normal push. It never force-pushes or auto-resolves true conflicts.

Merge order is therefore mandatory:

  1. Merge Safely retry concurrent documentation pushes grails-github-actions#110 to asf.
  2. Verify deploy-github-pages@asf contains the retry implementation.
  3. Merge this PR into 7.0.x.
  4. Merge forward through the maintained branches normally.

Preserved Concurrency

The workflow-level release-pipeline-${{ github.event.release.target_commitish }} group remains unchanged. This PR removes only the documentation publishing mutex.

Verification

  • Both edited workflow files parse successfully as YAML.
  • git diff --check passes.
  • The diff is exactly 12 deletions across two workflow files.
  • grails-docs-publish no longer appears in .github/workflows.
  • release-publish-docs.yml is byte-identical.
  • No Gradle task was run because this is a YAML-only deletion.

Remove the repository-local documentation queue so independent publishers
can run in parallel once the action-level optimistic retry is available.

Assisted-by: opencode:gpt-5.6-sol
@jdaugherty

Copy link
Copy Markdown
Contributor

I'm confused, we discussed this in the weekly and I made my objection clear to this. Yet you seem to have gone in the opposite direction.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@jamesfredley

Copy link
Copy Markdown
Contributor Author

@jdaugherty do you have a solution that covers everything listed above? This wasted 3.5 hours this morning, that I did not have.

@jdaugherty

Copy link
Copy Markdown
Contributor

Yes, I mentioned it on the call. We should be uploading these artifacts and then having a separate workflow to process them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants