dotCMS / dotCMS/core

feat(ci): auto-update docker compose examples when a full starter is published

Open
#35,582 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Description

When a new full starter is generated via the Publish Starter GitHub Action workflow, the docker/docker-compose-examples/ files that hard-code the starter artifact URL need to be updated to point to the newly published starter.

Currently the workflow already does this for the empty starter:

  1. Updates parent/pom.xml with the new starter.deploy.version
  2. Opens an automated PR via peter-evans/create-pull-request@v6
  3. Appends a :exclamation: Approvals required PR link to the Slack #log-starter notification

The same pattern should be replicated for the full starter, targeting the CUSTOM_STARTER_URL value inside the docker compose examples instead of pom.xml.

Affected file (current reference):

docker/docker-compose-examples/single-node/docker-compose.yml
CUSTOM_STARTER_URL: 'https://repo.dotcms.com/artifactory/libs-release-local/com/dotcms/starter/20260409/starter-20260409.zip'

Acceptance Criteria

  • When the Publish Starter workflow runs with type: full and dry-run: false, a step updates CUSTOM_STARTER_URL in all docker compose example files that reference a full starter artifact URL
  • An automated PR is created (via peter-evans/create-pull-request@v6) containing only the docker compose file changes, using an appropriate branch name (e.g., <issue-number>-update-docker-compose-starter-<version>-<run_id>)
  • The PR title and body clearly identify the new starter version and that the PR was created automatically
  • The PR is labeled with full-starter and automated pr
  • The Slack #log-starter notification for a full starter includes the PR link with the same :exclamation: Approvals required alert format already used for the empty starter
  • The new steps are guarded by type == 'full' && dry-run == 'false' conditions (mirroring the empty starter guards)
  • Dry-run mode skips PR creation and omits the PR link from any Slack message

Additional Context

  • Reference implementation (empty starter path): .github/workflows/cicd_manual_publish-starter.yml — steps update-pom, create-pull-request, and the PR_ALERT block inside Compose Message
  • The issue-number workflow input (already required) should be reused for the full-starter branch name, consistent with the empty starter approach

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with .github/workflows/cicd_manual_publish-starter.yml and inspect the existing update-pom, create-pull-request, and PR_ALERT steps for the empty-starter path. Add the corresponding full-starter workflow behavior for CUSTOM_STARTER_URL, then verify that full non-dry runs create the labeled PR and Slack alert while dry runs skip both.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker-compose, github-actions, yaml
Domain
ci-cd, devops
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.