From ad5537c0864a3fff9c6afdab700f928a010dfa4d Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Thu, 4 Apr 2024 02:27:43 -0400 Subject: [PATCH] refactor: directly trigger pre-deploy hook from post-release-builder script This removes the extra indirection in the deploy process for triggering the hooks. --- plugins/app-json/Makefile | 2 +- plugins/app-json/src/triggers/triggers.go | 9 +++++---- plugins/app-json/triggers.go | 7 ++++--- plugins/ps/Makefile | 2 +- plugins/ps/src/triggers/triggers.go | 9 +++++---- plugins/ps/triggers.go | 4 ++-- .../{pre-deploy => post-release-builder} | 16 ++++++++-------- 7 files changed, 26 insertions(+), 23 deletions(-) rename plugins/scheduler-docker-local/{pre-deploy => post-release-builder} (72%) diff --git a/plugins/app-json/Makefile b/plugins/app-json/Makefile index bff87b1a8..d59ac111a 100644 --- a/plugins/app-json/Makefile +++ b/plugins/app-json/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/report subcommands/set -TRIGGERS = triggers/app-json-process-deploy-parallelism triggers/app-json-get-content triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone-setup triggers/post-app-rename triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/post-deploy triggers/pre-deploy triggers/report +TRIGGERS = triggers/app-json-process-deploy-parallelism triggers/app-json-get-content triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone-setup triggers/post-app-rename triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/post-deploy triggers/post-release-builder triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = app-json diff --git a/plugins/app-json/src/triggers/triggers.go b/plugins/app-json/src/triggers/triggers.go index 04580d2e2..828bcc5e6 100644 --- a/plugins/app-json/src/triggers/triggers.go +++ b/plugins/app-json/src/triggers/triggers.go @@ -56,10 +56,11 @@ func main() { appName := flag.Arg(0) imageTag := flag.Arg(3) err = appjson.TriggerPostDeploy(appName, imageTag) - case "pre-deploy": - appName := flag.Arg(0) - imageTag := flag.Arg(1) - err = appjson.TriggerPreDeploy(appName, imageTag) + case "post-release-builder": + builderType := flag.Arg(0) + appName := flag.Arg(1) + image := flag.Arg(2) + err = appjson.TriggerPostReleaseBuilder(builderType, appName, image) case "report": appName := flag.Arg(0) err = appjson.ReportSingleApp(appName, "", "") diff --git a/plugins/app-json/triggers.go b/plugins/app-json/triggers.go index b556c0d49..82cd95dce 100644 --- a/plugins/app-json/triggers.go +++ b/plugins/app-json/triggers.go @@ -212,9 +212,10 @@ func TriggerPostDeploy(appName string, imageTag string) error { return executeScript(appName, image, imageTag, "postdeploy") } -// TriggerPreDeploy is a trigger to execute predeploy and release deployment tasks -func TriggerPreDeploy(appName string, imageTag string) error { - image := common.GetAppImageName(appName, imageTag, "") +// TriggerPostReleaseBuilder is a trigger to execute predeploy and release deployment tasks +func TriggerPostReleaseBuilder(builderType string, appName string, image string) error { + parts := strings.Split(image, ":") + imageTag := parts[len(parts)-1] if err := executeScript(appName, image, imageTag, "predeploy"); err != nil { return err } diff --git a/plugins/ps/Makefile b/plugins/ps/Makefile index fa9285662..8e8457fc4 100644 --- a/plugins/ps/Makefile +++ b/plugins/ps/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/inspect subcommands/rebuild subcommands/report subcommands/restart subcommands/restore subcommands/retire subcommands/scale subcommands/set subcommands/start subcommands/stop -TRIGGERS = triggers/app-restart triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone triggers/post-app-clone-setup triggers/post-app-rename triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/post-stop triggers/pre-deploy triggers/procfile-get-command triggers/procfile-exists triggers/ps-can-scale triggers/ps-current-scale triggers/ps-set-scale triggers/report +TRIGGERS = triggers/app-restart triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone triggers/post-app-clone-setup triggers/post-app-rename triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/post-release-builder triggers/post-stop triggers/procfile-get-command triggers/procfile-exists triggers/ps-can-scale triggers/ps-current-scale triggers/ps-set-scale triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = ps diff --git a/plugins/ps/src/triggers/triggers.go b/plugins/ps/src/triggers/triggers.go index d0acb17b2..4d2821dad 100644 --- a/plugins/ps/src/triggers/triggers.go +++ b/plugins/ps/src/triggers/triggers.go @@ -55,10 +55,11 @@ func main() { case "post-stop": appName := flag.Arg(0) err = ps.TriggerPostStop(appName) - case "pre-deploy": - appName := flag.Arg(0) - imageTag := flag.Arg(1) - err = ps.TriggerPreDeploy(appName, imageTag) + case "post-release-builder": + builderType := flag.Arg(0) + appName := flag.Arg(1) + image := flag.Arg(2) + err = ps.TriggerPostReleaseBuilder(builderType, appName, image) case "procfile-get-command": appName := flag.Arg(0) processType := flag.Arg(1) diff --git a/plugins/ps/triggers.go b/plugins/ps/triggers.go index c21e68a89..674369db5 100644 --- a/plugins/ps/triggers.go +++ b/plugins/ps/triggers.go @@ -257,8 +257,8 @@ func TriggerPostStop(appName string) error { }) } -// TriggerPreDeploy ensures an app has an up to date scale parameters -func TriggerPreDeploy(appName string, imageTag string) error { +// TriggerPostReleaseBuilder ensures an app has an up to date scale parameters +func TriggerPostReleaseBuilder(builderType string, appName string, image string) error { if err := updateScale(appName, false, FormationSlice{}); err != nil { common.LogDebug(fmt.Sprintf("Error generating scale file: %s", err.Error())) return err diff --git a/plugins/scheduler-docker-local/pre-deploy b/plugins/scheduler-docker-local/post-release-builder similarity index 72% rename from plugins/scheduler-docker-local/pre-deploy rename to plugins/scheduler-docker-local/post-release-builder index 04abd3d92..e5be08240 100755 --- a/plugins/scheduler-docker-local/pre-deploy +++ b/plugins/scheduler-docker-local/post-release-builder @@ -6,20 +6,20 @@ source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" source "$PLUGIN_AVAILABLE_PATH/config/functions" source "$PLUGIN_AVAILABLE_PATH/scheduler-docker-local/internal-functions" -trigger-scheduler-docker-local-pre-deploy() { - declare desc="scheduler-docker-local pre-deploy plugin trigger" - declare trigger="pre-deploy" - declare APP="$1" IMAGE_TAG="$2" +trigger-scheduler-docker-local-post-release-builder() { + declare desc="scheduler-docker-local post-release-builder plugin trigger" + declare trigger="post-release-builder" + declare BUILDER_TYPE="$1" APP="$2" IMAGE="$3" - local DOKKU_SCHEDULER=$(get_app_scheduler "$APP") + local DOKKU_SCHEDULER="$(get_app_scheduler "$APP")" if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then return fi - scheduler-docker-local-pre-deploy-precheck "$APP" + scheduler-docker-local-post-release-builder-precheck "$APP" } -scheduler-docker-local-pre-deploy-precheck() { +scheduler-docker-local-post-release-builder-precheck() { declare desc="Outputs the checks messages if necessary" declare APP="$1" @@ -36,4 +36,4 @@ scheduler-docker-local-pre-deploy-precheck() { fi } -trigger-scheduler-docker-local-pre-deploy "$@" +trigger-scheduler-docker-local-post-release-builder "$@"