mirror of
https://github.com/dokku/dokku.git
synced 2026-05-18 05:05:46 +02:00
refactor: directly trigger pre-deploy hook from post-release-builder script
This removes the extra indirection in the deploy process for triggering the hooks.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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, "", "")
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "$@"
|
||||
Reference in New Issue
Block a user