mirror of
https://github.com/dokku/dokku.git
synced 2026-02-24 04:00:36 +01:00
fix: correct warning placement and update tests to account for parallel's behavior
This commit is contained in:
@@ -47,9 +47,6 @@ fn-scheduler-deploy-process() {
|
||||
fi
|
||||
fi
|
||||
|
||||
PARALLEL_DEPLOY_COUNT="$(plugn trigger "app-json-process-deploy-parallelism" "$APP" "$PROC_TYPE")"
|
||||
DOKKU_CHECKS_DISABLED="$DOKKU_CHECKS_DISABLED" INJECT_INIT_FLAG="$INJECT_INIT_FLAG" parallel --will-cite --halt soon,fail=1 --jobs "$PARALLEL_DEPLOY_COUNT" --ungroup <"$PROCESS_TMP_FILE"
|
||||
|
||||
local DOCKER_ARGS
|
||||
DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP" "$IMAGE_TAG" "$PROC_TYPE")
|
||||
DOCKER_ARGS+=$(: | plugn trigger docker-args-process-deploy "$APP" "$IMAGE_SOURCE_TYPE" "$IMAGE_TAG" "$PROC_TYPE")
|
||||
@@ -59,22 +56,27 @@ fn-scheduler-deploy-process() {
|
||||
|
||||
local port_published=false
|
||||
for arg in "${ARG_ARRAY[@]}"; do
|
||||
if [[ "$arg" == "-p" ]] || [[ "$arg" == "--publish" ]] || [[ "$arg" == "-P" ]] || [[ "$arg" == "--publish-all" ]]; then
|
||||
if [[ "$arg" == "-p "* ]] || [[ "$arg" =~ "--publish "* ]] || [[ "$arg" == "-P" ]] || [[ "$arg" =~ "--publish-all"* ]]; then
|
||||
port_published=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
local warned_on_publish=false
|
||||
if [[ "$port_published" == "true" ]] && [[ "$PROC_COUNT" -gt 1 ]]; then
|
||||
warned_on_publish=true
|
||||
dokku_log_warn "Port publishing may not work as expected with multiple containers. Consider scaling process type $PROC_TYPE to 1."
|
||||
fi
|
||||
if [[ "$port_published" == "true" ]] && [[ "$DOKKU_CHECKS_DISABLED" != "true" ]] && [[ "$warned_on_publish" == "false" ]]; then
|
||||
warned_on_publish=true
|
||||
dokku_log_warn "Port publishing may not work as expected with zero downtime. Consider disabling zero downtime for process type $PROC_TYPE."
|
||||
if [[ "$port_published" == "true" ]]; then
|
||||
local warned_on_publish=false
|
||||
if [[ "$PROC_COUNT" -gt 1 ]]; then
|
||||
warned_on_publish=true
|
||||
dokku_log_warn "Deploys may fail when publishing ports and scaling to multiple containers. Consider scaling process type $PROC_TYPE to 1."
|
||||
fi
|
||||
if [[ "$DOKKU_CHECKS_DISABLED" != "true" ]] && [[ "$warned_on_publish" == "false" ]]; then
|
||||
warned_on_publish=true
|
||||
dokku_log_warn "Deploys may fail when publishing ports and enabling zero downtime. Consider disabling zero downtime for process type $PROC_TYPE."
|
||||
fi
|
||||
fi
|
||||
|
||||
PARALLEL_DEPLOY_COUNT="$(plugn trigger "app-json-process-deploy-parallelism" "$APP" "$PROC_TYPE")"
|
||||
DOKKU_CHECKS_DISABLED="$DOKKU_CHECKS_DISABLED" INJECT_INIT_FLAG="$INJECT_INIT_FLAG" parallel --will-cite --halt soon,fail=1 --jobs "$PARALLEL_DEPLOY_COUNT" --ungroup <"$PROCESS_TMP_FILE"
|
||||
|
||||
plugn trigger scheduler-post-deploy-process "$APP" "$PROC_TYPE"
|
||||
|
||||
# cleanup when we scale down
|
||||
|
||||
@@ -130,37 +130,48 @@ teardown() {
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Port publishing may not work as expected with multiple containers" 0
|
||||
assert_output_contains "Port publishing may not work as expected with zero downtime" 0
|
||||
assert_output_contains "Deploys may fail when publishing ports and scaling to multiple containers" 0
|
||||
assert_output_contains "Deploys may fail when publishing ports and enabling zero downtime" 0
|
||||
|
||||
run /bin/bash -c "dokku ps:scale $TEST_APP web=2"
|
||||
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy '--publish 5000:5000'"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run deploy_app
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Port publishing may not work as expected with multiple containers" 1
|
||||
assert_output_contains "Port publishing may not work as expected with zero downtime" 0
|
||||
|
||||
run /bin/bash -c "dokku ps:scale --skip-deploy $TEST_APP web=2"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run deploy_app
|
||||
# the expected output will be seen twice due to how parallel re-outputs stderr in its own output...
|
||||
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_failure
|
||||
assert_output_contains "Deploys may fail when publishing ports and scaling to multiple containers" 2
|
||||
assert_output_contains "Deploys may fail when publishing ports and enabling zero downtime" 0
|
||||
|
||||
run /bin/bash -c "dokku ps:scale --skip-deploy $TEST_APP web=1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Port publishing may not work as expected with multiple containers" 0
|
||||
assert_output_contains "Port publishing may not work as expected with zero downtime" 1
|
||||
|
||||
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_failure
|
||||
assert_output_contains "Deploys may fail when publishing ports and scaling to multiple containers" 0
|
||||
assert_output_contains "Deploys may fail when publishing ports and enabling zero downtime" 2
|
||||
|
||||
run /bin/bash -c "dokku checks:disable $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Port publishing may not work as expected with multiple containers" 0
|
||||
assert_output_contains "Port publishing may not work as expected with zero downtime" 0
|
||||
|
||||
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Deploys may fail when publishing ports and scaling to multiple containers" 0
|
||||
assert_output_contains "Deploys may fail when publishing ports and enabling zero downtime" 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user