From 5170ed4c3dfe3f03697027df3cb14387dbddec3e Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Wed, 29 Jun 2022 16:55:46 -0600 Subject: [PATCH 01/13] Repurpose postSchema form to support custom path. --- .../src/Form/PostSolrSchema.php | 51 +++++++++++++++-- src/Commands/Schema.php | 1 + src/Services/SchemaPoster.php | 55 ++++++++++++------- 3 files changed, 84 insertions(+), 23 deletions(-) diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index 178aae2b..c9294f3a 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -22,6 +22,13 @@ class PostSolrSchema extends FormBase { */ protected SchemaPoster $schemaPoster; + /** + * Search api server. + * + * @var \Drupal\search_api\ServerInterface + */ + protected ServerInterface $server; + /** * Constructs a new EntityController. */ @@ -49,10 +56,21 @@ public function getFormId() { * {@inheritdoc} */ public function buildForm(array $form, FormStateInterface $form_state, ServerInterface $search_api_server = NULL) { - $messages = $this->schemaPoster->postSchema($search_api_server->id()); - $form['results'] = [ - '#markup' => implode('
', $messages), - ]; + $this->server = $search_api_server; + + $form['path'] = [ + '#type' => 'textfield', + '#title' => $this->t('Path to config files to post'), + '#description' => $this->t('Path to the config files to post. This should be a directory containing the configuration files to post. Leave empty to use search_api_solr defaults.'), + '#default_value' => '', + '#required' => FALSE, + ]; + + $form['actions'] = ['#type' => 'actions']; + $form['actions']['submit'] = [ + '#type' => 'submit', + '#value' => $this->t('Post Schema'), + ]; return $form; } @@ -61,6 +79,31 @@ public function buildForm(array $form, FormStateInterface $form_state, ServerInt * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { + $path = $form_state->getValue('path'); + $files = []; + if ($path) { + + } + $message = $this->schemaPoster->postSchema($this->server->id(), $files); + $method = $this->getMessageFunction($message[0]); + $this->messenger()->{$method}($message[1]); + } + + /** + * Get the right function to call based on the message type. + */ + protected function getMessageFunction(string $type) { + $functions = [ + 'info' => 'addStatus', + 'error' => 'addError', + ]; + if (isset($functions[$type])) { + return $functions[$type]; + } + else { + $this->messenger()->addWarning(t('Unknown message type: @type', ['@type' => $message[0]])); + return 'addStatus'; + } } } diff --git a/src/Commands/Schema.php b/src/Commands/Schema.php index 4249f40b..353157dd 100644 --- a/src/Commands/Schema.php +++ b/src/Commands/Schema.php @@ -60,6 +60,7 @@ public function __construct( * @aliases sapps */ public function postSchema(?string $server_id = NULL) { + // @todo: Update to support arbitrary path. if (!$server_id) { $server_id = PantheonSolrConnector::getDefaultEndpoint(); } diff --git a/src/Services/SchemaPoster.php b/src/Services/SchemaPoster.php index abd7d00c..7270bbe2 100644 --- a/src/Services/SchemaPoster.php +++ b/src/Services/SchemaPoster.php @@ -68,19 +68,24 @@ public function __construct( * * @param string $server_id * Search Api Server ID. + * @param array $files + * Array of files to post. * * @return array - * Array of response messages. + * Message to be displayed to user (type, message). * * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * @throws \Drupal\search_api\SearchApiException * @throws \Drupal\search_api_solr\SearchApiSolrException */ - public function postSchema(string $server_id): array { + public function postSchema(string $server_id, $files = []): array { // PANTHEON Environment. if (isset($_ENV['PANTHEON_ENVIRONMENT'])) { - $response = $this->uploadSchemaFiles($this->getSolrFiles($server_id)); + if (!$files) { + $files = $this->getSolrFiles($server_id); + } + $response = $this->uploadSchemaFiles($files); } // LOCAL DOCKER. if (isset($_SERVER['ENV']) && $_SERVER['ENV'] === 'local') { @@ -89,25 +94,37 @@ public function postSchema(string $server_id): array { if (!$response instanceof Response) { throw new \Exception('Cannot post schema to environment url.'); } + + return $this->processResponse($response); + } + + /** + * Process response and return message to be shown to user. + * + * @param \GuzzleHttp\Psr7\Response $response + * Response from Guzzle. + * + * @return array + * Message to be displayed to user (type, message). + */ + public function processResponse(Response $response): array { $log_function = in_array($response->getStatusCode(), [ - 200, - 201, - 202, - 203, - 204, - ]) - ? 'info' - : 'error'; + 200, + 201, + 202, + 203, + 204, + ]) ? 'info' : 'error'; $this->logger->{$log_function}('Files uploaded: {status_code} {reason}', [ - 'status_code' => $response->getStatusCode(), - 'reason' => $response->getReasonPhrase(), - ]); + 'status_code' => $response->getStatusCode(), + 'reason' => $response->getReasonPhrase(), + ]); $message = vsprintf($this->t('Result: %s Status code: %d - %s'), [ - $log_function == 'error' ? 'NOT UPLOADED' : 'UPLOADED', - $response->getStatusCode(), - $response->getReasonPhrase(), - ]); - return [$message]; + $log_function == 'error' ? 'NOT UPLOADED' : 'UPLOADED', + $response->getStatusCode(), + $response->getReasonPhrase(), + ]); + return [$log_function, $message]; } /** From 970482bc649393326143881119ce925a6ce4ae6f Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Wed, 29 Jun 2022 17:22:48 -0600 Subject: [PATCH 02/13] Post files from path if provided. --- composer.json | 3 +- .../src/Form/PostSolrSchema.php | 30 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 5aca4429..33391e19 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,8 @@ "http-interop/http-factory-guzzle": "^1.0", "kint-php/kint": "^4.1", "php-http/guzzle6-adapter": "^2.0", - "psr/event-dispatcher": "^1.0" + "psr/event-dispatcher": "^1.0", + "symfony/finder": "^4|^5" }, "require-dev": { "consolidation/robo": "^3.0", diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index c9294f3a..590d01be 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -7,6 +7,7 @@ use Drupal\search_api\ServerInterface; use Drupal\search_api_pantheon\Services\SchemaPoster; use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\Finder\Finder; /** * The Solr admin form. @@ -75,6 +76,27 @@ public function buildForm(array $form, FormStateInterface $form_state, ServerInt return $form; } + /** + * {@inheritdoc} + */ + public function validateForm(array &$form, FormStateInterface $form_state) { + $path = $form_state->getValue('path'); + if ($path) { + if (!is_dir($path)) { + $form_state->setErrorByName('path', $this->t('The path %path is not a directory.', ['%path' => $path])); + return; + } + $finder = new finder(); + // Only work with direct children. + $finder->depth('== 0'); + $finder->files()->in($path); + if (!$finder->hasResults()) { + $form_state->setErrorByName('path', $this->t('The path %path does not contain any files.', ['%path' => $path])); + } + } + } + + /** * {@inheritdoc} */ @@ -82,7 +104,13 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $path = $form_state->getValue('path'); $files = []; if ($path) { - + $finder = new finder(); + // Only work with direct children. + $finder->depth('== 0'); + $finder->files()->in($path); + foreach ($finder as $file) { + $files[$file->getfilename()] = $file->getContents(); + } } $message = $this->schemaPoster->postSchema($this->server->id(), $files); $method = $this->getMessageFunction($message[0]); From a035821b9ea77866f253d0e84ceabaadc8764688 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Wed, 29 Jun 2022 17:43:00 -0600 Subject: [PATCH 03/13] Fix coding standards. --- modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index 590d01be..a92cdfad 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -96,7 +96,6 @@ public function validateForm(array &$form, FormStateInterface $form_state) { } } - /** * {@inheritdoc} */ From 2036728b6ae55df878e5021608e48930b283c8b5 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Wed, 29 Jun 2022 17:54:07 -0600 Subject: [PATCH 04/13] Add path option to postSchema drush command. --- .../src/Form/PostSolrSchema.php | 4 +-- src/Commands/Schema.php | 30 +++++++++++++++---- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index a92cdfad..170c0c7c 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -86,7 +86,7 @@ public function validateForm(array &$form, FormStateInterface $form_state) { $form_state->setErrorByName('path', $this->t('The path %path is not a directory.', ['%path' => $path])); return; } - $finder = new finder(); + $finder = new Finder(); // Only work with direct children. $finder->depth('== 0'); $finder->files()->in($path); @@ -103,7 +103,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $path = $form_state->getValue('path'); $files = []; if ($path) { - $finder = new finder(); + $finder = new Finder(); // Only work with direct children. $finder->depth('== 0'); $finder->files()->in($path); diff --git a/src/Commands/Schema.php b/src/Commands/Schema.php index 353157dd..fb3fbd63 100644 --- a/src/Commands/Schema.php +++ b/src/Commands/Schema.php @@ -8,6 +8,7 @@ use Drupal\search_api_pantheon\Services\PantheonGuzzle; use Drupal\search_api_pantheon\Services\SchemaPoster; use Drush\Commands\DrushCommands; +use Symfony\Component\Finder\Finder; /** * Drush Search Api Pantheon Schema Commands. @@ -52,20 +53,39 @@ public function __construct( /** * Search_api_pantheon:postSchema. * - * @usage search_api_pantheon:postSchema {$server_id} + * @usage search-api-pantheon:postSchema [server_id] [path] * Post the latest schema to the given Server. * Default server ID = pantheon_solr8. + * Default path = empty (build files using search_api_solr mechanism). * - * @command search-api-pantheon:postSchema ${$server_id} + * @command search-api-pantheon:postSchema + * @param $server_id Server id to post schema for. + * @param $path Path to schema files (Leave empty to use default schema). * @aliases sapps */ - public function postSchema(?string $server_id = NULL) { - // @todo: Update to support arbitrary path. + public function postSchema(?string $server_id = NULL, ?string $path = NULL) { if (!$server_id) { $server_id = PantheonSolrConnector::getDefaultEndpoint(); } try { - $this->schemaPoster->postSchema($server_id); + $files = []; + if ($path) { + if (!is_dir($path)) { + throw new \Exception("Path '$path' is not a directory."); + } + $finder = new Finder(); + // Only work with direct children. + $finder->depth('== 0'); + $finder->files()->in($path); + if (!$finder->hasResults()) { + throw new \Exception("Path '$path' does not contain any files."); + } + foreach ($finder as $file) { + $files[$file->getfilename()] = $file->getContents(); + } + } + + $this->schemaPoster->postSchema($server_id, $files); } catch (\Exception $e) { $this->logger()->error((string) $e); From 66fa958eaf74de5682d9614f1618dea152f83cfd Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Wed, 29 Jun 2022 18:00:11 -0600 Subject: [PATCH 05/13] Fix coding standards. --- src/Commands/Schema.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Commands/Schema.php b/src/Commands/Schema.php index fb3fbd63..77c4ae8f 100644 --- a/src/Commands/Schema.php +++ b/src/Commands/Schema.php @@ -59,8 +59,12 @@ public function __construct( * Default path = empty (build files using search_api_solr mechanism). * * @command search-api-pantheon:postSchema - * @param $server_id Server id to post schema for. - * @param $path Path to schema files (Leave empty to use default schema). + * + * @param $server_id + * Server id to post schema for. + * @param $path + * Path to schema files (Leave empty to use default schema). + * * @aliases sapps */ public function postSchema(?string $server_id = NULL, ?string $path = NULL) { From 9d477965e997b6d71c38110c628b0e636c364bd5 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 30 Jun 2022 14:42:05 -0600 Subject: [PATCH 06/13] Add placeholder and prepare tests debugging. --- .github/workflows/ci.yml | 10 ++++++++++ RoboFile.php | 2 +- .../src/Form/PostSolrSchema.php | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53923c66..1fa11738 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,12 @@ on: repository_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + inputs: + tmate_enabled: + description: Enable tmate debugging + required: true + default: 0 jobs: linting: runs-on: ubuntu-latest @@ -79,6 +85,10 @@ jobs: - name: Composer install run: composer install --ignore-platform-req=php + - name: Setup tmate session + if: ${{ github.event.inputs.tmate_enabled == 1 }} + uses: mxschmitt/action-tmate@v3 + - name: Run tests run: | export TERMINUS_ORG=$TERMINUS_ORG diff --git a/RoboFile.php b/RoboFile.php index ea5d32d2..1474a616 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -212,7 +212,7 @@ public function waitForWorkflow(string $site_name, string $env = 'dev') { if ( $info['status'] !== 'succeeded' ) { $this->output()->write('Waiting for platform', true); exec( - "terminus build:workflow:wait --max=260 --progress-delay=5 $site_name.$env", + "terminus build:workflow:wait --max=260 $site_name.$env", $finished, $status ); diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index 170c0c7c..cc229a77 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -65,6 +65,9 @@ public function buildForm(array $form, FormStateInterface $form_state, ServerInt '#description' => $this->t('Path to the config files to post. This should be a directory containing the configuration files to post. Leave empty to use search_api_solr defaults.'), '#default_value' => '', '#required' => FALSE, + '#attributes' => [ + 'placeholder' => $this->t('Leave empty to use search_api_solr defaults.'), + ], ]; $form['actions'] = ['#type' => 'actions']; From ef8517e54e7c01a4ab29bc33b8de88856fbe8b28 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 30 Jun 2022 14:46:42 -0600 Subject: [PATCH 07/13] Force using tmate. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1fa11738..24d73b10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,7 +86,7 @@ jobs: run: composer install --ignore-platform-req=php - name: Setup tmate session - if: ${{ github.event.inputs.tmate_enabled == 1 }} + #if: ${{ github.event.inputs.tmate_enabled == 1 }} uses: mxschmitt/action-tmate@v3 - name: Run tests From d4399b504c5ba87bc1f63d980058b0c87bdf0b62 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 30 Jun 2022 15:17:38 -0600 Subject: [PATCH 08/13] Add testAllowPlugins function. --- .github/workflows/ci.yml | 4 ++-- RoboFile.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24d73b10..9709cc45 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,9 +85,9 @@ jobs: - name: Composer install run: composer install --ignore-platform-req=php - - name: Setup tmate session + #- name: Setup tmate session #if: ${{ github.event.inputs.tmate_enabled == 1 }} - uses: mxschmitt/action-tmate@v3 + # uses: mxschmitt/action-tmate@v3 - name: Run tests run: | diff --git a/RoboFile.php b/RoboFile.php index 1474a616..4ddf22e2 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -80,6 +80,7 @@ public function testFull(int $drupal_version = 9, string $site_name = NULL) { $this->testCreateSite($site_name, $options); $this->testConnectionGit($site_name, 'dev', 'git'); $this->testCloneSite($site_name); + $this->testAllowPlugins($site_name); // If received Drupal 8, downgrade the recently created site to Drupal 8. if ($drupal_version === 8) { @@ -302,6 +303,34 @@ public function testCloneSite(string $site_name) { return ResultData::EXITCODE_OK; } + /** + * Add allow plugins section to composer. + * + * @param string $site_name + * The machine name of the site to add the allow plugins section to. + */ + public function testAllowPlugins(string $site_name) { + $site_folder = $this->getSiteFolder($site_name); + chdir($site_folder); + $plugins = [ + 'composer/installers', + 'zaporylie/composer-drupal-optimizations', + 'drupal/core-composer-scaffold', + 'cweagans/composer-patches', + ]; + + foreach ($plugins as $plugin_name) { + $this->taskExec('composer') + ->args( + 'config', + '--no-interaction', + 'allow-plugins.' . $plugin_name, + 'true' + ) + ->run(); + } + } + /** * Downgrade given site to Drupal 8. * From 448c9d716d06475cccab44b49653492d1e7c6701 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 30 Jun 2022 15:44:28 -0600 Subject: [PATCH 09/13] Uncomment tmate lines [skip ci]. --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9709cc45..1fa11738 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,9 +85,9 @@ jobs: - name: Composer install run: composer install --ignore-platform-req=php - #- name: Setup tmate session - #if: ${{ github.event.inputs.tmate_enabled == 1 }} - # uses: mxschmitt/action-tmate@v3 + - name: Setup tmate session + if: ${{ github.event.inputs.tmate_enabled == 1 }} + uses: mxschmitt/action-tmate@v3 - name: Run tests run: | From ab9bef105df8b4a4f918f89ec68418b3a618cdbd Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Mon, 11 Jul 2022 17:04:18 -0600 Subject: [PATCH 10/13] Address code review feedback. --- RoboFile.php | 3 +-- .../search_api_pantheon_admin/src/Form/PostSolrSchema.php | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/RoboFile.php b/RoboFile.php index 4ddf22e2..a20c14f2 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -180,7 +180,7 @@ public function testCreateSite(string $site_name, array $options = ['org' => NUL if (empty($site_info)) { $home = $_SERVER['HOME']; $toReturn = $this->taskExec(static::$TERMINUS_EXE) - ->args('site:create', $site_name, $site_name, 'drupal9'); + ->args('site:create', $site_name, $site_name, 'drupal-composer-managed'); if ( !empty( $options['org'] ) ) { $toReturn->option('org', $options['org']); } @@ -314,7 +314,6 @@ public function testAllowPlugins(string $site_name) { chdir($site_folder); $plugins = [ 'composer/installers', - 'zaporylie/composer-drupal-optimizations', 'drupal/core-composer-scaffold', 'cweagans/composer-patches', ]; diff --git a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php index cc229a77..99e21f65 100644 --- a/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php +++ b/modules/search_api_pantheon_admin/src/Form/PostSolrSchema.php @@ -130,10 +130,9 @@ protected function getMessageFunction(string $type) { if (isset($functions[$type])) { return $functions[$type]; } - else { - $this->messenger()->addWarning(t('Unknown message type: @type', ['@type' => $message[0]])); - return 'addStatus'; - } + + $this->messenger()->addWarning(t('Unknown message type: @type', ['@type' => $message[0]])); + return 'addStatus'; } } From 9d085d33e7b2259d05f65d1dba4fe3a99a245bdb Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Mon, 11 Jul 2022 17:23:38 -0600 Subject: [PATCH 11/13] Do not cleanup sites to debug build issues. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1fa11738..711a8d98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: export TERMINUS_ORG=$TERMINUS_ORG ./vendor/bin/robo test:full $DRUPAL_VERSION $TERMINUS_SITE - - name: Cleanup sites - if: ${{ always() }} - run: | - ./vendor/bin/robo test:delete-sites + #- name: Cleanup sites + # if: ${{ always() }} + # run: | + # ./vendor/bin/robo test:delete-sites From f8d0837f508a8b55fe994a295b67a1796d372e1d Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Mon, 11 Jul 2022 17:47:10 -0600 Subject: [PATCH 12/13] Rollback upstream change. --- RoboFile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RoboFile.php b/RoboFile.php index a20c14f2..e0cdcc64 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -180,7 +180,7 @@ public function testCreateSite(string $site_name, array $options = ['org' => NUL if (empty($site_info)) { $home = $_SERVER['HOME']; $toReturn = $this->taskExec(static::$TERMINUS_EXE) - ->args('site:create', $site_name, $site_name, 'drupal-composer-managed'); + ->args('site:create', $site_name, $site_name, 'drupal9'); if ( !empty( $options['org'] ) ) { $toReturn->option('org', $options['org']); } From 6b1d68103f315613bdab999f11f3912ec8224f81 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Mon, 11 Jul 2022 17:50:18 -0600 Subject: [PATCH 13/13] Re-add sites cleanup. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 711a8d98..1fa11738 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: export TERMINUS_ORG=$TERMINUS_ORG ./vendor/bin/robo test:full $DRUPAL_VERSION $TERMINUS_SITE - #- name: Cleanup sites - # if: ${{ always() }} - # run: | - # ./vendor/bin/robo test:delete-sites + - name: Cleanup sites + if: ${{ always() }} + run: | + ./vendor/bin/robo test:delete-sites