Merge pull request #8624 from dokku/8623-expose-certs-add-and-certs-remove-to-plugins-via-triggers-or-sourceable-functions

Expose certs-set and certs-remove plugin triggers
This commit is contained in:
Jose Diaz-Gonzalez
2026-05-13 00:09:47 -04:00
committed by GitHub
8 changed files with 156 additions and 23 deletions

View File

@@ -165,6 +165,44 @@ teardown() {
assert_success
}
@test "(certs) certs-set plugin trigger" {
run_plugn_trigger certs-set "$TEST_APP" "$BATS_TMPDIR/tls/server.crt" "$BATS_TMPDIR/tls/server.key"
echo "output: $output"
echo "status: $status"
assert_success
[[ -f "$DOKKU_ROOT/$TEST_APP/tls/server.crt" ]]
[[ -f "$DOKKU_ROOT/$TEST_APP/tls/server.key" ]]
}
@test "(certs) certs-set plugin trigger missing key file" {
run_plugn_trigger certs-set "$TEST_APP" "$BATS_TMPDIR/tls/server.crt" "/nonexistent/server.key"
echo "output: $output"
echo "status: $status"
assert_failure
assert_output_contains "KEY file specified not found"
}
@test "(certs) certs-remove plugin trigger" {
run /bin/bash -c "dokku certs:add $TEST_APP $BATS_TMPDIR/tls/server.crt $BATS_TMPDIR/tls/server.key"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger certs-remove "$TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
[[ ! -d "$DOKKU_ROOT/$TEST_APP/tls" ]]
}
@test "(certs) certs-remove plugin trigger without endpoint" {
run_plugn_trigger certs-remove "$TEST_APP"
echo "output: $output"
echo "status: $status"
assert_failure
assert_output_contains "An app-specific SSL endpoint is not defined"
}
@test "(certs) certs:show" {
run /bin/bash -c "dokku certs:show fake-app-name 2>&1"
echo "output: $output"

View File

@@ -228,7 +228,7 @@ destroy_key() {
rm -f /tmp/testkey* &>/dev/null || true
}
# Run a plugn trigger with the env vars plugn needs, capturing $output/$status via bats `run`.
# Run a plugn trigger via `dokku plugin:trigger`, capturing $output/$status via bats `run`.
# Optional VAR=VAL pairs before <trigger> are forwarded as extra env vars on the bash command line.
# Usage: run_plugn_trigger [VAR=VAL ...] <trigger> <args...>
run_plugn_trigger() {
@@ -239,7 +239,7 @@ run_plugn_trigger() {
done
local TRIGGER="$1"
shift
run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT${extra_env} plugn trigger $TRIGGER $* < /dev/null"
run /bin/bash -c "${extra_env} dokku plugin:trigger $TRIGGER $* < /dev/null"
}
# Run a single plugin's trigger script directly so other plugins' handlers do not fire.