36 lines
1.1 KiB
Plaintext
36 lines
1.1 KiB
Plaintext
|
load("@this//:from-secret.star", "fromSecret")
|
||
|
load("@this//:map.star", "map")
|
||
|
load("@this//:environment.star", "environment")
|
||
|
load("@this//:export.star", "export")
|
||
|
load("@this//:public-secrets.star", "publicSecrets")
|
||
|
load("@this//:secret-secrets.star", "secretSecrets")
|
||
|
|
||
|
def deploy(
|
||
|
filename,
|
||
|
name,
|
||
|
folder,
|
||
|
):
|
||
|
return {
|
||
|
"name": "deploy",
|
||
|
"image": "appleboy/drone-ssh",
|
||
|
"environment": environment(publicSecrets + secretSecrets),
|
||
|
"settings": {
|
||
|
"envs": [x.replace("-", "_") for x in publicSecrets + secretSecrets ],
|
||
|
"host": fromSecret("ssh-host"),
|
||
|
"port": fromSecret("ssh-port"),
|
||
|
"username": fromSecret("ssh-root-user"),
|
||
|
"password": fromSecret("ssh-root-password"),
|
||
|
"script": [
|
||
|
"set -e"
|
||
|
] +
|
||
|
map(export, publicSecrets + secretSecrets) +
|
||
|
[
|
||
|
"docker network prune -f",
|
||
|
"cd {folder}".format(folder=folder),
|
||
|
"docker stack rm {name}".format(name = name),
|
||
|
"sleep 30",
|
||
|
"docker stack deploy -c {filename} {name}".format(name= name, filename = filename),
|
||
|
]
|
||
|
}
|
||
|
}
|