From e82b1be08bb446cbbd7989669b1d5fc01ec0ba9f Mon Sep 17 00:00:00 2001 From: Giles Bradshaw Date: Sun, 26 Apr 2020 13:59:31 +0100 Subject: [PATCH] . --- .drone.star | 56 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/.drone.star b/.drone.star index c8e945e..0c24ead 100644 --- a/.drone.star +++ b/.drone.star @@ -1,9 +1,48 @@ -load("@this//:from-secret.star", "fromSecret") -load("@this//:map.star", "map") -load("@this//:print-secrets.star", "printSecrets") -load("@this//:environment.star", "environment") -load("@this//:print-secrets.star", "export") +def fromSecret(name): + return { + "from_secret": name + } +def environment(env): + return dict( + [(x.replace("-", "_").upper(), fromSecret(x)) for x in env] + ) +def map(fn, l): + return [fn(x) for x in l] +def secretToEnvironment(secret): + return secret.replace("-", "_").upper() +def echo(secret): + return 'echo "export {environment}=${environment}" >> ***filename*** # {secret}'.format( + secret = secret, + environment = secret.replace("-", "_").upper(), + ) +def echoSecret(secret): + return 'echo "export {environment}=???" >> ***filename*** # {secret}'.format( + secret = secret, + environment = secret.replace("-", "_").upper() + ) +def export(secret): + return "export {toCaps}=${toCaps}".format( + toCaps = secretToEnvironment(secret), + ) +def printSecrets(filename, env, secretEnv): + + return { + "name": "print secrets", + "image": "appleboy/drone-ssh", + "environment": environment(env), + "settings": { + "envs": [x.replace("-", "_") for x in env ], + "host": fromSecret("ssh-host"), + "port": fromSecret("ssh-port"), + "username": fromSecret("ssh-user"), + "password": fromSecret("ssh-password"), + "script": [x.replace("***filename***", filename) for x in [ + "rm -f env-stack", + ] + map(echo, env) + + map(echoSecret, secretEnv)] + } + } def wait(delay, name): return { "name": name, @@ -136,7 +175,7 @@ def deploy( "docker network prune -f", "cd {folder}".format(folder=folder), "docker stack rm gitea", - "sleep 30", + "sleep 60", "docker stack deploy -c {filename} gitea".format(filename = filename), ] } @@ -210,16 +249,15 @@ def main(ctx): #build("ngrok-gitea"), #build("letsencrypt-nginx"), #buildHome(), - build("drone-starlark"), #buildNginx("blog"), #buildNginx("drone"), #buildNginx("git"), #buildNginx("remote"), #buildNginx("chat"), - scp("/home/giles/gitea-drone-stack"), + scp("~/gitea-drone-stack"), deploy( "docker-compose-home.yml", - "/home/giles/gitea-drone-stack", + "~/gitea-drone-stack", ), ], [],