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