40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
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,
|
|
ctx
|
|
):
|
|
return {
|
|
"name": "deploy {name}".format(name = name),
|
|
"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) +
|
|
[
|
|
"export DRONE_REPO_LINK=$${{DRONE_GITEA_SERVER}}/{namespace}/{name}".format(name=ctx.repo.name, namespace=ctx.repo.namespace),
|
|
"export DRONE_COMMIT={commit}".format(commit=ctx.build.commit),
|
|
"docker network prune -f",
|
|
"cd {folder}".format(folder=folder),
|
|
'docker login $${LOCAL_DOCKER_REGISTRY} --username client --password "$${REGISTRY_PASSWORD}"',
|
|
"docker stack rm {name}".format(name = name),
|
|
"sleep 30",
|
|
"docker stack deploy -c {filename} {name}".format(name= name, filename = filename),
|
|
] + commands
|
|
}
|
|
}
|