From 2d04d3502519cb70b96714c850b9d85f4f0d49bc Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 20 Oct 2023 11:45:38 +0100 Subject: [PATCH] buidling and deoploying on tag --- .drone/drone-home.yml | 260 ++++++++++++++++-------------------------- 1 file changed, 97 insertions(+), 163 deletions(-) diff --git a/.drone/drone-home.yml b/.drone/drone-home.yml index 041cad6..7d44494 100644 --- a/.drone/drone-home.yml +++ b/.drone/drone-home.yml @@ -1,148 +1,3 @@ ---- -kind: pipeline -type: docker -name: register - -platform: - os: linux - arch: amd64 - -clone: - disable: true - -trigger: - event: - exclude: - - promote - ---- -kind: pipeline -type: docker -name: registry - -platform: - os: linux - arch: amd64 - -clone: - disable: true - -steps: -- name: gitea/gitea:1.12.3-linux-amd64 - image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f - commands: - - set -e - - "n=0\nwhile :\ndo\n docker login $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/ --username client --password \"$${REGISTRY_PASSWORD}\" \\\\\n && break # substitute your command here\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"login failed\"\n exit 1\n fi\n echo \"retrying login..$n\"\n sleep 5\ndone\n" - - "n=0\nwhile :\ndo\n docker pull gitea/gitea:1.12.3-linux-amd64@sha256:38b8222941d8acffb7bb9c3fb0e9e0b657e06815a090f1fb11ed6900a3c9f384 \\\\\n && docker tag gitea/gitea:1.12.3-linux-amd64@sha256:38b8222941d8acffb7bb9c3fb0e9e0b657e06815a090f1fb11ed6900a3c9f384 $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea/gitea:1.12.3-linux-amd64 \\\\\n && docker push $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea/gitea:1.12.3-linux-amd64 && break\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"initialise failed\"\n exit 1\n fi\n echo \"retrying..$n\"\n sleep 5\ndone\n" - volumes: - - name: dockersock - path: /var/run - -services: -- name: docker - image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f - privileged: true - volumes: - - name: dockersock - path: /var/run - - name: ca - path: /etc/docker/certs.d - - name: daemonjson - path: /etc/docker/daemon.json - -volumes: -- name: dockersock - temp: {} -- name: ca - host: - path: /etc/docker/certs.d -- name: daemonjson - host: - path: /etc/docker/daemon.json - -image_pull_secrets: -- dockerconfigjson - -trigger: - event: - - promote - target: - - registry - ---- -kind: pipeline -type: docker -name: save - -platform: - os: linux - arch: amd64 - -clone: - disable: true - -steps: -- name: mkdir - image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea - settings: - envs: - - drone_tag - - drone_commit - - drone_build_number - - drone_repo_name - - drone_repo_namespace - script: - - mkdir -p /stack/.images/gitea/built - - rm -f /stack/.images/gitea/*.* - - rm -f /stack/.images/gitea/built/*.* - -- name: gitea/gitea:1.12.3-linux-amd64 - image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea - settings: - envs: - - drone_tag - - drone_commit - - drone_build_number - - drone_repo_name - - drone_repo_namespace - - registry_domain - - registry_port - - registry_password - - destination_registry - script: - - "n=0\nwhile :\ndo\n docker login $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/ --username client --password \"$${REGISTRY_PASSWORD}\" \\\\\n && break # substitute your command here\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"login failed\"\n exit 1\n fi\n echo \"retrying login..$n\"\n sleep 5\ndone\n" - - docker pull $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea/gitea:1.12.3-linux-amd64 - - docker save $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea/gitea:1.12.3-linux-amd64 -o /stack/.images/gitea/gitea_gitea:1.12.3-linux-amd64.tar - - echo "docker load < gitea_gitea:1.12.3-linux-amd64.tar" >> /stack/.images/gitea/load.sh - - echo "docker tag $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea/gitea:1.12.3-linux-amd64 $${DESTINATION_REGISTRY}/stack/gitea/gitea/gitea:1.12.3-linux-amd64" >> /stack/.images/gitea/load.sh - -- name: gitea - image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea - settings: - envs: - - drone_tag - - drone_commit - - drone_build_number - - drone_repo_name - - drone_repo_namespace - - registry_domain - - registry_port - - registry_password - - destination_registry - script: - - "n=0\nwhile :\ndo\n docker login $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/ --username client --password \"$${REGISTRY_PASSWORD}\" \\\\\n && break # substitute your command here\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"login failed\"\n exit 1\n fi\n echo \"retrying login..$n\"\n sleep 5\ndone\n" - - docker pull $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea - - docker save $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea -o /stack/.images/gitea/built/gitea.tar - - echo "docker load gitea.tar" >> /stack/.images/gitea/built/load.sh - - echo "docker tag $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/stack/gitea/gitea ${DESINATION_REGISTRY}/stack/gitea/gitea" >> /stack/.images/gitea/built/load.sh - -trigger: - event: - - promote - target: - - save - ---- kind: pipeline type: docker name: print @@ -221,7 +76,7 @@ platform: arch: amd64 steps: -- name: "dockerbuild:" +- name: "build commit" image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f commands: - set -e @@ -233,6 +88,25 @@ steps: volumes: - name: dockersock path: /var/run + when: + branch: + - action +- name: "build tag" + image: docker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f + commands: + - set -e + - export NAME=gitea + - export ROOT=stack + - "n=0\nwhile :\ndo\n docker login $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/ --username client --password \"$${REGISTRY_PASSWORD}\" \\\\\n && break # substitute your command here\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"login failed\"\n exit 1\n fi\n echo \"retrying login..$n\"\n sleep 5\ndone\n" + - sh .drone/build.sh ${DRONE_TAG} + - sh .drone/push.sh ${DRONE_TAG} + volumes: + - name: dockersock + path: /var/run + when: + event: + - tag + services: - name: docker @@ -256,14 +130,6 @@ volumes: host: path: /etc/docker/daemon.json -trigger: - branch: - - separate-database - #event: - #- promote - #target: - #- build - --- kind: pipeline type: docker @@ -285,7 +151,10 @@ steps: - . target: /stack/gitea -- name: deploy +- name: deploy commit + when: + branch: + - action image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea settings: envs: @@ -355,13 +224,78 @@ steps: from_secret: gitea-security-secret-key GITEA_SERVER_LFS_JWT_SECRET: from_secret: gitea-server-lfs-jwt-secret - -trigger: - branch: - - separate-database - #event: - #- promote - #target: - #- deploy +- name: deploy commit + when: + event: + - tag + image: appleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea + settings: + envs: + - drone_tag + - drone_commit + - drone_commit_sha + - drone_build_number + - drone_repo_name + - drone_repo_namespace + - scheme + - domain + - registry_domain + - registry_port + - registry_password + - gitea_mailer_host + - gitea_mailer_from + - gitea_mailer_user + - gitea_app_name + - gitea_server_lfs_jwt_secret + - gitea_security_secret_key + - gitea_security_internal_token + - gitea_oauth2_jwt_secret + - gitea_mailer_passwd + - gitea_mailer_protocol + script: + - export GITEA_SERVER_LFS_JWT_SECRET=$${GITEA_SERVER_LFS_JWT_SECRET} + - export GITEA_SECURITY_SECRET_KEY=$${GITEA_SECURITY_SECRET_KEY} + - export GITEA_SECURITY_INTERNAL_TOKEN=$${GITEA_SECURITY_INTERNAL_TOKEN} + - export GITEA_OAUTH2_JWT_SECRET=$${GITEA_OAUTH2_JWT_SECRET} + - export GITEA_MAILER_PASSWD=$${GITEA_MAILER_PASSWD} + - export GITEA_MAILER_PROTOCOL=$${GITEA_MAILER_PROTOCOL} + - export GITEA_MAILER_HOST=$${GITEA_MAILER_HOST} + - export GITEA_MAILER_FROM=$${GITEA_MAILER_FROM} + - export GITEA_MAILER_USER=$${GITEA_MAILER_USER} + - export GITEA_APP_NAME=$${GITEA_APP_NAME} + - export SCHEME=$${SCHEME} + - export DOMAIN=$${DOMAIN} + - export REGISTRY_DOMAIN=$${REGISTRY_DOMAIN} + - export REGISTRY_PORT=$${REGISTRY_PORT} + - export REGISTRY_PASSWORD=$${REGISTRY_PASSWORD} + - set -e + - export NAME=gitea + - export ROOT=stack + - cd /stack/gitea + - "n=0\nwhile :\ndo\n docker login $${REGISTRY_DOMAIN}:$${REGISTRY_PORT}/ --username client --password \"$${REGISTRY_PASSWORD}\" \\\\\n && break # substitute your command here\n n=$((n+1))\n if [ $n -ge 10 ]; then\n echo \"login failed\"\n exit 1\n fi\n echo \"retrying login..$n\"\n sleep 5\ndone\n" + - printenv + - sh .drone/pull.sh ${DRONE_TAG} + - sh .drone/deploy.sh ${DRONE_TAG} + environment: + GITEA_APP_NAME: + from_secret: gitea-app-name + GITEA_MAILER_FROM: + from_secret: gitea-mailer-from + GITEA_MAILER_HOST: + from_secret: gitea-mailer-host + GITEA_MAILER_PASSWD: + from_secret: gitea-mailer-passwd + GITEA_MAILER_PROTOCOL: + from_secret: gitea-mailer-protocol + GITEA_MAILER_USER: + from_secret: gitea-mailer-user + GITEA_OAUTH2_JWT_SECRET: + from_secret: gitea-oauth2-jwt-secret + GITEA_SECURITY_INTERNAL_TOKEN: + from_secret: gitea-security-internal-token + GITEA_SECURITY_SECRET_KEY: + from_secret: gitea-security-secret-key + GITEA_SERVER_LFS_JWT_SECRET: + from_secret: gitea-server-lfs-jwt-secret ...