Skip to content

Fixed eight small issues across ahoy commands, installer runners, and CI workflows.#2533

Merged
AlexSkrypnyk merged 9 commits into
mainfrom
feature/improvements
May 31, 2026
Merged

Fixed eight small issues across ahoy commands, installer runners, and CI workflows.#2533
AlexSkrypnyk merged 9 commits into
mainfrom
feature/improvements

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented May 30, 2026

Copy link
Copy Markdown
Member

Summary

Bundles eight verified findings from an exploratory assessment of the Vortex codebase. Each commit is a focused, independent fix - small enough to review individually but grouped here because they share a theme of cleaning up small bugs, dead code, and CI waste surfaced by the same pass.

Changes

Ahoy command bugs and broken doc references

  • download-db --fresh no-op on default sources (.ahoy.yml). The --fresh flag set VORTEX_DOWNLOAD_DB_FRESH=1, but the download-db script reads VORTEX_DOWNLOAD_DB_FORCE. Only the Acquia and Lagoon downloader variants happen to also read _FRESH, so on the default url/ftp/s3 paths --fresh silently did nothing. Fix: the same export statement now also sets VORTEX_DOWNLOAD_DB_FORCE=1, keeping both variables for any code that reads either.
  • download-db2 --fresh was missing the indexed env vars (.ahoy.yml). Same class of bug as above but for the migration DB. The router resolves env vars with the index suffix (VORTEX_DOWNLOAD_DB${_db_index}_FORCE, i.e. VORTEX_DOWNLOAD_DB2_FORCE when VORTEX_DB_INDEX=2); the Acquia/Lagoon downloaders gate fresh behavior on VORTEX_DOWNLOAD_DB2_FRESH. The download-db2 --fresh invocation exported the un-indexed VORTEX_DOWNLOAD_DB_FORCE instead, so neither the cache-skip nor the fresh dump path was honored. Fix: export VORTEX_DOWNLOAD_DB2_FRESH=1 VORTEX_DOWNLOAD_DB2_FORCE=1.
  • Dead ahoy test-workflow and ahoy test-deployment (.vortex/.ahoy.yml). Both pointed at shell scripts that no longer exist - the work moved to PHPUnit tests under .vortex/tests/phpunit/Functional/ and neither command is referenced anywhere in CI. Removed.
  • Phantom ahoy update-installer-video references (.vortex/installer/CLAUDE.md, .vortex/docs/content/contributing/maintenance/installer.mdx, .vortex/docs/content/contributing/maintenance/release.mdx). Three files instructed maintainers to run a command that does not exist. Replaced with the actual command, ahoy update-videos installer.

Dead code in the installer

  • Overwritten match block in runners (.vortex/installer/src/Runner/ProcessRunner.php, .vortex/installer/src/Runner/CommandRunner.php). Both runners had a match ($exit_code) { ... } writing an aliased value into $this->exitCode, immediately followed by $this->exitCode = $exit_code;. The match was 100% no-op. Removed both blocks and the now-unused use Symfony\Component\Console\Command\Command; import in each file. The RunnerInterface::EXIT_* constants are kept - they are public API surface referenced by mock callbacks in BuildCommandTest and CheckRequirementsCommandTest.
  • Stale Solr port removal (.vortex/installer/src/Prompts/Handlers/Services.php). Two File::removeLineInFile() calls targeted backslash-continuation forms of the Solr port line in .ahoy.yml (one had // @todo Remove after 25.10.0 release.). The current template line has no \\ continuation, so neither pattern matches anything. Also, that whole line is already wrapped in #;< SERVICE_SOLR ... #;> SERVICE_SOLR and gets removed via File::removeTokenAsync('SERVICE_SOLR') earlier in the same handler. The two calls were doubly dead. Removed both.

CI waste in vortex-test-installer.yml

  • No cancel-in-progress guard. vortex-test-common.yml has a concurrency block; vortex-test-installer.yml did not. Rapid force-pushes queued multiple ~15 min runs. Copied the same concurrency block over.
  • Installer video step running on all PHP matrix legs. The "Generate video for installer (not used in the final artifact)" step ran on PHP 8.2, 8.3, and 8.4 even though only one leg produces the downstream artifact. Gated with if: matrix.php-versions == '8.2', matching the existing guard already on the PHAR upload step.

Auto-regenerated fixtures

20 .ahoy.yml fixture files under .vortex/installer/tests/Fixtures/handler_process/ propagate the download-db and download-db2 env-var changes. Generated by ahoy update-snapshots.

Before / After

The --fresh env-var flow on the default url source for the primary DB:

Before
------
ahoy download-db --fresh
   │
   ▼ exports VORTEX_DOWNLOAD_DB_FRESH=1
   │
   ▼ ./vendor/drevops/vortex-tooling/src/download-db
   │     reads VORTEX_DOWNLOAD_DB_FORCE  ──▶ unset, cache reused
   │     reads VORTEX_DOWNLOAD_DB_FRESH  ──▶ ignored on url/ftp/s3
   ▼
cached dump kept (silent no-op)


After
-----
ahoy download-db --fresh
   │
   ▼ exports VORTEX_DOWNLOAD_DB_FRESH=1 VORTEX_DOWNLOAD_DB_FORCE=1
   │
   ▼ ./vendor/drevops/vortex-tooling/src/download-db
   │     reads VORTEX_DOWNLOAD_DB_FORCE  ──▶ 1, cache skipped
   │     reads VORTEX_DOWNLOAD_DB_FRESH  ──▶ 1, honored on acquia/lagoon
   ▼
fresh dump downloaded

The same flow for the migration DB, via the indexed lookup (_db_index="2"):

Before
------
ahoy download-db2 --fresh
   │
   ▼ exports VORTEX_DOWNLOAD_DB_FORCE=1 (un-indexed)
   │
   ▼ VORTEX_DB_INDEX=2 ./vendor/.../download-db
   │     reads VORTEX_DOWNLOAD_DB2_FORCE  ──▶ unset, cache reused
   │     reads VORTEX_DOWNLOAD_DB2_FRESH  ──▶ unset (Acquia/Lagoon ignore)
   ▼
cached migration dump kept (silent no-op)


After
-----
ahoy download-db2 --fresh
   │
   ▼ exports VORTEX_DOWNLOAD_DB2_FRESH=1 VORTEX_DOWNLOAD_DB2_FORCE=1
   │
   ▼ VORTEX_DB_INDEX=2 ./vendor/.../download-db
   │     reads VORTEX_DOWNLOAD_DB2_FORCE  ──▶ 1, cache skipped
   │     reads VORTEX_DOWNLOAD_DB2_FRESH  ──▶ 1, honored on acquia/lagoon
   ▼
fresh migration dump downloaded

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR updates Ahoy download-db/download-db2 --fresh exports to include FORCE flags, refactors installer runners to use raw exit codes, adds CI concurrency and matrix gating, removes legacy Solr .ahoy.yml cleanup, and consolidates installer video command and docs.

Changes

Installer command consolidation and deployment updates

Layer / File(s) Summary
Download-db fresh flag enhancement
.ahoy.yml
The --fresh flag for download-db and download-db2 now sets both *_FRESH=1 and *_FORCE=1 environment exports.
Installer video command consolidation and docs
.vortex/.ahoy.yml, .vortex/docs/content/contributing/maintenance/installer.mdx, .vortex/docs/content/contributing/maintenance/release.mdx, .vortex/installer/CLAUDE.md
Removes test-deployment and test-workflow Ahoy commands and updates docs/snippets to use ahoy update-videos installer.
Workflow concurrency and matrix filtering
.github/workflows/vortex-test-installer.yml
Adds workflow-level concurrency with cancel-in-progress and gates the installer video generation step to PHP 8.2 matrix entries.
Exit-code handling refactor in runners
.vortex/installer/src/Runner/CommandRunner.php, .vortex/installer/src/Runner/ProcessRunner.php
Removes Symfony Command imports and match-based exit-code translation; runners now validate and assign raw exit codes directly.
Legacy Solr port cleanup removal
.vortex/installer/src/Prompts/Handlers/Services.php
Removes two .ahoy.yml line-removal calls that cleaned legacy VORTEX_HOST_SOLR_PORT entries in the Solr-disabled branch.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • drevops/vortex#2510: Touches .ahoy.yml download-db/download-db2 --fresh handling and overlaps with flag exports.
  • drevops/vortex#2505: Also modifies .ahoy.yml wiring for download-db* commands and --fresh env handling.
  • drevops/vortex#2525: Introduces update-videos changes replacing update-installer-video, related to the docs updates.

Poem

🐰 I hopped through flags and docs today,
Swapped commands the tidy way,
Exit codes now speak straight and true,
Solr's old lines flew off the view,
Installer vids refreshed — hip-hop hooray!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title states 'eight small issues' but the PR objectives clearly document seven focused fixes. The title is misleading about the quantity of changes. Update the title to accurately reflect seven fixes instead of eight, e.g., 'Fixed seven small issues across ahoy commands, installer runners, and CI workflows.'
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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/improvements

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

@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 146: The download-db2 script currently exports only
VORTEX_DOWNLOAD_DB_FORCE when --fresh is passed, but the router and provider
scripts check indexed variables like VORTEX_DOWNLOAD_DB2_FRESH and
VORTEX_DOWNLOAD_DB2_FORCE; update the --fresh handling in the download-db2
invocation (the case that matches " --fresh ") to export both
VORTEX_DOWNLOAD_DB2_FRESH=1 and VORTEX_DOWNLOAD_DB2_FORCE=1 (i.e., follow the
same pattern used by download-db but using the indexed names derived from
VORTEX_DB_INDEX), so the router (.vortex/tooling/src/download-db) and provider
scripts (.vortex/tooling/src/download-db-lagoon / download-db-acquia) will
correctly honor --fresh for db2.
🪄 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: 0446c0c9-62a0-49af-a53c-7fd58ddefc5b

📥 Commits

Reviewing files that changed from the base of the PR and between 9e8a14b and 50acf2b.

⛔ Files ignored due to path filters (11)
  • .vortex/installer/tests/Fixtures/handler_process/_baseline/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_acquia/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_container_registry/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_ftp/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_lagoon/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_s3/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_download_source_url/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_enabled/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_enabled_circleci/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/migration_enabled_lagoon/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/handler_process/provision_profile/.ahoy.yml is excluded by !.vortex/installer/tests/Fixtures/**
📒 Files selected for processing (9)
  • .ahoy.yml
  • .github/workflows/vortex-test-installer.yml
  • .vortex/.ahoy.yml
  • .vortex/docs/content/contributing/maintenance/installer.mdx
  • .vortex/docs/content/contributing/maintenance/release.mdx
  • .vortex/installer/CLAUDE.md
  • .vortex/installer/src/Prompts/Handlers/Services.php
  • .vortex/installer/src/Runner/CommandRunner.php
  • .vortex/installer/src/Runner/ProcessRunner.php
💤 Files with no reviewable changes (4)
  • .vortex/.ahoy.yml
  • .vortex/installer/src/Runner/CommandRunner.php
  • .vortex/installer/src/Runner/ProcessRunner.php
  • .vortex/installer/src/Prompts/Handlers/Services.php

Comment thread .ahoy.yml
@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.

@codecov

codecov Bot commented May 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.11%. Comparing base (289dd5a) to head (74286b2).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2533      +/-   ##
==========================================
- Coverage   86.49%   86.11%   -0.39%     
==========================================
  Files          94       87       -7     
  Lines        4674     4501     -173     
  Branches       47        3      -44     
==========================================
- Hits         4043     3876     -167     
+ Misses        631      625       -6     

☔ View full report in Codecov by Sentry.
📢 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

Copy link
Copy Markdown

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   98.53% (201/204)
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.53% (201/204)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk AlexSkrypnyk changed the title Fixed seven small issues across ahoy commands, installer runners, and CI workflows. Fixed eight small issues across ahoy commands, installer runners, and CI workflows. May 31, 2026
@AlexSkrypnyk AlexSkrypnyk merged commit af45e7f into main May 31, 2026
31 checks passed
@AlexSkrypnyk AlexSkrypnyk deleted the feature/improvements branch May 31, 2026 01:07
@github-project-automation github-project-automation Bot moved this from BACKLOG to Release queue in Vortex 1.x May 31, 2026
@AlexSkrypnyk AlexSkrypnyk added this to the 1.39.0 milestone Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Released in 1.39.0

Development

Successfully merging this pull request may close these issues.

1 participant