PHPackages                             drevops/vortex-tooling - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. drevops/vortex-tooling

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

drevops/vortex-tooling
======================

Shell scripts for Vortex-based Drupal projects (deploy, notify, provision, fetch/export DB, etc.).

1.3.0(3w ago)05.2k↑66.1%GPL-3.0-or-laterPHP &gt;=8.2

Since May 25Compare

[ Source](https://github.com/drevops/vortex-tooling)[ Packagist](https://packagist.org/packages/drevops/vortex-tooling)[ Docs](https://github.com/drevops/vortex)[ RSS](/packages/drevops-vortex-tooling/feed)WikiDiscussions Synced 3w ago

READMEChangelog (3)DependenciesVersions (6)Used By (0)

Vortex Tooling
==============

[](#vortex-tooling)

Helper scripts that ship with [Vortex](https://github.com/drevops/vortex), the Drupal project template by [DrevOps](https://www.drevops.com). They implement the host-side and in-container operations your project relies on.

This package is distributed via Composer as `drevops/vortex-tooling` and needs to be added to your Drupal consumer project site.

Installation
------------

[](#installation)

```
composer require drevops/vortex-tooling
```

Once installed, you run the shipped scripts from `vendor/drevops/vortex-tooling/src/`.

Read-only mirror
----------------

[](#read-only-mirror)

Important

This repository is a **read-only mirror** of the [`.vortex/tooling/`](https://github.com/drevops/vortex/tree/main/.vortex/tooling)directory in the [`drevops/vortex`](https://github.com/drevops/vortex)monorepo. **Do not open issues or pull requests here.** All development happens in the parent repository.

You want toGo toReport a bug[drevops/vortex/issues](https://github.com/drevops/vortex/issues)Propose a change[drevops/vortex/pulls](https://github.com/drevops/vortex/pulls)Browse the source of truth[drevops/vortex/.vortex/tooling](https://github.com/drevops/vortex/tree/main/.vortex/tooling)Read the documentation[www.vortextemplate.com](https://www.vortextemplate.com)Each commit in this repository corresponds to a commit in the parent repository. The commit message body records the source commit SHA for provenance.

Extending provisioning
----------------------

[](#extending-provisioning)

The `provision` script runs your own scripts after the core provisioning steps complete (database import or profile install, database updates, configuration import, cache rebuild, deployment hooks, and sanitisation). This is the recommended way to add project-specific provisioning logic - enabling modules, running migrations, seeding content, and so on - without touching the shipped scripts.

Drop an executable script into your project's `scripts/` directory, named with the `provision-` prefix and the `.sh` extension. The `provision` script discovers and runs every matching file in filename order; use a two-digit number to sequence them (`provision-10-...`, `provision-20-...`).

The layout looks like this:

```
your-project/
├── .ahoy.yml
├── composer.json
├── scripts/
│   ├── provision-10-example.sh   # shipped example - copy or remove
│   ├── provision-20-migration.sh # shipped example - copy or remove
│   └── provision-30-custom.sh    # your own hook script
├── vendor/
│   └── drevops/vortex-tooling/src/provision   # runs each provision-*.sh in order
├── web/                          # Drupal web root
│   └── ...
└── ...

```

The template ships runnable examples you can copy or remove - [`scripts/provision-10-example.sh`](https://github.com/drevops/vortex/blob/main/scripts/provision-10-example.sh)and [`scripts/provision-20-migration.sh`](https://github.com/drevops/vortex/blob/main/scripts/provision-20-migration.sh). See the [provisioning documentation](https://www.vortextemplate.com/docs/drupal/provision#running-custom-scripts)for the full reference.

Customisation
-------------

[](#customisation)

Reach for this only when [extending provisioning](#extending-provisioning) is not enough - when you need to change how a shipped script *itself* behaves (alter a step it already runs, change a default, or fix something upstream that no post-provision hook can reach). It is the last resort.

The scripts are installed read-only into `vendor/`, so do not fork them or edit them in place: those changes are lost on the next `composer update`. Instead, apply a patch managed by [`cweagans/composer-patches`](https://github.com/cweagans/composer-patches) and declared in your project's `composer.json`. The patch is re-applied automatically whenever the package is installed or updated in your project, so your customisation survives dependency updates and stays version-controlled alongside the rest of your project.

Testing
-------

[](#testing)

The scripts are covered at two levels:

- **Unit tests** - [BATS](https://github.com/bats-core/bats-core) tests provide full unit coverage of the scripts, with external commands mocked. They live in [`tests/`](https://github.com/drevops/vortex/tree/main/.vortex/tooling/tests)in the source repository.
- **Integration tests** - end-to-end coverage comes from the parent project that uses these scripts, [Vortex](https://github.com/drevops/vortex). Its [functional tests](https://github.com/drevops/vortex/tree/main/.vortex/tests)provision a real project and run the scripts to verify they work together.

License
-------

[](#license)

[GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.html)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance94

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

5

Last Release

24d ago

Major Versions

1.3.0 → 2.x-dev2026-06-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/b57b0fd0b96f77f2efa1a1889af0ae607fa139bcc1256e809ee3ebbb30907364?d=identicon)[alexdrevops](/maintainers/alexdrevops)

### Embed Badge

![Health badge](/badges/drevops-vortex-tooling/health.svg)

```
[![Health](https://phpackages.com/badges/drevops-vortex-tooling/health.svg)](https://phpackages.com/packages/drevops-vortex-tooling)
```

###  Alternatives

[in2code/in2publish_core

Content publishing extension to connect stage and production server

40143.4k](/packages/in2code-in2publish-core)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4778.9k](/packages/tiamo-phpas2)[enygma/composerclean

An additional command for Composer that removes configured files/directory

171.8k](/packages/enygma-composerclean)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
