From 7aca1ecdab3adfadf532e13ebdea596bfc3c56ee Mon Sep 17 00:00:00 2001 From: dkinzer Date: Wed, 22 Jun 2016 18:57:01 -0400 Subject: [PATCH] LKY back ports. Allows for better control of deployments. REF CIVIC-2795. --- assets/drush/aliases.local.php | 7 ++++ circle.yml | 9 +++-- hooks/common/post-code-deploy/deploy.sh | 35 +++++++++++++++++ .../post-code-update/drush-env-switch.sh | 12 +++--- nucivic-ahoy/ci.ahoy.yml | 38 +++++++++---------- nucivic-ahoy/site.ahoy.yml | 4 +- 6 files changed, 76 insertions(+), 29 deletions(-) create mode 100644 assets/drush/aliases.local.php create mode 100755 hooks/common/post-code-deploy/deploy.sh diff --git a/assets/drush/aliases.local.php b/assets/drush/aliases.local.php new file mode 100644 index 000000000..8644d4c56 --- /dev/null +++ b/assets/drush/aliases.local.php @@ -0,0 +1,7 @@ + 'dkan', + 'webroot' => 'docroot', + '#name' => 'datastarter', +); diff --git a/circle.yml b/circle.yml index 79bb0ef2f..6ebde594b 100644 --- a/circle.yml +++ b/circle.yml @@ -47,8 +47,11 @@ dependencies: - bash dkan/dkan-init.sh dkan --deps-only - cd tests; composer install; cd .. - ahoy site setup --db-user=ubuntu --db-pass='' --db-host=127.0.0.1 --db-port=3306 --db-name=circle_test + - drush cc drush + - drush dl -n registry_rebuild-7.x-2.3 - ahoy ci setup - - ahoy drush dl -y registry_rebuild + - ahoy ci deploy + - ahoy site fail-when-bad-disable # Run a webserver using drush. - 'ahoy drush --yes runserver :8888': background: true @@ -68,8 +71,8 @@ dependencies: ## Customize test commands test: override: - - 'bash dkan/test/circle-behat.sh docroot/profiles/dkan/test/features': - parallel: true + - 'bash dkan/test/circle-behat.sh docroot/profiles/dkan/test/features': + parallel: true - 'ahoy site test features/general.feature': parallel: true post: diff --git a/hooks/common/post-code-deploy/deploy.sh b/hooks/common/post-code-deploy/deploy.sh new file mode 100755 index 000000000..0e9a68235 --- /dev/null +++ b/hooks/common/post-code-deploy/deploy.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Cloud Hook: drush-env-switch +# + +site=$1 +env=$2 +drush_alias=$site'.'$env +target_env=$env + +echo "Target environment is $target_env" + +echo "Run pre deploy steps..." +(drush @$drush_alias cc all && drush @$drush_alias rr) || (drush @$drush_alias updb -y 2>/dev/null && drush @$drush_alias rr) + +echo "Checking drupal boostrap." +drupal=$(drush @$drush_alias status | grep -e "Drupal bootstrap" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') + +if [[ "$drupal" =~ "Successful" ]]; then + echo "Installation detected, running deploy script" + drush @$drush_alias -y fr --force custom_config + drush @$drush_alias env-switch $target_env --force + drush @$drush_alias -y updb + DB_BASED_SEARCH=`drush @$drush_alias pmi dkan_acquia_search_solr | grep disabled` + if [ -z "$DB_BASED_SEARCH" ]; then + echo "SOLR Search, avoiding indexing data" + else + echo "DB Search, indexing data" + drush @$drush_alias search-api-index datasets + drush @$drush_alias search-api-index groups_di + drush @$drush_alias search-api-index stories_index + fi +else + echo "Installation not detected" +fi diff --git a/hooks/common/post-code-update/drush-env-switch.sh b/hooks/common/post-code-update/drush-env-switch.sh index c59554080..0e9a68235 100755 --- a/hooks/common/post-code-update/drush-env-switch.sh +++ b/hooks/common/post-code-update/drush-env-switch.sh @@ -6,16 +6,18 @@ site=$1 env=$2 drush_alias=$site'.'$env -target_env=`drush @$drush_alias php-eval "echo ENVIRONMENT;"` +target_env=$env -drush @$drush_alias -y updb +echo "Target environment is $target_env" +echo "Run pre deploy steps..." +(drush @$drush_alias cc all && drush @$drush_alias rr) || (drush @$drush_alias updb -y 2>/dev/null && drush @$drush_alias rr) + +echo "Checking drupal boostrap." drupal=$(drush @$drush_alias status | grep -e "Drupal bootstrap" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') if [[ "$drupal" =~ "Successful" ]]; then echo "Installation detected, running deploy script" - drush @$drush_alias rr - drush @$drush_alias cc drush drush @$drush_alias -y fr --force custom_config drush @$drush_alias env-switch $target_env --force drush @$drush_alias -y updb @@ -23,10 +25,10 @@ if [[ "$drupal" =~ "Successful" ]]; then if [ -z "$DB_BASED_SEARCH" ]; then echo "SOLR Search, avoiding indexing data" else + echo "DB Search, indexing data" drush @$drush_alias search-api-index datasets drush @$drush_alias search-api-index groups_di drush @$drush_alias search-api-index stories_index - echo "DB Search, indexing data" fi else echo "Installation not detected" diff --git a/nucivic-ahoy/ci.ahoy.yml b/nucivic-ahoy/ci.ahoy.yml index cf648e898..47012e651 100644 --- a/nucivic-ahoy/ci.ahoy.yml +++ b/nucivic-ahoy/ci.ahoy.yml @@ -4,21 +4,33 @@ commands: setup: usage: switchs between ci setups cmd: | - if [ -s assets/drush/aliases.local.php ]; then + name=$(ahoy site name) + + if [ "$name" = 'datastarter' ]; then + echo "Site name datastarter. Going with DKAN base install" + ahoy site reinstall + else echo "Site name set. Pulling database from s3 bucket" ahoy site s3-setup ahoy site asset-download ahoy site files-link ahoy site files-fix-permissions ahoy drush sql-cli < backups/sanitized.sql - else - echo "Site name not set. Going with DKAN base install" - ahoy site reinstall fi deploy: usage: deploys within a ci setup cmd: | + name=$(ahoy site name) + + if [ "$name" = 'datastarter' ]; then + echo "Skipping deployment step for base data_starter site." + exit + fi + + ahoy site truncate-watchdog + ahoy drush cc drush + ahoy drush rr echo "DELETE FROM search_api_index where server = 'dkan_acquia_solr';" > delete.sql echo "DELETE FROM search_api_index where server = 'local_solr_server';" >> delete.sql echo "DELETE FROM search_api_server where machine_name = 'dkan_acquia_solr';" >> delete.sql @@ -26,18 +38,6 @@ commands: echo "DELETE FROM search_api_index where server IS NULL;" >> delete.sql ahoy drush sqlc < delete.sql rm delete.sql - ahoy drush rr - ahoy drush updatedb -y - ahoy site truncate-watchdog - ahoy cmd-proxy drush cc drush - ahoy drush env-switch local --force - ahoy drush -y fr --force custom_config - ahoy drush env-switch local --force - ahoy cmd-proxy drush cc drush - ahoy drush -y fr --force dkan_sitewide_search_db; - ahoy drush -y fr --force visualization_entity_charts_dkan; - ahoy drush rr - ahoy cmd-proxy drush cc drush - ahoy drush search-api-index datasets - ahoy drush search-api-index groups_di - ahoy drush search-api-index stories_index + name=$(ahoy site name) + ahoy cmd-proxy bash hooks/common/post-code-deploy/deploy.sh $name local + ahoy drush user-password 1 --password='SuperSecret!321' diff --git a/nucivic-ahoy/site.ahoy.yml b/nucivic-ahoy/site.ahoy.yml index 393fe0dde..3b434d6ab 100644 --- a/nucivic-ahoy/site.ahoy.yml +++ b/nucivic-ahoy/site.ahoy.yml @@ -397,7 +397,7 @@ commands: cd data_starter_private git checkout {{args}} cd .. - rsync -av data_starter_private/assets/sites/default/ assets/sites/default/ + rsync -av --exclude 'data_starter_private/assets/sites/default/settings.nucivic.php' data_starter_private/assets/sites/default/ assets/sites/default/ rsync -av data_starter_private/build-dkan.make build-dkan.make rsync -av data_starter_private/build.make build.make rsync -av data_starter_private/circle.yml circle.yml @@ -405,7 +405,7 @@ commands: cp -r data_starter_private/dkan dkan rsync -av data_starter_private/docroot/sites/all/modules/contrib/ docroot/sites/all/modules/contrib/ rsync -av data_starter_private/hooks/ hooks/ - rsync -av data_starter_private/projects/ projects/ + rsync -av --exclude 'data_starter_private/projects/modules/custom' data_starter_private/projects/ projects/ rsync -av data_starter_private/run-tests.sh run-tests.sh rsync -av data_starter_private/.probo.yml .probo.yml rsync -av data_starter_private/OWNERS.md OWNERS.md