feat: add a new plugin trigger for detecting what the current deployment method is

This is currently used solely for reporting.

Closes #3047
This commit is contained in:
Jose Diaz-Gonzalez
2018-03-03 18:16:50 -05:00
parent be79060d7e
commit c9d9750afe
7 changed files with 76 additions and 8 deletions

View File

@@ -169,12 +169,14 @@ dokku apps:report
```
=====> node-js-app
App dir: /home/dokku/node-js-app
Git sha: dbddc3f
Git sha: dbddc3f
Deploy method: git
=====> python-sample
not deployed
=====> ruby-sample
App dir: /home/dokku/ruby-sample
Git sha: a2d477c
Deploy method: git
```
You can run the command for a specific app also.

View File

@@ -122,7 +122,7 @@ curl "http://httpstat.us/200"
### `dependencies`
- Description: Used to install system-level dependencies. Invoked by `plugin:install-dependencies`.
- Description: Used to install system-level dependencies.
- Invoked by: `dokku plugin:install-dependencies`
- Arguments: None
- Example:
@@ -147,6 +147,33 @@ case "$DOKKU_DISTRO" in
esac
```
### `deploy-method`
- Description: Used for reporting what the current detected deployment method is. The first detected method should always win.
- Invoked by: `dokku apps:report`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
# Checks if the app should be deployed via git
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"
STDIN=$(cat)
# bail if another method is detected
if [[ -n "$STDIN" ]]; then
echo "$STDIN"
return
fi
if [[ -d "$DOKKU_ROOT/$APP/refs" ]]; then
echo "git"
fi
```
### `deployed-app-image-repo`
- Description: Used to manage the full repo of the image being deployed. Useful for deploying from an external registry where the repository name is not `dokku/$APP`
@@ -1155,7 +1182,7 @@ sshcommand acl-add dokku NAME < $PATH_TO_SSH_KEY
Note that the `NAME` value is set at the first ssh key match. If an ssh key is set in the `/home/dokku/.ssh/authorized_keys` multiple times, the first match will decide the value.
- Description: Allows you to deny access to a Dokku command by either ssh user or associated ssh-command NAME user.
- Invoked by `dokku`
- Invoked by: `dokku`
- Arguments: `$SSH_USER $SSH_NAME $DOKKU_COMMAND`
- Example: