98 lines
2.9 KiB
Markdown
98 lines
2.9 KiB
Markdown
# Deploy to FTP(S) server from Drone CI
|
|
|
|
[![Docker Stars](https://badgen.net/docker/stars/cschlosser/drone-ftps)](https://hub.docker.com/r/cschlosser/drone-ftps/)
|
|
[![Docker Pulls](https://badgen.net/docker/pulls/cschlosser/drone-ftps)](https://hub.docker.com/r/cschlosser/drone-ftps/)
|
|
[![Docker Build](https://img.shields.io/docker/cloud/build/cschlosser/drone-ftps)](https://hub.docker.com/r/cschlosser/drone-ftps/)
|
|
[![Docker Size](https://badgen.net/docker/size/cschlosser/drone-ftps)](https://hub.docker.com/r/cschlosser/drone-ftps/)
|
|
|
|
## Usage
|
|
|
|
You have to set the username and password for your FTP server in the `FTP_USERNAME` and `FTP_PASSWORD` secret.
|
|
|
|
## Required settings
|
|
|
|
```yaml
|
|
environment:
|
|
FTP_USERNAME:
|
|
from_secret: username
|
|
FTP_PASSWORD:
|
|
from_secret: password
|
|
PLUGIN_HOSTNAME: example.com:21
|
|
```
|
|
|
|
## Optional settings
|
|
|
|
```yaml
|
|
environment:
|
|
PLUGIN_DEST_DIR: /path/to/dest (default /)
|
|
PLUGIN_SRC_DIR: /path/to/dest (default ./)
|
|
PLUGIN_SECURE: true | false (default true)
|
|
PLUGIN_VERIFY: false
|
|
PLUGIN_EXCLUDE: (egrep like pattern matching)
|
|
PLUGIN_INCLUDE: (egrep like pattern matching)
|
|
PLUGIN_CHMOD: true | false (default true)
|
|
PLUGIN_CLEAN_DIR: true | false (default false)
|
|
PLUGIN_AUTO_CONFIRM: true | false (default false)
|
|
PLUGIN_SSH_ACCEPT_RSA: true | false (default false)
|
|
PLUGIN_PRE_ACTION: string (default empty)
|
|
PLUGIN_POST_ACTION: string (default empty)
|
|
PLUGIN_DEBUG: true | false (default false)
|
|
```
|
|
### Pre/Post Action
|
|
Pre/Post Action can be used to move files/folders out of the way or execute additional commands on the server before and after the deployment process.
|
|
The `PLUGIN_PRE_ACTION` is executed *before* the `PLUGIN_CLEAN_DIR` (if set).
|
|
The `PLUGIN_POST_ACTION` is executed *after* the ftp "mirror" operation.
|
|
|
|
Multiple Actions can be set, they need to be divided by a semicolon `;` .
|
|
**Example:**
|
|
There is another project's folder ("project2") in a subfolder in the destination directory. We need to move this folder to a temporary location and restore it after the upload completed.
|
|
```yaml
|
|
PLUGIN_CLEAN_DIR: true
|
|
PLUGIN_PRE_ACTION: mv /dest/project2 /temp/project2;
|
|
PLUGIN_POST_ACTION: mv /temp/project2 /dest/project2;
|
|
```
|
|
|
|
## Full file example
|
|
|
|
```yaml
|
|
kind: pipeline
|
|
name: default
|
|
|
|
steps:
|
|
- name: master_build
|
|
image: cschlosser/drone-ftps
|
|
environment:
|
|
FTP_USERNAME:
|
|
from_secret: username
|
|
FTP_PASSWORD:
|
|
from_secret: password
|
|
PLUGIN_HOSTNAME: example.com:21
|
|
|
|
PLUGIN_SECURE: false
|
|
PLUGIN_VERIFY: false
|
|
PLUGIN_EXCLUDE: ^\.git/$
|
|
when:
|
|
branch:
|
|
- master
|
|
event:
|
|
- push
|
|
|
|
- name: develop_build
|
|
image: cschlosser/drone-ftps
|
|
environment:
|
|
FTP_USERNAME:
|
|
from_secret: username
|
|
FTP_PASSWORD:
|
|
from_secret: password
|
|
PLUGIN_HOSTNAME: example.com:21
|
|
PLUGIN_DEST_DIR: /develop
|
|
PLUGIN_SECURE: false
|
|
PLUGIN_VERIFY: false
|
|
PLUGIN_EXCLUDE: ^\.git/$
|
|
when:
|
|
branch:
|
|
- develop
|
|
event:
|
|
- push
|
|
```
|