diff --git a/.drone.star b/.drone.star index 15c66f1..6f2e547 100644 --- a/.drone.star +++ b/.drone.star @@ -8,8 +8,10 @@ def environment(env): ) def map(fn, l): return [fn(x) for x in l] -def echo(x): - return "echo {secret}=${environment} >> env-stack".format(secret = x, environment = x.replace("-", "_").upper()) +def echo(secret): + return "echo {secret}=${environment} >> env-stack".format(secret = secret, environment = secret.replace("-", "_").upper()) +def export(secret): + return "echo {toCaps}=${toCaps} >> env-stack".format(toCaps = secret.replace("-", "_").upper()) def printSecrets(env): return { @@ -17,7 +19,7 @@ def printSecrets(env): "image": "appleboy/drone-ssh", "environment": environment(env), "settings": { - "envs": [x.replace("-", "_") for x in env ], + "envs": [x.replace("-", "_") for x in env ], "host": fromSecret("ssh-host"), "port": fromSecret("ssh-port"), "username": fromSecret("ssh-user"), @@ -68,7 +70,7 @@ def buildHome(): "local-docker-registry", ]), "commands": [ - "cd lestencrypt-nginx", + "cd letsencrypt-nginx", "sh build.home.sh $${{LOCAL_DOCKER_REGISTRY}}", ], } @@ -116,7 +118,49 @@ def scp(target): ".", ], } - +def deploy(): + secrets = [ + "drone-rpc-secret", + "drone-gitea-client-id", + "drone-gitea-client-secret", + "drone-gitea-server", + "drone-convert-secret", + "ssh-user", + "local-docker-registry", + "certbot-email", + "git-domain", + "drone-domain", + "chat-domain", + "remote-domain", + "blog-domain", + ] + 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) + [ + "docker pull $${{LOCAL_DOCKER_REGISTRY}}letsencrypt-git", + "docker pull $${{LOCAL_DOCKER_REGISTRY}}nginx-home1", + "docker pull $${{LOCAL_DOCKER_REGISTRY}}letsencrypt-chat", + "docker pull $${{LOCAL_DOCKER_REGISTRY}}letsencrypt-remote", + "docker pull $${{LOCAL_DOCKER_REGISTRY}}letsencrypt-blog", + "docker pull $${{LOCAL_DOCKER_REGISTRY}}letsencrypt-drone", + "docker network prune -f", + "cd /home/$SSH_USER/gitea-drone-stack", + "docker stack rm gitea", + "sleep 60", + "docker stack deploy -c docker-compose-home.yml gitea", + ] + } + } def steps(name, dependsOn): return { "kind": "pipeline", @@ -147,6 +191,7 @@ def steps(name, dependsOn): "echo hello 'star lark'", ], }, + deploy(), ], "services": [ { @@ -182,6 +227,5 @@ def steps(name, dependsOn): def main(ctx): return [ steps('first', []), - steps('second', ['first']), ] \ No newline at end of file