Toolkit

Commands

To list all available tasks, please run:

docker-composer exec web ./vendor/bin/run

See bellow current list of available commands:

Available commands:
  completion                          Dump the shell completion script
  config                              Dumps the current or given configuration.
  help                                Display help for a command
  list                                List commands
 check
  check:abandoned                     Check abandoned components.
  check:composer                      Check composer packages.
  check:configuration                 Check project configuration.
  check:development                   Check development components.
  check:evaluation                    Check Evaluation components.
  check:insecure                      Check insecure components.
  check:mandatory                     Check mandatory components.
  check:npm-insecure                  Run NPM Insecure.
  check:npm-outdated                  Run NPM Outdated.
  check:outdated                      Check outdated components.
  check:recommended                   Check recommended components.
  check:unsupported                   Check unsupported components.
 docker
  docker:refresh-configuration        [dk-rc] Update docker-compose.yml file based on project's configurations.
 drupal
  drupal:check-permissions            Command to check the forbidden permissions.
  drupal:check-sanitisation-classes   Command to check existence of Sanitisation classes.
  drupal:check-sanitisation-fields    Command to check fields for sanitisation.
  drupal:config-import                Run the Drupal config import.
  drupal:disable-cache                Disable aggregation and clear cache.
  drupal:drush-setup                  Write Drush configuration file at "${drupal.root}/drush/drush.yml".
  drupal:permissions-setup            Setup Drupal permissions.
  drupal:settings-setup               Setup Drupal settings.php file in compliance with Toolkit conventions.
  drupal:site-install                 [drupal:si|dsi] Install target site.
  drupal:site-post-install            Run Drupal post-install commands.
  drupal:site-pre-install             Run Drupal pre-install commands.
  drupal:symlink-project              Symlink project as module, theme or profile in the proper directory.
  drupal:upgrade-status               [tdus] Check project compatibility for Drupal 9/10/11 upgrade.
 toolkit
  toolkit:build-assets                [tk-assets|tba] Build theme assets (Css and Js).
  toolkit:build-assets-dist           Run the toolkit:build-assets for distribution
  toolkit:build-dev                   [tk-bdev] Build site for local development.
  toolkit:build-dev-reset             [tk-bdev-reset] Build site for local development from scratch with a clean git.
  toolkit:build-dist                  [tk-bdist] Build the distribution package.
  toolkit:check-phpcs-requirements    Make sure that the config file exists and configuration is correct.
  toolkit:check-version               Check the Toolkit version.
  toolkit:code-review                 Execute all or specific tools for static testing.
  toolkit:complock-check              Check if 'composer.lock' exists on the project root folder.
  toolkit:component-check             Check composer for components that are not whitelisted/blacklisted.
  toolkit:create-dump                 [tk-cdump] Export the local snapshot.
  toolkit:download-dump               [tk-ddump] Download database snapshot.
  toolkit:fix-permissions             Run script to fix permissions (experimental).
  toolkit:generate-packages-composer  Generate composer.json files for each local package.
  toolkit:hooks-delete-all            [tk-hdel] Remove all existing hooks, this will ignore active hooks list.
  toolkit:hooks-disable               [tk-hdis] Disable the git hooks.
  toolkit:hooks-enable                [tk-hen] Enable the git hooks defined in the configuration or in given option.
  toolkit:hooks-list                  [tk-hlist] List available hooks and its status.
  toolkit:hooks-run                   [tk-hrun] Run a specific hook.
  toolkit:import-config               [DEPRECATED] Run the Drupal config import.
  toolkit:install-clean               [tk-iclean] Install a clean website.
  toolkit:install-clone               [tk-iclone] Install a clone website.
  toolkit:install-dependencies        Install packages present in the .opts.yml file under extra_pkgs section.
  toolkit:install-dump                [tk-idump] Import the production snapshot.
  toolkit:lint-behat                  [tk-lbehat] Run lint Behat.
  toolkit:lint-cspell                 [tk-cspell] Run lint CSpell.
  toolkit:lint-css                    [tk-css] Run lint CSS.
  toolkit:lint-js                     [tk-js|tljs] Run lint JS.
  toolkit:lint-php                    [tk-php|tlp] Run lint PHP.
  toolkit:lint-yaml                   [tk-yaml|tly] Run lint YAML.
  toolkit:notifications               [tk-notifications] Display Toolkit notifications.
  toolkit:opts-review                 [tk-opts-review] Check project's .opts.yml file for forbidden commands.
  toolkit:patch-download              [tk-pd] Download remote patches into a local directory.
  toolkit:patch-list                  [tk-pl] Lists remote patches from the root composer.json.
  toolkit:requirements                [tk-req] Check the Toolkit Requirements.
  toolkit:run-axe-scan                [tk-axe] Run the axe-scan.
  toolkit:run-axe-scan-summary        [tk-axe-sum] Run the axe-scan summary.
  toolkit:run-blackfire               [tk-bfire|tbf] Run Blackfire.
  toolkit:run-deploy                  [tk-deploy] Run deployment sequence.
  toolkit:run-gitleaks                [tk-gitleaks] Executes the Gitleaks.
  toolkit:run-phpcbf                  [tk-phpcbf] Run PHP code autofixing.
  toolkit:setup-axe-scan              Make sure axe-scan is installed and properly configured.
  toolkit:setup-behat                 Setup the Behat file.
  toolkit:setup-blackfire-behat       Copy the needed resources to run Behat with Blackfire.
  toolkit:setup-eslint                Setup the ESLint configurations and dependencies.
  toolkit:setup-phpcs                 Setup PHP code sniffer.
  toolkit:setup-phpunit               Setup the PHPUnit file.
  toolkit:test-behat                  [tk-behat|tb] Run Behat tests.
  toolkit:test-phpcs                  [tk-phpcs] Run PHP code sniffer.
  toolkit:test-phpmd                  [tk-phpmd] Run PHPMD.
  toolkit:test-phpstan                [tk-phpstan] Run PHPStan.
  toolkit:test-phpunit                [tk-phpunit|tp] Run PHPUnit tests.
  toolkit:vendor-list                 Check 'Vendor' packages being monitored.

Creating custom commands

To provide custom commands, make sure that your classes are loaded, for example using PSR-4 namespacing set the autoload in the composer.json file.

{
  "autoload": {
    "psr-4": {
      "My\\Project\\": "./src/"
    }
  }
}

Create your command class under src/TaskRunner/Commands that will extend the abstract Toolkit command, like:

<?php
namespace My\Project\TaskRunner\Commands;

use EcEuropa\Toolkit\TaskRunner\AbstractCommands;

class ExampleCommands extends AbstractCommands {
  /** @command example:first-command */
  public function commandOne() { }
}

For more detail, check the consolidation/annotated-command documentation.

Passing default options for a command

You can pass default values for the command options, for that you need to define a configuration file, and import it as shown below.

# config/commands/config.yml
commands:
  example:
    first-command:
      options:
        output: false
<?php
namespace My\Project\TaskRunner\Commands;

use EcEuropa\Toolkit\TaskRunner\AbstractCommands;
use Symfony\Component\Console\Input\InputOption;

class ExampleCommands extends AbstractCommands {
  public function getConfigurationFile() {
    return __DIR__ . '/../../../config/commands/config.yml';
  }

  /**
   * @command example:first-command
   * @option output This is a test option
   */
  public function commandOne($options = [
    'output' => InputOption::VALUE_REQUIRED
  ]) { }
}

Creating configuration commands

Configuration commands are created in the configuration file runner.yml , like shown below:

commands:
  drupal:setup-test:
    - { task: process, source: behat.yml.dist, destination: behat.yml }

  drupal:setup-test2:
    aliases: test
    description: 'Setup the behat file'
    help: 'Some help text'
    hidden: false
    usage: '--simulate'
    tasks:
      - { task: process, source: behat.yml.dist, destination: behat.yml }

The configuration commands are a mapping to the Robo Tasks, the list of available tasks is:

Task Robo Task
mkdir FilesystemStack
touch FilesystemStack
copy FilesystemStack
copyDir FilesystemStack
chmod FilesystemStack
chgrp FilesystemStack
chown FilesystemStack
remove FilesystemStack
rename FilesystemStack
symlink FilesystemStack
mirror FilesystemStack
process Process
append Write with append()
run Executes a Runner task
exec Exec
drush Executes a Drush command
replace-block ReplaceBlock

Search results