diff --git a/docs/appendices/0.32.0-migration-guide.md b/docs/appendices/0.32.0-migration-guide.md index 0d0619779..595279921 100644 --- a/docs/appendices/0.32.0-migration-guide.md +++ b/docs/appendices/0.32.0-migration-guide.md @@ -2,4 +2,10 @@ ## Deprecations +- The following `pre-release-*` plugin triggers have been deprecated and will be removed in the next release. Users should instead trigger the `pre-release-builder` plugin trigger. + - pre-release-buildpack + - pre-release-dockerfile + - pre-release-lambda + - pre-release-pack + ## Removals diff --git a/docs/development/plugin-triggers.md b/docs/development/plugin-triggers.md index 981a9afc1..0da3ed4fb 100644 --- a/docs/development/plugin-triggers.md +++ b/docs/development/plugin-triggers.md @@ -1931,8 +1931,28 @@ APP="$1"; IMAGE_SOURCE_TYPE="$2"; TMP_WORK_DIR="$3"; REV="$4" echo "$APP" > "$TMP_WORK_DIR/dokku-is-awesome" ``` +### `pre-release-builder` + +- Description: Allows you to run commands before environment variables are set for the release step of the deploy. +- Invoked by: `internal function dokku_release() (release phase)` +- Arguments: `$BUILDER_TYPE $APP $IMAGE` +- Example: + +```shell +#!/usr/bin/env bash + +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +BUILDER_TYPE="$1"; APP="$2"; IMAGE_TAG="$3"; + +# TODO +``` + ### `pre-release-buildpack` +> [!WARNING] +> Deprecated, please use `pre-release-builder` instead + - Description: Allows you to run commands before environment variables are set for the release step of the deploy. Only applies to apps using buildpacks. - Invoked by: `internal function dokku_release() (release phase)` - Arguments: `$APP $IMAGE_TAG` @@ -1960,6 +1980,9 @@ docker commit "${DOCKER_COMMIT_LABEL_ARGS[@]}" $CID $IMAGE >/dev/null ### `pre-release-lambda` +> [!WARNING] +> Deprecated, please use `pre-release-builder` instead + - Description: Allows you to run commands before environment variables are set for the release step of the deploy. Only applies to apps using lambda. - Invoked by: `internal function dokku_release() (release phase)` - Arguments: `$APP $IMAGE_TAG` @@ -1978,8 +2001,7 @@ APP="$1"; IMAGE_TAG="$2"; ### `pre-release-pack` > [!WARNING] -> The pack plugin trigger apis are under development and may change -> between minor releases until the 1.0 release. +> Deprecated, please use `pre-release-builder` instead - Description: Allows you to run commands before environment variables are set for the release step of the deploy. Only applies to apps using pack. - Invoked by: `internal function dokku_release() (release phase)` @@ -1998,6 +2020,9 @@ APP="$1"; IMAGE_TAG="$2"; ### `pre-release-dockerfile` +> [!WARNING] +> Deprecated, please use `pre-release-builder` instead + - Description: Allows you to run commands before environment variables are set for the release step of the deploy. Only applies to apps using a dockerfile. - Invoked by: `internal function dokku_release() (release phase)` - Arguments: `$APP $IMAGE_TAG` @@ -2439,7 +2464,8 @@ DOKKU_SCHEDULER="$1"; APP="$2"; ### `scheduler-is-deployed` -> Warning: The scheduler plugin trigger apis are under development and may change +> [!WARNING] +> The scheduler plugin trigger apis are under development and may change > between minor releases until the 1.0 release. - Description: Allows you to check if the scheduler has deployed the app @@ -2538,7 +2564,9 @@ DOKKU_SCHEDULER="$1"; APP="$2"; IMAGE_TAG="$3"; ### `scheduler-post-deploy-process` -> Warning: The scheduler plugin trigger apis are under development and may change + +> [!WARNING] +> The scheduler plugin trigger apis are under development and may change > between minor releases until the 1.0 release. - Description: Allows you to run a command after a process has been started @@ -2678,7 +2706,8 @@ DOKKU_SCHEDULER="$1"; APP="$2"; CONTAINER="$3"; TAIL="$4"; PRETTY_PRINT="$5"; NU ### `scheduler-run-stop` -> Warning: The scheduler plugin trigger apis are under development and may change +> [!WARNING] +> The scheduler plugin trigger apis are under development and may change > between minor releases until the 1.0 release. - Description: Allows a scheduler to stop all "run" containers or a specified container diff --git a/plugins/builder-dockerfile/builder-release b/plugins/builder-dockerfile/builder-release index 52074c410..bcfa0dc9b 100755 --- a/plugins/builder-dockerfile/builder-release +++ b/plugins/builder-dockerfile/builder-release @@ -13,13 +13,16 @@ trigger-builder-dockerfile-builder-release() { fi local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") - local DOCKER_BUILD_LABEL_ARGS=("--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.app-name=$APP" "--label=com.dokku.image-stage=release" "--label=dokku") - - plugn trigger pre-release-dockerfile "$APP" "$IMAGE_TAG" + if fn-plugn-trigger-exists "pre-release-dockerfile"; then + dokku_log_warn "Deprecated: please upgrade plugin to use 'pre-release-builder' plugin trigger instead of pre-release-dockerfile" + plugn trigger pre-release-dockerfile "$APP" "$IMAGE_TAG" + fi + plugn trigger pre-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE" TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")" trap "rm -rf '$TMP_WORK_DIR' >/dev/null" RETURN INT TERM EXIT + local DOCKER_BUILD_LABEL_ARGS=("--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.app-name=$APP" "--label=com.dokku.image-stage=release" "--label=dokku") if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-dockerfile/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then dokku_log_warn "Failure injecting docker labels on image" return 1 diff --git a/plugins/builder-herokuish/builder-release b/plugins/builder-herokuish/builder-release index 3e3b5ed64..6c669dbea 100755 --- a/plugins/builder-herokuish/builder-release +++ b/plugins/builder-herokuish/builder-release @@ -14,9 +14,11 @@ trigger-builder-herokuish-builder-release() { fi local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") - local DOCKER_BUILD_LABEL_ARGS=("--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.app-name=$APP" "--label=com.dokku.image-stage=release" "--label=dokku") - - plugn trigger pre-release-buildpack "$APP" "$IMAGE_TAG" + if fn-plugn-trigger-exists "pre-release-buildpack"; then + dokku_log_warn "Deprecated: please upgrade plugin to use 'pre-release-builder' plugin trigger instead of pre-release-buildpack" + plugn trigger pre-release-buildpack "$APP" "$IMAGE_TAG" + fi + plugn trigger pre-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE" TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")" trap "rm -rf '$TMP_WORK_DIR' >/dev/null" RETURN INT TERM EXIT @@ -24,6 +26,7 @@ trigger-builder-herokuish-builder-release() { config_export global >"$TMP_WORK_DIR/00-global-env.sh" config_export app "$APP" >"$TMP_WORK_DIR/01-app-env.sh" + local DOCKER_BUILD_LABEL_ARGS=("--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.app-name=$APP" "--label=com.dokku.image-stage=release" "--label=dokku") if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then dokku_log_warn "Failure injecting environment variables" return 1 diff --git a/plugins/builder-lambda/builder-release b/plugins/builder-lambda/builder-release index 90153c6f0..adedd36de 100755 --- a/plugins/builder-lambda/builder-release +++ b/plugins/builder-lambda/builder-release @@ -12,14 +12,17 @@ trigger-builder-lambda-builder-release() { return fi - local DOCKER_BUILD_LABEL_ARGS="--label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.app-name=$APP --label=com.dokku.image-stage=release --label=dokku" - - plugn trigger pre-release-lambda "$APP" "$IMAGE_TAG" + local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") + if fn-plugn-trigger-exists "pre-release-lambda"; then + dokku_log_warn "Deprecated: please upgrade plugin to use 'pre-release-builder' plugin trigger instead of pre-release-lambda" + plugn trigger pre-release-lambda "$APP" "$IMAGE_TAG" + fi + plugn trigger pre-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE" TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")" trap "rm -rf '$TMP_WORK_DIR' >/dev/null" RETURN INT TERM EXIT - local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") + local DOCKER_BUILD_LABEL_ARGS="--label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.app-name=$APP --label=com.dokku.image-stage=release --label=dokku" if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-lambda/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then dokku_log_warn "Failure injecting docker labels on image" return 1 diff --git a/plugins/builder-pack/builder-release b/plugins/builder-pack/builder-release index 21f836e8a..485749a0d 100755 --- a/plugins/builder-pack/builder-release +++ b/plugins/builder-pack/builder-release @@ -12,9 +12,13 @@ trigger-builder-pack-builder-release() { return fi - plugn trigger pre-release-pack "$APP" "$IMAGE_TAG" - local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") + if fn-plugn-trigger-exists "pre-release-pack"; then + dokku_log_warn "Deprecated: please upgrade plugin to use 'pre-release-builder' plugin trigger instead of pre-release-pack" + plugn trigger pre-release-pack "$APP" "$IMAGE_TAG" + fi + plugn trigger pre-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE" + docker-image-labeler relabel --label=com.dokku.image-stage=release --label=com.dokku.app-name=$APP --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=dokku "$IMAGE" plugn trigger post-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE" }