mirror of
https://github.com/ViViDboarder/drone-webdav.git
synced 2025-01-06 20:47:33 +00:00
Adding options for customization. (#5)
* First changes. * Fixing typo. * Making improvments. * Removing unnecessary code. * Improvements and code formatting * Additional formatting. * Minor improvements. * RM else Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
parent
8a22e80d99
commit
b61f16a120
15
Readme.md
15
Readme.md
@ -1,7 +1,7 @@
|
|||||||
# drone-webdav
|
# drone-webdav
|
||||||
*A WebDAV plugin for the drone.io project*
|
A WebDAV plugin, for the drone.io project, which allows you to push build artifacts to any WebDAV server, including Nextcloud or ownCloud.
|
||||||
|
|
||||||
The WebDAV plugin will allow pushing build artifacts to any WebDAV server, including Nextcloud or ownCloud.
|
## Examples
|
||||||
|
|
||||||
An example configuration would be as follows:
|
An example configuration would be as follows:
|
||||||
|
|
||||||
@ -29,3 +29,14 @@ pipeline:
|
|||||||
- source: WEBDAV_PASSWORD
|
- source: WEBDAV_PASSWORD
|
||||||
target: PLUGIN_PASSWORD
|
target: PLUGIN_PASSWORD
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
The following environment variables can be used for further cutomization:
|
||||||
|
|
||||||
|
| Variable | Description |
|
||||||
|
|-----------------------------|----------------------------------------------------------------------------------------------------------|
|
||||||
|
| ``PLUGIN_PROXY_URL`` | May be used to specify a proxy (e.g. ``socks5://{ip_address}:{port}``) |
|
||||||
|
| ``PLUGIN_TIMEOUT`` | Defines a timeout (in seconds) to stop the upload after a certain time. |
|
||||||
|
| ``PLUGIN_ATTEMPTS`` | Defines how often a failed upload should be retried. Normally there is only one upload attempt. |
|
||||||
|
| ``PLUGIN_CUSTOM_ARGUMENTS`` | Allows for adding custom arguments. |
|
54
push.sh
54
push.sh
@ -1,16 +1,64 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# Use WEBDAV_USERNAME or WEBDAV_PASSWORD as default, if provided
|
# Use WEBDAV_USERNAME as default, if provided.
|
||||||
if [ -z "$PLUGIN_USERNAME" ] && [ ! -z "$WEBDAV_USERNAME" ]; then
|
if [ -z "$PLUGIN_USERNAME" ] && [ ! -z "$WEBDAV_USERNAME" ]; then
|
||||||
|
|
||||||
PLUGIN_USERNAME="$WEBDAV_USERNAME"
|
PLUGIN_USERNAME="$WEBDAV_USERNAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Use WEBDAV_PASSWORD as default, if provided.
|
||||||
if [ -z "$PLUGIN_PASSWORD" ] && [ ! -z "$WEBDAV_PASSWORD" ]; then
|
if [ -z "$PLUGIN_PASSWORD" ] && [ ! -z "$WEBDAV_PASSWORD" ]; then
|
||||||
|
|
||||||
PLUGIN_PASSWORD="$WEBDAV_PASSWORD"
|
PLUGIN_PASSWORD="$WEBDAV_PASSWORD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If username and password are provided, add auth
|
# If username and password are provided, add auth
|
||||||
if [ ! -z "$PLUGIN_USERNAME" ] && [ ! -z "$PLUGIN_PASSWORD" ]; then
|
if [ ! -z "$PLUGIN_USERNAME" ] && [ ! -z "$PLUGIN_PASSWORD" ]; then
|
||||||
AUTH="-u ${PLUGIN_USERNAME}:${PLUGIN_PASSWORD}"
|
|
||||||
|
AUTH="--user '${PLUGIN_USERNAME}':'${PLUGIN_PASSWORD}'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
curl -T $PLUGIN_FILE $AUTH $PLUGIN_DESTINATION
|
# Use a proxy, if one is specified
|
||||||
|
if [ ! -z "$PLUGIN_PROXY_URL" ]; then
|
||||||
|
|
||||||
|
PLUGIN_PROXY_URL="--proxy '${PLUGIN_PROXY_URL}'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If a timeout is specified, make use of it.
|
||||||
|
if [ ! -z "$PLUGIN_TIMEOUT" ]; then
|
||||||
|
|
||||||
|
PLUGIN_TIMEOUT="--max-time '${PLUGIN_TIMEOUT}'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set PLUGIN_ATTEMPTS to one if nothing else is specified
|
||||||
|
if [ -z "$PLUGIN_ATTEMPTS" ]; then
|
||||||
|
|
||||||
|
PLUGIN_ATTEMPTS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Repeat the upload as long as specified.
|
||||||
|
while [ "${PLUGIN_ATTEMPTS}" -gt 0 ]; do
|
||||||
|
|
||||||
|
# Uploading the file
|
||||||
|
curl $PLUGIN_PROXY_URL $PLUGIN_TIMEOUT $PLUGIN_CUSTOM_ARGUMENTS --upload-file $PLUGIN_FILE $AUTH $PLUGIN_DESTINATION && {
|
||||||
|
|
||||||
|
# Terminate the script as soon as the upload is successful
|
||||||
|
echo "[INFO] Upload was successful."
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Show messages in case uploads have failed
|
||||||
|
[ "$PLUGIN_ATTEMPTS" -gt 1 ] && {
|
||||||
|
|
||||||
|
echo "[INFO] Upload failed. Attempting a new upload, if possible."
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PLUGIN_ATTEMPTS=$((PLUGIN_ATTEMPTS-1))
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
# Returns an error because the upload was not successful
|
||||||
|
echo "[ERROR] All upload attempts have failed."
|
||||||
|
exit 1
|
||||||
|
Loading…
Reference in New Issue
Block a user