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), ] } }