Skip to content

[#2733] Renamed the container-image push scripts and variables from 'deploy' to 'push' and dropped the container-registry deploy type.#2737

Merged
AlexSkrypnyk merged 9 commits into
mainfrom
feature/2733-push-container-reg
Jun 26, 2026
Merged

[#2733] Renamed the container-image push scripts and variables from 'deploy' to 'push' and dropped the container-registry deploy type.#2737
AlexSkrypnyk merged 9 commits into
mainfrom
feature/2733-push-container-reg

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Jun 26, 2026

Copy link
Copy Markdown
Member

Closes #2733

Summary

Renamed the registry-push tooling from deploy to push and dropped container_registry as a VORTEX_DEPLOY_TYPES deployment option. In Vortex, "deploy" means deploying the application; pushing an image to a registry is a push. The shipped scripts deploy-container-registry and deploy-db-image become push-container-registry and push-db-image, their VORTEX_DEPLOY_CONTAINER_REGISTRY* variables become VORTEX_PUSH_CONTAINER_REGISTRY*, and VORTEX_EXPORT_DB_CONTAINER_REGISTRY_DEPLOY_PROCEED becomes VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED. The CI database-image push is unaffected - it keeps pushing the image through the renamed scripts. Both registry scripts were also hardened (password tracing, map validation, tag detection) with regression tests.

Changes

Script and variable renames (deploypush)

  • Renamed deploy-container-registrypush-container-registry and deploy-db-imagepush-db-image (scripts and BATS tests), rewording their messages from "deployment" to "push".
  • Renamed the VORTEX_DEPLOY_CONTAINER_REGISTRY, _MAP, _IMAGE_TAG, _USER, and _PASS variables to the VORTEX_PUSH_CONTAINER_REGISTRY* family (the generic VORTEX_CONTAINER_REGISTRY* fallbacks are unchanged).
  • Renamed VORTEX_EXPORT_DB_CONTAINER_REGISTRY_DEPLOY_PROCEEDVORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED.
  • Updated every caller and reference: the deploy router, .circleci/config.yml, .circleci/vortex-test-common.yml, the generate-vortex-dev-circleci generator, and the ci.variables.sh documentation source.

Dropped container_registry as a deploy type

  • Removed the container_registry dispatch from the deploy router and the "Container image" option from the installer DeployTypes handler (with its process-test scenarios and the deploy_types_container_image fixture).
  • Deleted the docker.mdx deployment doc and its deployment/README.mdx entry, removed the label from the architecture SVG diagrams, dropped it from the .ahoy.yml deploy hint, and removed the conditional-token row from the installer CLAUDE.md.
  • This type was vestigial: the installer wrote container_image while the router only matched container_registry, so they never connected.

Corrected the deploy-types list

  • Fixed the deploy router contract and the .ahoy.yml prompt from the invalid code to the actually-dispatched artifact, webhook, lagoon.

Hardening (push-container-registry, login-container-registry)

  • The registry password is no longer written to trace output under VORTEX_DEBUG=1.
  • The empty-map no-op runs before credential validation, so the helper exits cleanly when invoked without a services map.
  • Empty map entries (service= or =image) are rejected with a clear error.
  • Image-tag detection inspects only the final reference segment, so a registry host:port is not mistaken for a tag.
  • Added regression tests for each, and isolated VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED in the test helper's setup().

Regenerated the installer snapshots/fixtures and the variables.mdx documentation.

Before / After

Before                                  After
─────────────────────────────────────  ─────────────────────────────────────
scripts:                                scripts:
  deploy-container-registry               push-container-registry
  deploy-db-image                         push-db-image

variables:                              variables:
  VORTEX_DEPLOY_CONTAINER_REGISTRY*       VORTEX_PUSH_CONTAINER_REGISTRY*
  ..._CONTAINER_REGISTRY_DEPLOY_PROCEED   ..._CONTAINER_REGISTRY_PUSH_PROCEED

deploy router dispatch:                 deploy router dispatch:
  artifact|webhook|lagoon|container_reg   artifact|webhook|lagoon
  (installer wrote container_image -      (no registry-push deploy type)
   never matched the router)

deploy types contract / ahoy hint:      deploy types contract / ahoy hint:
  code, webhook                           artifact, webhook, lagoon

VORTEX_DEBUG=1 trace:                    VORTEX_DEBUG=1 trace:
  registry password printed               password never traced

image tag detection:                    image tag detection:
  host:5000/img seen as "tagged"          only final segment checked

docs/docker.mdx                          (deleted)
deploy_types_container_image fixture     (deleted)

Screenshots

N/A - non-visual tooling change.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The PR removes container-registry deployment options, renames the registry push flow and related helpers, updates DB-image CI wiring to the new push commands and variables, and refreshes matching docs and tests.

Changes

Container registry rename and deploy-type cleanup

Layer / File(s) Summary
Deployment-type surfaces
.ahoy.yml, .vortex/docs/content/deployment/README.mdx, .vortex/installer/CLAUDE.md, .vortex/installer/src/Prompts/Handlers/DeployTypes.php, .vortex/installer/tests/Functional/Handlers/DeployTypeHandlerProcessTest.php
Deployment prompts, docs, installer tokens, and DeployTypes no longer list the container-registry deployment entry.
Deploy routing and validation
.vortex/tooling/src/deploy, .vortex/tooling/tests/unit/deploy-artifact.bats, .vortex/tooling/tests/unit/deploy.bats
deploy removes the container_registry branch, updates the allowed-type message, and the related tests expect the reduced list.
Push and login behavior
.vortex/tooling/src/push-container-registry, .vortex/tooling/src/login-container-registry, .vortex/tooling/tests/unit/push-container-registry.bats, .vortex/tooling/tests/unit/login-container-registry.bats
The registry push command switches to push-oriented variables and tag handling, the login helper suppresses password tracing, and the unit tests cover push flow, malformed maps, and password redaction.
DB image push command and tests
.vortex/tooling/src/push-db-image, .vortex/tooling/tests/unit/push-db-image.bats
push-db-image now uses push proceed/map variables and calls push-container-registry; its tests cover skipping, fallback image resolution, push failure, and missing image errors.
DB image CI wiring and variables
.circleci/config.yml, .circleci/vortex-test-common.yml, .vortex/tests/generate-vortex-dev-circleci, .vortex/docs/.utils/variables/extra/ci.variables.sh, .vortex/docs/content/development/variables.mdx
CircleCI jobs, generated fixtures, and variable docs now reference the DB image push control flag and push-oriented registry variables.

Sequence Diagram(s)

sequenceDiagram
  participant database job
  participant push-db-image
  participant push-container-registry
  participant login-container-registry
  participant Docker registry
  database job->>push-db-image: run push-db-image
  push-db-image->>push-container-registry: invoke with VORTEX_PUSH_CONTAINER_REGISTRY_MAP
  push-container-registry->>login-container-registry: run registry login
  login-container-registry->>Docker registry: docker login --password-stdin
  push-container-registry->>Docker registry: docker push tagged image
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • drevops/vortex#2627: Updates the DB container-registry export flow and its VORTEX_EXPORT_DB_CONTAINER_REGISTRY_*_PROCEED wiring, which this PR renames from deploy to push.
  • drevops/vortex#2686: Changes the deploy router’s VORTEX_DEPLOY_TYPES dispatch, which this PR further narrows by removing container_registry.
  • drevops/vortex#2727: Introduces the dedicated DB-image helper path that this PR updates to call push-container-registry and wire through the new push variables.

Suggested labels

A1

Poem

🐰 I hopped from deploy to push with glee,
No stray passwords in xtrace for me.
The registry hummed, the tags stayed true,
And DB images leapt right through.
Carrots for CI—hooray! 🥕

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Linked Issues check ❓ Inconclusive Most requirements appear met, but fixture and snapshot regeneration cannot be verified because .vortex/installer/tests/Fixtures/** files were filtered out. Provide the excluded fixture/snapshot diffs or adjust the path filter so the regenerated baselines can be reviewed.
✅ Passed checks (3 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The changes stay centered on registry-tooling renames and related docs, tests, CI, and prompts; no unrelated additions are evident.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: renaming deploy-to-push registry tooling and removing the container-registry deploy type.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/2733-push-container-reg

Comment @coderabbitai help to get the list of available commands.

@AlexSkrypnyk AlexSkrypnyk added this to the 1.40.0 milestone Jun 26, 2026
@AlexSkrypnyk AlexSkrypnyk added the A2 Working clone index A2 label Jun 26, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.ahoy.yml:
- Line 345: The deploy confirmation prompt in ahoy confirm is advertising the
wrong allowed type list. Update the message so it matches the current deploy
contract used by the deploy flow, replacing the outdated “code” entry with
“artifact” and adding “lagoon” alongside “webhook”; keep the prompt text in sync
with the deploy command’s supported types so users are guided correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 61e9e6b7-5412-41e1-832d-8f8a424ca4fc

📥 Commits

Reviewing files that changed from the base of the PR and between df82fa6 and 11de86f.

⛔ Files ignored due to path filters (6)
  • .vortex/docs/static/img/diagram-scripts-dark.svg is excluded by !**/*.svg
  • .vortex/docs/static/img/diagram-scripts-light.svg is excluded by !**/*.svg
  • .vortex/installer/tests/Fixtures/handler_process/_baseline/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deploy_types_all_circleci/.env is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deploy_types_all_gha/.env is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deploy_types_container_image/.env is excluded by !.vortex/installer/tests/Fixtures/**
📒 Files selected for processing (15)
  • .ahoy.yml
  • .vortex/docs/content/deployment/README.mdx
  • .vortex/docs/content/deployment/docker.mdx
  • .vortex/installer/CLAUDE.md
  • .vortex/installer/src/Prompts/Handlers/DeployTypes.php
  • .vortex/installer/tests/Functional/Handlers/DeployTypeHandlerProcessTest.php
  • .vortex/tooling/src/deploy
  • .vortex/tooling/src/deploy-db-image
  • .vortex/tooling/src/login-container-registry
  • .vortex/tooling/src/push-container-registry
  • .vortex/tooling/tests/unit/deploy-artifact.bats
  • .vortex/tooling/tests/unit/deploy-db-image.bats
  • .vortex/tooling/tests/unit/deploy.bats
  • .vortex/tooling/tests/unit/login-container-registry.bats
  • .vortex/tooling/tests/unit/push-container-registry.bats
💤 Files with no reviewable changes (3)
  • .vortex/docs/content/deployment/docker.mdx
  • .vortex/docs/content/deployment/README.mdx
  • .vortex/installer/src/Prompts/Handlers/DeployTypes.php

Comment thread .ahoy.yml Outdated
@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

📖 Documentation preview for this pull request has been deployed to Netlify:

https://6a3e16d5ee3ecec6edd1239f--vortex-docs.netlify.app

This preview is rebuilt on every commit and is not the production documentation site.

@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.22%. Comparing base (df82fa6) to head (a6aff70).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #2737       +/-   ##
===========================================
- Coverage   99.51%   86.22%   -13.29%     
===========================================
  Files           9       89       +80     
  Lines         205     4560     +4355     
  Branches       47        3       -44     
===========================================
+ Hits          204     3932     +3728     
- Misses          1      628      +627     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Jun 26, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.vortex/docs/.utils/variables/extra/ci.variables.sh:
- Line 21: The shellvar source comment for the CI variable still says
“deployment” even though the symbol was renamed to the PUSH variant, so update
the wording to “push” for consistency. Edit the comment near the related
variable definition in the shellvars source so it matches the new push
terminology and propagates correctly to the generated documentation, including
the description used by variables.mdx.

In @.vortex/tooling/tests/unit/push-db-image.bats:
- Around line 22-101: The proceed flag cleanup in the test helper is incomplete,
so `VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED` can leak between tests.
Update `.vortex/tooling/tests/_helper.bash` in `setup()` to unset this renamed
variable alongside `VORTEX_DB_IMAGE`, using the existing helper setup logic so
`push-db-image` tests start from a clean environment.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c53696f0-6b05-4e6f-b0b2-2bce4a176391

📥 Commits

Reviewing files that changed from the base of the PR and between 11de86f and f480c3f.

⛔ Files ignored due to path filters (21)
  • .vortex/installer/tests/Fixtures/handler_process/_baseline/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml is excluded by !.vortex/installer/tests/Fixtures/**
📒 Files selected for processing (11)
  • .ahoy.yml
  • .circleci/config.yml
  • .circleci/vortex-test-common.yml
  • .vortex/docs/.utils/variables/extra/ci.variables.sh
  • .vortex/docs/content/development/variables.mdx
  • .vortex/tests/generate-vortex-dev-circleci
  • .vortex/tooling/src/push-container-registry
  • .vortex/tooling/src/push-db-image
  • .vortex/tooling/tests/unit/deploy-db-image.bats
  • .vortex/tooling/tests/unit/push-container-registry.bats
  • .vortex/tooling/tests/unit/push-db-image.bats
💤 Files with no reviewable changes (1)
  • .vortex/tooling/tests/unit/deploy-db-image.bats

Comment thread .vortex/docs/.utils/variables/extra/ci.variables.sh Outdated
Comment thread .vortex/tooling/tests/unit/push-db-image.bats
@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

1 similar comment
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

@github-actions

Copy link
Copy Markdown

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   98.55% (204/207)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

Copy link
Copy Markdown
Member Author

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   98.55% (204/207)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk AlexSkrypnyk changed the title [#2733] Renamed 'deploy-container-registry' to 'push-container-registry' and dropped the container-registry deploy type. [#2733] Renamed the container-image push scripts and variables from 'deploy' to 'push' and dropped the container-registry deploy type. Jun 26, 2026
@AlexSkrypnyk AlexSkrypnyk merged commit 4ddee55 into main Jun 26, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from BACKLOG to Release queue in Vortex 1.x Jun 26, 2026
@AlexSkrypnyk AlexSkrypnyk deleted the feature/2733-push-container-reg branch June 26, 2026 06:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A2 Working clone index A2 Needs review Pull request needs a review from assigned developers

Projects

Status: Release queue

Development

Successfully merging this pull request may close these issues.

Rename 'deploy-container-registry' to 'push-container-registry' and drop it as a deployment option.

1 participant