A Drone CI / Woodpecker CI plugin, that will allow pushing build artifacts to any WebDAV server, including Nextcloud or ownCloud.
An example configuration would be as follows:
pipeline:
upload_debug:
image: vividboarder/drone-webdav
settings:
file: com.vividboarder.otbeta/build/outputs/apk/com.vividboarder.otbeta-debug.apk
destination: https://my.nextcloud.com/remote.php/dav/files/vividboarder/Android/Apks/
username: myusername
password: mypassword
You probably don't want to check your credentials into your repo, so you may use secrets for this:
pipeline:
upload_debug:
image: vividboarder/drone-webdav
settings:
file: com.vividboarder.otbeta/build/outputs/apk/com.vividboarder.otbeta-debug.apk
destination: https://my.nextcloud.com/remote.php/dav/files/vividboarder/Android/Apks/
username:
from_secret: WEBDAV_USER
password:
from_secret: WEBDAV_PASSWORD
Since this script uses curl to upload your files, you can use it's corresponding syntax.
An example, taken from the official documentation, would be to pass {dogs.png,cats.jpg}
to PLUGIN_FILE
.
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 |
Additional arguments to be passed to curl . |
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.