Skip to content

feat(ci): [TASK] Add release workflow support for parallel J (#34637)#34664

Open
spbolton wants to merge 1 commit intomainfrom
issue-34637-task-add-release-workflow-support-for-parallel
Open

feat(ci): [TASK] Add release workflow support for parallel J (#34637)#34664
spbolton wants to merge 1 commit intomainfrom
issue-34637-task-add-release-workflow-support-for-parallel

Conversation

@spbolton
Copy link
Contributor

Description

Add support for parallel Java version builds during releases with automatic workflow triggering and new manual deployment workflow with safety checks.

Changes

  • New cicd_7-release-java-variant.yml workflow for automatic parallel Java builds
  • Runtime -Dchangelist override in release phase for Maven versioning
  • Conditional operations skip one-time tasks (javadocs, plugins, labels, SBOM) for variants
  • New cicd_8-manual-deploy.yml workflow for on-demand Docker deployments
  • Safety checks prevent artifact collision with release versions
  • Separate environment (GitHub UI grouping) and version (artifact naming) inputs
  • Deprecation notices added to legacy workflows with migration guide
  • LEGACY_WORKFLOW_MIGRATION.md documents transition plan

Architecture

Both primary and variant workflows run in parallel from the same release branch and commit, ensuring identical source code. The variant workflow uses runtime Maven property precedence to override -Dchangelist without creating separate branches.

Testing

  • Actionlint validation passes for all workflows
  • Shellcheck validation passes with documented safety exclusions
  • Safety checks validate artifact namespace separation
  • Documented test cases for manual deploy workflow scenarios

Changes

  • [List the main changes made]

Testing

  • [Describe testing approach]

Closes #34637

Issue: [TASK] Add release workflow support for parallel J

Add support for building multiple Java versions in parallel during releases
and create new manual deployment workflow with safety checks.

New workflows:
- cicd_7-release-java-variant.yml: Automatic parallel Java variant builds
  - Triggers on release branch creation
  - Runtime -Dchangelist override for Maven versioning
  - Skips one-time operations (javadocs, plugins, labels, SBOM)
  - Supports multiple Java versions (e.g., Java 25 + Java 21)

- cicd_8-manual-deploy.yml: On-demand Docker image deployment
  - Deploy from any branch/tag/commit
  - Safety checks prevent artifact collision
  - Separate environment (GitHub UI) and version (artifacts) inputs
  - Artifact suffix default prevents Maven/Artifactory namespace collision
  - Replaces legacy-release_publish-dotcms-docker-image.yml

Modified workflows:
- Add Java version override and artifact suffix support
- Runtime -Dchangelist override in release phase
- Dual suffix handling (dash for Maven, underscore for Docker)
- Conditional operations for Java variants

Deprecation notices:
- Legacy workflows marked deprecated with migration paths
- LEGACY_WORKFLOW_MIGRATION.md documents transition plan
- 3 workflows identified safe to delete (no usage 9+ months)

Architecture:
- Primary and variant workflows run in parallel from same release branch
- Distinct namespaced artifacts prevent collisions
- Modular phases ensure consistency

Issue: #34637

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.

[TASK] Add release workflow support for parallel Java version builds

1 participant