diff --git a/scripts/installer/installer b/scripts/installer/installer index 01605942..8b8ee5ec 100755 --- a/scripts/installer/installer +++ b/scripts/installer/installer @@ -2,7 +2,7 @@ ABRA_VERSION="0.8.1-beta" ABRA_RELEASE_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$ABRA_VERSION" -RC_VERSION="0.8.1-beta" +RC_VERSION="0.8.0-rc1-beta" RC_VERSION_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$RC_VERSION" for arg in "$@"; do diff --git a/tests/integration/app_check.bats b/tests/integration/app_check.bats index 2ea628c9..e296e3cb 100644 --- a/tests/integration/app_check.bats +++ b/tests/integration/app_check.bats @@ -70,13 +70,13 @@ setup(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA app check "$TEST_APP_DOMAIN" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _reset_recipe } @@ -86,7 +86,7 @@ setup(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 1' + assert_output --partial "Your branch is behind 'origin/main' by 1 commit" # NOTE(d1): we can't quite tell if this will fail or not in the future, so, # since it isn't an important part of what we're testing here, we don't check @@ -94,7 +94,7 @@ setup(){ run $ABRA app check "$TEST_APP_DOMAIN" --offline run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 1' + assert_output --partial "Your branch is behind 'origin/main' by 1 commit" _reset_recipe } diff --git a/tests/integration/app_cmd.bats b/tests/integration/app_cmd.bats index db2808ba..fd5e6695 100644 --- a/tests/integration/app_cmd.bats +++ b/tests/integration/app_cmd.bats @@ -58,7 +58,7 @@ test_cmd_export" assert_success assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE" - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd assert_success assert_output --partial 'baz' @@ -70,7 +70,7 @@ test_cmd_export" assert_success assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd assert_failure assert_output --partial 'locally unstaged changes' @@ -83,7 +83,7 @@ test_cmd_export" assert_success assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --chaos + run $ABRA app cmd --local --chaos "$TEST_APP_DOMAIN" test_cmd assert_success assert_output --partial 'baz' @@ -96,14 +96,14 @@ test_cmd_export" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd assert_success assert_output --partial 'baz' run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --partial "up to date" _reset_recipe "$TEST_RECIPE" } @@ -113,14 +113,14 @@ test_cmd_export" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --offline + run $ABRA app cmd --local --offline "$TEST_APP_DOMAIN" test_cmd assert_success assert_output --partial 'baz' run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _reset_recipe "$TEST_RECIPE" } @@ -132,13 +132,13 @@ test_cmd_export" } @test "error if missing arguments when passing --local" { - run $ABRA app cmd "$TEST_APP_DOMAIN" --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" assert_failure assert_output --partial 'missing arguments' } @test "cannot use --local and --user at same time" { - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --user root + run $ABRA app cmd --local --user root "$TEST_APP_DOMAIN" test_cmd assert_failure assert_output --partial 'cannot use --local & --user together' } @@ -147,7 +147,7 @@ test_cmd_export" run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/abra.sh" assert_success - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --chaos + run $ABRA app cmd --local --chaos "$TEST_APP_DOMAIN" test_cmd assert_failure assert_output --partial "$ABRA_DIR/recipes/$TEST_RECIPE/abra.sh does not exist" @@ -155,25 +155,25 @@ test_cmd_export" } @test "error if missing command" { - run $ABRA app cmd "$TEST_APP_DOMAIN" doesnt_exist --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" doesnt_exist assert_failure assert_output --partial "doesn't have a doesnt_exist function" } @test "run --local command" { - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd assert_success assert_output --partial 'baz' } @test "run command with single arg" { - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd_arg --local -- bing + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd_arg -- bing assert_success assert_output --partial 'bing' } @test "run command with several args" { - run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd_args --local -- bong bang + run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd_args -- bong bang assert_success assert_output --partial 'bong bang' } diff --git a/tests/integration/app_deploy.bats b/tests/integration/app_deploy.bats index 5747ce6e..0df25675 100644 --- a/tests/integration/app_deploy.bats +++ b/tests/integration/app_deploy.bats @@ -16,6 +16,7 @@ teardown_file(){ setup(){ load "$PWD/tests/integration/helpers/common" _common_setup + _reset_recipe } teardown(){ @@ -82,13 +83,13 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA app deploy "$TEST_APP_DOMAIN" --no-input --no-converge-checks assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + refute_output --regexp 'behind .* 3 commits' _reset_recipe _undeploy_app @@ -100,7 +101,7 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' # NOTE(d1): need to use --chaos to force same commit run $ABRA app deploy "$TEST_APP_DOMAIN" \ @@ -108,7 +109,7 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _undeploy_app _reset_recipe @@ -116,6 +117,9 @@ teardown(){ # bats test_tags=slow @test "deploy latest commit if no published versions and no --chaos" { + # TODO(d1): fix with a new test recipe which has no published versions? + skip "known issue, abra-test-recipe has published versions now" + latestCommit="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)" _remove_tags @@ -140,7 +144,7 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' threeCommitsBack="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)" @@ -273,6 +277,10 @@ teardown(){ } @test "ensure domain is checked" { + if [[ "$TEST_SERVER" == "default" ]]; then + skip "domain checks are disabled for local server" + fi + appDomain="custom-html.DOESNTEXIST" run $ABRA app new custom-html \ diff --git a/tests/integration/app_new.bats b/tests/integration/app_new.bats index 885e02cd..457ee152 100644 --- a/tests/integration/app_new.bats +++ b/tests/integration/app_new.bats @@ -45,7 +45,7 @@ teardown(){ assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial "Your branch is up to date with 'origin/main'." + assert_output --partial "up to date" } @test "create new app with version" { @@ -121,7 +121,7 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded." + assert_output --regexp 'behind .* 3 commits' run $ABRA app new "$TEST_RECIPE" \ --no-input \ @@ -131,7 +131,7 @@ teardown(){ assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial "Your branch is up to date with 'origin/main'." + assert_output --partial "up to date" _reset_recipe } @@ -141,7 +141,7 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded." + assert_output --regexp 'behind .* 3 commits' # NOTE(d1): need to use --chaos to force same commit run $ABRA app new "$TEST_RECIPE" \ @@ -154,7 +154,7 @@ teardown(){ assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded." + assert_output --regexp 'behind .* 3 commits' _reset_recipe } diff --git a/tests/integration/app_remove.bats b/tests/integration/app_remove.bats index 8800e70a..4cf6f07a 100644 --- a/tests/integration/app_remove.bats +++ b/tests/integration/app_remove.bats @@ -104,7 +104,10 @@ teardown(){ _undeploy_app - run $ABRA app volume rm "$TEST_APP_DOMAIN" + # TODO: should wait as long as volume is no longer in use + sleep 10 + + run $ABRA app volume rm "$TEST_APP_DOMAIN" --no-input assert_success run $ABRA app volume ls "$TEST_APP_DOMAIN" diff --git a/tests/integration/app_restore.bats b/tests/integration/app_restore.bats index 77a63f63..f2cf52e8 100644 --- a/tests/integration/app_restore.bats +++ b/tests/integration/app_restore.bats @@ -109,13 +109,13 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' - run $ABRA app restore "$TEST_APP_DOMAIN" app DOESNTEXIST + run $ABRA app restore "$TEST_APP_DOMAIN" app assert_failure run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --partial "up to date" } @test "ensure recipe not up to date if --offline" { @@ -126,19 +126,19 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' - run $ABRA app restore "$TEST_APP_DOMAIN" app DOESNTEXIST --offline + run $ABRA app restore "$TEST_APP_DOMAIN" app --offline assert_failure run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$latestCommit" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --partial "HEAD detached at $latestCommit" } @test "error if missing service" { diff --git a/tests/integration/app_rollback.bats b/tests/integration/app_rollback.bats index 0439b94f..b8200bbb 100644 --- a/tests/integration/app_rollback.bats +++ b/tests/integration/app_rollback.bats @@ -50,13 +50,13 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA app rollback "$TEST_APP_DOMAIN" --no-input --no-converge-checks assert_failure run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --partial "up to date" } @test "ensure recipe not up to date if --offline" { @@ -67,14 +67,14 @@ teardown(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA app rollback "$TEST_APP_DOMAIN" \ --no-input --no-converge-checks --offline assert_failure run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$latestCommit" assert_success @@ -131,7 +131,7 @@ teardown(){ latestCommit="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)" run $ABRA app deploy "$TEST_APP_DOMAIN" \ - --no-input --no-converge-checks --chaos + --no-input --chaos assert_success assert_output --partial "$latestCommit" assert_output --partial 'chaos' diff --git a/tests/integration/app_secret.bats b/tests/integration/app_secret.bats index 3d15e959..b745a939 100644 --- a/tests/integration/app_secret.bats +++ b/tests/integration/app_secret.bats @@ -8,7 +8,7 @@ setup_file(){ run $ABRA app new "$TEST_RECIPE" \ --no-input \ --server "$TEST_SERVER" \ - --domain "$TEST_APP_DOMAIN" \ + --domain "$TEST_APP_DOMAIN" assert_success assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" } @@ -19,13 +19,6 @@ teardown_file(){ _reset_recipe } -teardown(){ - # https://github.com/bats-core/bats-core/issues/383#issuecomment-738628888 - if [[ -z "${BATS_TEST_COMPLETED}" ]]; then - _undeploy_app - fi -} - setup(){ load "$PWD/tests/integration/helpers/common" _common_setup diff --git a/tests/integration/app_version.bats b/tests/integration/app_version.bats index 2a6d6319..b11f58ef 100644 --- a/tests/integration/app_version.bats +++ b/tests/integration/app_version.bats @@ -59,6 +59,8 @@ teardown(){ # bats test_tags=slow @test "error if not in catalogue" { + skip "known issue, see https://git.coopcloud.tech/coop-cloud/recipes-catalogue-json/issues/6" + _deploy_app run $ABRA app version "$TEST_APP_DOMAIN" @@ -92,7 +94,7 @@ teardown(){ assert_success # NOTE(d1): to let the stack come down before nuking volumes - sleep 3 + sleep 5 run $ABRA app volume remove "$appDomain" --no-input assert_success diff --git a/tests/integration/app_volume.bats b/tests/integration/app_volume.bats index 5b4ff600..99acc6c9 100644 --- a/tests/integration/app_volume.bats +++ b/tests/integration/app_volume.bats @@ -79,7 +79,7 @@ teardown(){ _undeploy_app # NOTE(d1): to let the stack come down before nuking volumes - sleep 5 + sleep 10 run $ABRA app volume rm "$TEST_APP_DOMAIN" --force assert_success @@ -93,7 +93,7 @@ teardown(){ _undeploy_app # NOTE(d1): to let the stack come down before nuking volumes - sleep 5 + sleep 10 run $ABRA app volume rm "$TEST_APP_DOMAIN" --force assert_success diff --git a/tests/integration/helpers/app.bash b/tests/integration/helpers/app.bash index ee3e30f6..32208b84 100644 --- a/tests/integration/helpers/app.bash +++ b/tests/integration/helpers/app.bash @@ -49,7 +49,7 @@ _reset_app(){ run $ABRA app new "$TEST_RECIPE" \ --no-input \ --server "$TEST_SERVER" \ - --domain "$TEST_APP_DOMAIN" \ + --domain "$TEST_APP_DOMAIN" assert_success assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" } diff --git a/tests/integration/helpers/server.bash b/tests/integration/helpers/server.bash index 3c6c74d7..e3bcb320 100644 --- a/tests/integration/helpers/server.bash +++ b/tests/integration/helpers/server.bash @@ -11,7 +11,11 @@ _add_server() { } _rm_server() { - run $ABRA server remove --no-input "$TEST_SERVER" + if [[ "$TEST_SERVER" == "default" ]]; then + run rm -rf "$ABRA_DIR/servers/default" + else + run $ABRA server remove --no-input "$TEST_SERVER" + fi assert_success assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER" } diff --git a/tests/integration/recipe_lint.bats b/tests/integration/recipe_lint.bats index 0b2617b4..401ab8fd 100644 --- a/tests/integration/recipe_lint.bats +++ b/tests/integration/recipe_lint.bats @@ -66,13 +66,13 @@ setup() { assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA recipe lint "$TEST_RECIPE" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _reset_recipe } @@ -82,13 +82,13 @@ setup() { assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA recipe lint "$TEST_RECIPE" --offline assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _reset_recipe } diff --git a/tests/integration/recipe_upgrade.bats b/tests/integration/recipe_upgrade.bats index 183d1f22..a36efe26 100644 --- a/tests/integration/recipe_upgrade.bats +++ b/tests/integration/recipe_upgrade.bats @@ -61,14 +61,14 @@ setup(){ assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - assert_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' run $ABRA recipe upgrade "$TEST_RECIPE" --no-input assert_success assert_output --partial 'can upgrade service: app' run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status - refute_output --partial 'behind 3' + assert_output --regexp 'behind .* 3 commits' _reset_recipe } diff --git a/tests/integration/recipe_version.bats b/tests/integration/recipe_version.bats index 42d2e4d0..ebc5bad9 100644 --- a/tests/integration/recipe_version.bats +++ b/tests/integration/recipe_version.bats @@ -12,6 +12,8 @@ setup() { } @test "error if not present in catalogue" { + skip "known issue, see https://git.coopcloud.tech/coop-cloud/recipes-catalogue-json/issues/6" + run $ABRA recipe versions "$TEST_RECIPE" assert_failure assert_output --partial "is not published on the catalogue"