mirror of
https://github.com/ViViDboarder/drone-webdav.git
synced 2025-01-04 19:47:33 +00:00
Add some tests and simplify push syntax
This commit is contained in:
parent
33594bbc59
commit
21ad3e9eeb
11
Makefile
Normal file
11
Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
.PHONY: clean all
|
||||
|
||||
.PHONY: default
|
||||
default: test
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
docker-compose -f ./tests/docker-compose-private.yml up \
|
||||
--abort-on-container-exit --exit-code-from plugin
|
||||
docker-compose -f ./tests/docker-compose-public.yml up \
|
||||
--abort-on-container-exit --exit-code-from plugin
|
@ -46,3 +46,12 @@ The following environment variables can be used for further cutomization:
|
||||
| ``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`` | Additional arguments to be passed to `curl`. |
|
||||
|
||||
|
||||
## Development
|
||||
|
||||
There are only two tests right now and they are configured using Docker Compose. To run them, just use
|
||||
|
||||
make test
|
||||
|
||||
If someone wants to make this better (or add a Drone file) I'd gladly accept the patch.
|
||||
|
13
push.sh
13
push.sh
@ -1,31 +1,31 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Use WEBDAV_USERNAME as default, if provided.
|
||||
if [ -z "$PLUGIN_USERNAME" ] && [ ! -z "$WEBDAV_USERNAME" ]; then
|
||||
if [ -z "$PLUGIN_USERNAME" ] && [ -n "$WEBDAV_USERNAME" ]; then
|
||||
|
||||
PLUGIN_USERNAME="$WEBDAV_USERNAME"
|
||||
fi
|
||||
|
||||
# Use WEBDAV_PASSWORD as default, if provided.
|
||||
if [ -z "$PLUGIN_PASSWORD" ] && [ ! -z "$WEBDAV_PASSWORD" ]; then
|
||||
if [ -z "$PLUGIN_PASSWORD" ] && [ -n "$WEBDAV_PASSWORD" ]; then
|
||||
|
||||
PLUGIN_PASSWORD="$WEBDAV_PASSWORD"
|
||||
fi
|
||||
|
||||
# If username and password are provided, add auth
|
||||
if [ ! -z "$PLUGIN_USERNAME" ] && [ ! -z "$PLUGIN_PASSWORD" ]; then
|
||||
if [ -n "$PLUGIN_USERNAME" ] && [ -n "$PLUGIN_PASSWORD" ]; then
|
||||
|
||||
AUTH="--user '${PLUGIN_USERNAME}':'${PLUGIN_PASSWORD}'"
|
||||
AUTH="--user '${PLUGIN_USERNAME}:${PLUGIN_PASSWORD}'"
|
||||
fi
|
||||
|
||||
# Use a proxy, if one is specified
|
||||
if [ ! -z "$PLUGIN_PROXY_URL" ]; then
|
||||
if [ -n "$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
|
||||
if [ -n "$PLUGIN_TIMEOUT" ]; then
|
||||
|
||||
PLUGIN_TIMEOUT="--max-time '${PLUGIN_TIMEOUT}'"
|
||||
fi
|
||||
@ -55,6 +55,7 @@ while [ "${PLUGIN_ATTEMPTS}" -gt 0 ]; do
|
||||
|
||||
}
|
||||
|
||||
sleep 5
|
||||
PLUGIN_ATTEMPTS=$((PLUGIN_ATTEMPTS-1))
|
||||
|
||||
done
|
||||
|
21
tests/docker-compose-private.yml
Normal file
21
tests/docker-compose-private.yml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
version: '2.4'
|
||||
services:
|
||||
webdav:
|
||||
image: sashgorokhov/webdav
|
||||
environment:
|
||||
USERNAME: jdoe
|
||||
PASSWORD: hunter2
|
||||
|
||||
plugin:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- './test.txt:/test.txt'
|
||||
environment:
|
||||
PLUGIN_FILE: '/test.txt'
|
||||
PLUGIN_DESTINATION: 'http://webdav/'
|
||||
PLUGIN_USERNAME: jdoe
|
||||
PLUGIN_PASSWORD: hunter2
|
||||
PLUGIN_ATTEMPTS: 4
|
16
tests/docker-compose-public.yml
Normal file
16
tests/docker-compose-public.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
version: '2.4'
|
||||
services:
|
||||
webdav:
|
||||
image: sashgorokhov/webdav
|
||||
|
||||
plugin:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- './test.txt:/test.txt'
|
||||
environment:
|
||||
PLUGIN_FILE: '/test.txt'
|
||||
PLUGIN_DESTINATION: 'http://webdav/'
|
||||
PLUGIN_ATTEMPTS: 4
|
1
tests/test.txt
Normal file
1
tests/test.txt
Normal file
@ -0,0 +1 @@
|
||||
ohai
|
Loading…
Reference in New Issue
Block a user