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.workflow.bash b/.scaffold/tests/bats/_helper.workflow.bash index 1d61b197f..5c9fee4e9 100644 --- a/.scaffold/tests/bats/_helper.workflow.bash +++ b/.scaffold/tests/bats/_helper.workflow.bash @@ -99,6 +99,16 @@ 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}" + if [ "${SCAFFOLD_DEV_VOLUMES_MOUNTED}" != "1" ]; then + # 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 + fi + 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..7434cadd0 100644 --- a/.scaffold/tests/bats/workflow.smoke.bats +++ b/.scaffold/tests/bats/workflow.smoke.bats @@ -66,10 +66,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