diff --git a/.drone.star b/.drone.star index e1630a9..0df210e 100644 --- a/.drone.star +++ b/.drone.star @@ -13,69 +13,9 @@ load("@this//:public-secrets.star", "publicSecrets") load("@this//:secret-secrets.star", "secretSecrets") load("@this//:pull.star", "pull") load("@this//:deploy.star", "deploy") - -def buildHome(): - return { - "name": "build-nginx-home", - "image": "docker:dind", - "volumes": [ - { - "name": "dockersock", - "path": "/var/run", - }, - ], - "environment": environment([ - "local-docker-registry", - ]), - "commands": [ - "cd letsencrypt-nginx", - "sh build.home.sh $${{LOCAL_DOCKER_REGISTRY}}".format(), - ], - } - -def pipeline(name, steps, dependsOn): - return { - "kind": "pipeline", - "name": name, - "depends_on": dependsOn, - "steps": [ - printSecrets( - "env-stack", - publicSecrets, - secretSecrets, - ), - wait(15, "wait"), - ] + steps, - "services": [ - { - "name": "docker", - "image": "docker:dind", - "privileged": True, - "volumes": [ - { - "name": "dockersock", - "path": "/var/run", - }, - { - "name": "ca", - "path": "/etc/docker/certs.d", - }, - ], - } - ], - "volumes": [ - { - "name": "dockersock", - "temp": {}, - }, - { - "name": "ca", - "host": { - "path": "/home/giles/gitea-drone-stack/.ca", - }, - }, - ], - } +load("@this//:build-folder.star", "buildFolder") +load("@this//:build-docker-folder.star", "buildDockerFolder") +load("@this//:pipeline.star", "pipeline") def main(ctx): if ctx.build.branch == 'home-deploy': @@ -83,16 +23,59 @@ def main(ctx): pipeline( 'home-deploy', [ - #build("guacamole-postgresql"), - #build("ngrok-gitea"), - #build("letsencrypt-nginx"), + printSecrets( + "env-stack", + publicSecrets, + secretSecrets, + ), + wait(15, "wait"), + build("guacamole-postgresql"), + build("ngrok-gitea"), + build("letsencrypt-nginx"), build("drone-starlark"), - #buildHome(), - #buildNginx("blog"), - #buildNginx("drone"), - #buildNginx("git"), - #buildNginx("remote"), - #buildNginx("chat"), + buildDockerFolder( + "Dockerfile.home", + "nginx:latest", + "$${LOCAL_DOCKER_REGISTRY}home", + "letsencrypt-nginx", + "home", + ), + + buildDockerFolder( + "Dockerfile.blog", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-nginx", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-blog", + "letsencrypt-nginx", + "blog", + ), + buildDockerFolder( + "Dockerfile.drone", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-nginx", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-drone", + "letsencrypt-nginx", + "drone", + ), + buildDockerFolder( + "Dockerfile.git", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-nginx", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-git", + "letsencrypt-nginx", + "git", + ), + buildDockerFolder( + "Dockerfile.remote", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-nginx", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-remote", + "letsencrypt-nginx", + "remote", + ), + buildDockerFolder( + "Dockerfile.chat", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-nginx", + "$${LOCAL_DOCKER_REGISTRY}letsencrypt-chat", + "letsencrypt-nginx", + "chat", + ), scp("~/gitea-drone-stack"), pull([ "letsencrypt-git", @@ -100,7 +83,7 @@ def main(ctx): "letsencrypt-drone", "letsencrypt-remote", "letsencrypt-blog", - "nginx-home1", + "home", "drone-starlark", ]), deploy( diff --git a/docker-compose-home.yml b/docker-compose-home.yml index bc32a65..2e58413 100644 --- a/docker-compose-home.yml +++ b/docker-compose-home.yml @@ -347,7 +347,7 @@ services: replicas: 1 restart_policy: condition: any - image: ${LOCAL_DOCKER_REGISTRY}nginx-home1 + image: ${LOCAL_DOCKER_REGISTRY}home environment: - SERVER_NAME=${BLOG_DOMAIN} ports: diff --git a/drone-starlark/repos/build-docker-folder-temp.star b/drone-starlark/repos/build-docker-folder-temp.star new file mode 100644 index 0000000..90d5f98 --- /dev/null +++ b/drone-starlark/repos/build-docker-folder-temp.star @@ -0,0 +1,31 @@ +load("@this//:environment.star", "environment") +def buildDockerFolder( + dockerFile, + image, + tag, + folder, + name, +): + return { + "name": "build-{name}".format( + name = name, + ), + "image": "docker:dind", + "volumes": [ + { + "name": "dockersock", + "path": "/var/run", + }, + ], + "environment": environment([ + "local-docker-registry", + ]), + "commands": [ + "cd {folder}".format(folder=folder), + "sh build-docker-folder.sh {dockerFile} {image} {tag}".format( + image = image, + dockerFile = dockerFile, + tag = tag, + ), + ], + } diff --git a/drone-starlark/repos/build-docker-folder.star b/drone-starlark/repos/build-docker-folder.star new file mode 100644 index 0000000..90d5f98 --- /dev/null +++ b/drone-starlark/repos/build-docker-folder.star @@ -0,0 +1,31 @@ +load("@this//:environment.star", "environment") +def buildDockerFolder( + dockerFile, + image, + tag, + folder, + name, +): + return { + "name": "build-{name}".format( + name = name, + ), + "image": "docker:dind", + "volumes": [ + { + "name": "dockersock", + "path": "/var/run", + }, + ], + "environment": environment([ + "local-docker-registry", + ]), + "commands": [ + "cd {folder}".format(folder=folder), + "sh build-docker-folder.sh {dockerFile} {image} {tag}".format( + image = image, + dockerFile = dockerFile, + tag = tag, + ), + ], + } diff --git a/drone-starlark/repos/pipeline.star b/drone-starlark/repos/pipeline.star new file mode 100644 index 0000000..ba0b072 --- /dev/null +++ b/drone-starlark/repos/pipeline.star @@ -0,0 +1,40 @@ +def pipeline( + name, + steps, + dependsOn, +): + return { + "kind": "pipeline", + "name": name, + "depends_on": dependsOn, + "steps": steps, + "services": [ + { + "name": "docker", + "image": "docker:dind", + "privileged": True, + "volumes": [ + { + "name": "dockersock", + "path": "/var/run", + }, + { + "name": "ca", + "path": "/etc/docker/certs.d", + }, + ], + } + ], + "volumes": [ + { + "name": "dockersock", + "temp": {}, + }, + { + "name": "ca", + "host": { + "path": "/home/giles/gitea-drone-stack/.ca", + }, + }, + ], + } diff --git a/letsencrypt-nginx/build-docker-folder.sh b/letsencrypt-nginx/build-docker-folder.sh new file mode 100644 index 0000000..ba7c6a4 --- /dev/null +++ b/letsencrypt-nginx/build-docker-folder.sh @@ -0,0 +1,3 @@ +set -e +docker build . -f $1 --build-arg image=$2 -t $3 +docker push $3