From e04e125681e62c92695fc90917b43a23ca5c4beb Mon Sep 17 00:00:00 2001 From: Alex Skrypnyk Date: Thu, 25 Apr 2024 10:46:49 +1000 Subject: [PATCH 1/4] [#1279] Remove DB copy from `ahoy provision`. --- .ahoy.yml | 7 +------ .scaffold/tests/bats/_helper.bash | 12 ++++++++++++ .scaffold/tests/bats/_helper.deployment.bash | 1 + .scaffold/tests/bats/_helper.workflow.bash | 1 + .scaffold/tests/bats/workflow.smoke.bats | 14 +++++++++++--- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/.ahoy.yml b/.ahoy.yml index 271a13373..ddf4d96c6 100644 --- a/.ahoy.yml +++ b/.ahoy.yml @@ -144,12 +144,7 @@ commands: provision: usage: Provision a site from the database dump or profile. - cmd: | - if [ -f .data/db.sql ]; then - docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql - fi - ahoy cli ./scripts/drevops/provision.sh + cmd: ahoy cli ./scripts/drevops/provision.sh export-db: usage: Export database dump or database image (if DREVOPS_DB_DOCKER_IMAGE variable is set). diff --git a/.scaffold/tests/bats/_helper.bash b/.scaffold/tests/bats/_helper.bash index a3bc513eb..4dd0c7f00 100644 --- a/.scaffold/tests/bats/_helper.bash +++ b/.scaffold/tests/bats/_helper.bash @@ -1334,3 +1334,15 @@ download_installer() { popd >/dev/null || exit 1 } + +process_ahoyyml() { + [ "${SCAFFOLD_DEV_VOLUMES_MOUNTED}" = "1" ] && return + + # Override the provision command in .ahoy.yml to copy the database file to + # the container for when the volumes are not mounted. + # We are doing this only to replicate developer's workflow and experience + # when they run `ahoy build` locally. + local sed_opts + sed_opts=(-i) && [ "$(uname)" = "Darwin" ] && sed_opts=(-i '') + sed "${sed_opts[@]}" 's|cmd: ahoy cli ./scripts/drevops/provision.sh|cmd: if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data; docker compose cp -L .data/db.sql cli:/app/.data/db.sql; fi; ahoy cli \.\/scripts\/drevops\/provision\.sh|g' .ahoy.yml +} diff --git a/.scaffold/tests/bats/_helper.deployment.bash b/.scaffold/tests/bats/_helper.deployment.bash index 9e725e0c5..bd8cd5190 100644 --- a/.scaffold/tests/bats/_helper.deployment.bash +++ b/.scaffold/tests/bats/_helper.deployment.bash @@ -140,6 +140,7 @@ install_and_build_site() { export DREVOPS_PROVISION_POST_OPERATIONS_SKIP=1 + process_ahoyyml ahoy build sync_to_host fi diff --git a/.scaffold/tests/bats/_helper.workflow.bash b/.scaffold/tests/bats/_helper.workflow.bash index 1d61b197f..8cf28fe1f 100644 --- a/.scaffold/tests/bats/_helper.workflow.bash +++ b/.scaffold/tests/bats/_helper.workflow.bash @@ -99,6 +99,7 @@ assert_ahoy_build() { export DOCKER_USER="${TEST_DOCKER_USER?Test Docker user is not set}" export DOCKER_PASS="${TEST_DOCKER_PASS?Test Docker pass is not set}" + process_ahoyyml run ahoy build run sync_to_host diff --git a/.scaffold/tests/bats/workflow.smoke.bats b/.scaffold/tests/bats/workflow.smoke.bats index 671d69abc..5fa9a95a1 100644 --- a/.scaffold/tests/bats/workflow.smoke.bats +++ b/.scaffold/tests/bats/workflow.smoke.bats @@ -41,11 +41,13 @@ load _helper.workflow.bash step "Build without a GITHUB_TOKEN token" unset GITHUB_TOKEN + process_ahoyyml run ahoy build assert_failure step "Build with a GITHUB_TOKEN token" export GITHUB_TOKEN="${TEST_GITHUB_TOKEN}" + process_ahoyyml run ahoy build assert_success } @@ -66,10 +68,16 @@ load _helper.workflow.bash docker compose exec -T cli composer install --prefer-dist >&3 substep "Provisioning" - if [ -f .data/db.sql ]; then - docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + + # Copy DB into container for the cases when the volumes are not mounted. + # This will not be a case locally. + if [ "${SCAFFOLD_DEV_VOLUMES_MOUNTED}" != "1" ]; then + if [ -f .data/db.sql ]; then + docker compose exec cli mkdir -p .data + docker compose cp -L .data/db.sql cli:/app/.data/db.sql + fi fi + docker compose exec -T cli ./scripts/drevops/provision.sh >&3 sync_to_host From 9e7959d8a2fc11a8bd32ca3c044d016efd05f5b3 Mon Sep 17 00:00:00 2001 From: Alex Skrypnyk Date: Thu, 25 Apr 2024 11:47:32 +1000 Subject: [PATCH 2/4] Debug --- .scaffold/tests/bats/_helper.bash | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.scaffold/tests/bats/_helper.bash b/.scaffold/tests/bats/_helper.bash index 4dd0c7f00..1beab318e 100644 --- a/.scaffold/tests/bats/_helper.bash +++ b/.scaffold/tests/bats/_helper.bash @@ -1345,4 +1345,6 @@ process_ahoyyml() { local sed_opts sed_opts=(-i) && [ "$(uname)" = "Darwin" ] && sed_opts=(-i '') sed "${sed_opts[@]}" 's|cmd: ahoy cli ./scripts/drevops/provision.sh|cmd: if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data; docker compose cp -L .data/db.sql cli:/app/.data/db.sql; fi; ahoy cli \.\/scripts\/drevops\/provision\.sh|g' .ahoy.yml + + cat .ahoy.yml >&3 } From 3d5bab529522b20a9153a341fe20a89e16a20fe1 Mon Sep 17 00:00:00 2001 From: Alex Skrypnyk Date: Thu, 25 Apr 2024 13:15:15 +1000 Subject: [PATCH 3/4] Optimise lines in CI. --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8691ac869..2ff239392 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -295,8 +295,7 @@ jobs: - run: name: Process test logs and artifacts command: | - mkdir -p "${DREVOPS_CI_TEST_RESULTS}" - mkdir -p "${DREVOPS_CI_ARTIFACTS}" + mkdir -p "${DREVOPS_CI_TEST_RESULTS}" "${DREVOPS_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then docker compose cp cli:/app/.logs/. "${DREVOPS_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then From 603f78df1e8d41a6b6e22f7f9e113f98871ef6ed Mon Sep 17 00:00:00 2001 From: Alex Skrypnyk Date: Thu, 25 Apr 2024 16:27:35 +1000 Subject: [PATCH 4/4] Revert "Debug" This reverts commit 9e7959d8a2fc11a8bd32ca3c044d016efd05f5b3. --- .scaffold/tests/bats/_helper.bash | 2 -- 1 file changed, 2 deletions(-) diff --git a/.scaffold/tests/bats/_helper.bash b/.scaffold/tests/bats/_helper.bash index 1beab318e..4dd0c7f00 100644 --- a/.scaffold/tests/bats/_helper.bash +++ b/.scaffold/tests/bats/_helper.bash @@ -1345,6 +1345,4 @@ process_ahoyyml() { local sed_opts sed_opts=(-i) && [ "$(uname)" = "Darwin" ] && sed_opts=(-i '') sed "${sed_opts[@]}" 's|cmd: ahoy cli ./scripts/drevops/provision.sh|cmd: if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data; docker compose cp -L .data/db.sql cli:/app/.data/db.sql; fi; ahoy cli \.\/scripts\/drevops\/provision\.sh|g' .ahoy.yml - - cat .ahoy.yml >&3 }