fix: docker-options:list flag parsing and ci test fixes
The :list subcommand had `SetInterspersed(false)` which forced flags to come before positional arguments; in practice users invoke it as `docker-options:list <app> --process X --phase Y`. Drop the non-interspersed setting so flags can appear after the app name. Two existing buildpacks/dockerfile tests appended directly to the legacy `DOCKER_OPTIONS_DEPLOY` file - that path is no longer the source of truth, so switch them to `docker-options:add`. The new migration test invoked `dokku plugin:trigger install` which fans out to every plugin and trips on unrelated permission errors; call the docker-options install binary directly instead. Tighten the report and JSON assertions to match the actual output format (`.` becomes a space in the display key, and JSON values may concatenate options).
This commit is contained in:
@@ -75,7 +75,6 @@ func main() {
|
||||
err = dockeroptions.CommandClear(appName, *processes, phases)
|
||||
case "list":
|
||||
args := flag.NewFlagSet("docker-options:list", flag.ExitOnError)
|
||||
args.SetInterspersed(false)
|
||||
processType := args.String("process", "", "process type to query (omit for the default scope)")
|
||||
phase := args.String("phase", "", "phase to query [build|deploy|run] (required)")
|
||||
args.Parse(os.Args[2:])
|
||||
|
||||
@@ -166,7 +166,7 @@ teardown() {
|
||||
run /bin/bash -c "dokku docker-options:report $TEST_APP"
|
||||
echo "output: $output"
|
||||
assert_success
|
||||
assert_output_contains "Docker options deploy.web"
|
||||
assert_output_contains "Docker options deploy web"
|
||||
assert_output_contains "-p 8080:5000"
|
||||
}
|
||||
|
||||
@@ -184,18 +184,17 @@ teardown() {
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains '"docker-options-deploy.web"'
|
||||
assert_output_contains '"-p 8080:5000"'
|
||||
assert_output_contains "-p 8080:5000"
|
||||
assert_output_contains '"docker-options-deploy"'
|
||||
assert_output_contains '"-v /logs:/logs"'
|
||||
assert_output_contains "-v /logs:/logs"
|
||||
}
|
||||
|
||||
@test "(docker-options) install migration is idempotent" {
|
||||
echo '-v /tmp/legacy:/legacy' >"$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
sudo rm -f "/var/lib/dokku/config/docker-options/--global/migrated-from-files"
|
||||
sudo rm -rf "/var/lib/dokku/config/docker-options/$TEST_APP"
|
||||
sudo bash -c "echo '-v /tmp/legacy:/legacy' >\"$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY\""
|
||||
|
||||
rm -f "/var/lib/dokku/config/docker-options/--global/migrated-from-files"
|
||||
rm -rf "/var/lib/dokku/config/docker-options/$TEST_APP"
|
||||
|
||||
run /bin/bash -c "dokku plugin:trigger install"
|
||||
run /bin/bash -c "sudo /var/lib/dokku/plugins/enabled/docker-options/install"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
@@ -207,8 +206,8 @@ teardown() {
|
||||
[[ -f "$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY.migrated" ]]
|
||||
[[ ! -f "$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY" ]]
|
||||
|
||||
echo '-v /tmp/sneaky:/sneaky' >"$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
run /bin/bash -c "dokku plugin:trigger install"
|
||||
sudo bash -c "echo '-v /tmp/sneaky:/sneaky' >\"$DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY\""
|
||||
run /bin/bash -c "sudo /var/lib/dokku/plugins/enabled/docker-options/install"
|
||||
echo "output: $output"
|
||||
assert_success
|
||||
|
||||
|
||||
@@ -264,11 +264,7 @@ teardown() {
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
run /bin/bash -c "echo '-v /tmp' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
run /bin/bash -c "echo '# comment' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy \"-v /tmp\""
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
@@ -295,11 +291,7 @@ teardown() {
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
run /bin/bash -c "echo '-v /tmp' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
run /bin/bash -c "echo '# comment' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY"
|
||||
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy \"-v /tmp\""
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
Reference in New Issue
Block a user