gohorsejobs/.drone.yml
bohessefmvb 808ef3524f
Update .drone.yml
Ajuste
2025-12-28 21:55:19 -03:00

193 lines
8.3 KiB
YAML

# ═══════════════════════════════════════════════════════════════════════════════
# PIPELINE 1: DEV (branch dev)
# ═══════════════════════════════════════════════════════════════════════════════
kind: pipeline
type: kubernetes
name: deploy-backend-dev
namespace: drone
service_account_name: drone-deployer
trigger:
branch:
- dev
steps:
- name: build-and-push-backend
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobsdev/gohorsejobs-backend
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
context: backend
dockerfile: backend/Dockerfile
purge: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: build-and-push-backoffice
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobs-backoffice-dev/backoffice
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
mtu: 1300
custom_config:
max-concurrent-uploads: 1
context: backoffice
dockerfile: backoffice/Dockerfile
purge: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: export-envs-to-k8s
image: bitnami/kubectl:latest
environment:
AWS_ACCESS_KEY_ID: { from_secret: AWS_ACCESS_KEY_ID }
AWS_ENDPOINT: { from_secret: AWS_ENDPOINT }
AWS_REGION: { from_secret: AWS_REGION }
AWS_SECRET_ACCESS_KEY: { from_secret: AWS_SECRET_ACCESS_KEY }
DB_HOST: { from_secret: DB_HOST }
DB_NAME: { from_secret: DB_NAME_DEV }
DB_PASSWORD: { from_secret: DB_PASSWORD }
DB_PORT: { from_secret: DB_PORT }
DB_SSLMODE: { from_secret: DB_SSLMODE }
DB_USER: { from_secret: DB_USER }
ENV: { from_secret: ENV_DEV }
CORS_ORIGINS: { from_secret: CORS_ORIGINS }
JWT_SECRET: { from_secret: JWT_SECRET }
MAX_UPLOAD_CAD_SIZE: { from_secret: MAX_UPLOAD_SIZE }
PORT: { from_secret: PORT }
S3_BUCKET: { from_secret: S3_BUCKET_DEV }
UPLOAD_DIR: { from_secret: UPLOAD_DIR }
STRIPE_SECRET_KEY: { from_secret: STRIPE_SECRET_KEY_DEV }
STRIPE_WEBHOOK_SECRET: { from_secret: STRIPE_WEBHOOK_SECRET_DEV }
STRIPE_PUBLISHABLE_KEY: { from_secret: STRIPE_PUBLISHABLE_KEY_DEV }
WEBHOOK_BASE_URL: { from_secret: WEBHOOK_BASE_URL_DEV }
DATABASE_URL: { from_secret: DATABASE_URL_DEV }
CLOUDFLARE_API_TOKEN: { from_secret: CLOUDFLARE_API_TOKEN }
CLOUDFLARE_ZONE_ID: { from_secret: CLOUDFLARE_ZONE_ID }
CPANEL_HOST: { from_secret: CPANEL_HOST }
CPANEL_USERNAME: { from_secret: CPANEL_USERNAME }
CPANEL_API_TOKEN: { from_secret: CPANEL_API_TOKEN }
commands:
- kubectl -n gohorsejobsdev delete secret backend-secrets --ignore-not-found
- kubectl -n gohorsejobsdev create secret generic backend-secrets --from-env-file=.env.k8s
- name: deploy-apps
image: bitnami/kubectl:latest
commands:
- kubectl delete deployment gohorse-backend-dev -n gohorsejobsdev --ignore-not-found
- kubectl delete deployment gohorse-backoffice-dev -n gohorsejobsdev --ignore-not-found
- kubectl apply -f k8s/dev/backend-deployment-dev.yaml -n gohorsejobsdev
- kubectl apply -f k8s/dev/backend-service-dev.yaml -n gohorsejobsdev
- kubectl apply -f k8s/dev/backend-ingress-dev.yaml -n gohorsejobsdev
- kubectl apply -f k8s/dev/backoffice-deployment-dev.yaml -n gohorsejobsdev
- kubectl apply -f k8s/dev/backoffice-service-dev.yaml -n gohorsejobsdev
- kubectl apply -f k8s/dev/backoffice-ingress-dev.yaml -n gohorsejobsdev
---
# ═══════════════════════════════════════════════════════════════════════════════
# PIPELINE 2: HML (branch hml)
# ═══════════════════════════════════════════════════════════════════════════════
kind: pipeline
type: kubernetes
name: deploy-backend-hml
namespace: drone
service_account_name: drone-deployer
trigger:
branch:
- hml
steps:
- name: build-and-push-backend
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobshml/gohorsejobs-backend
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
context: backend
dockerfile: backend/Dockerfile
insecure: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: build-and-push-backoffice
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobs-backoffice-hml/backoffice
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
context: backoffice
dockerfile: backoffice/Dockerfile
insecure: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: deploy-apps
image: bitnami/kubectl:latest
commands:
- kubectl delete deployment gohorse-backend-hml -n gohorsejobshml --ignore-not-found
- kubectl delete deployment gohorse-backoffice-hml -n gohorsejobshml --ignore-not-found
- kubectl apply -f k8s/hml/backend-deployment-hml.yaml -n gohorsejobshml
- kubectl apply -f k8s/hml/backend-service-hml.yaml -n gohorsejobshml
- kubectl apply -f k8s/hml/backend-ingress-hml.yaml -n gohorsejobshml
- kubectl apply -f k8s/hml/backoffice-hml.yaml -n gohorsejobshml
- kubectl apply -f k8s/hml/backoffice-service-hml.yaml -n gohorsejobshml
- kubectl apply -f k8s/hml/backoffice-ingress-hml.yaml -n gohorsejobshml
---
# ═══════════════════════════════════════════════════════════════════════════════
# PIPELINE 3: PRD (branch main)
# ═══════════════════════════════════════════════════════════════════════════════
kind: pipeline
type: kubernetes
name: deploy-backend-prd
namespace: drone
service_account_name: drone-deployer
trigger:
branch:
- main
steps:
- name: build-and-push-backend
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobs/gohorsejobs-backend
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
context: backend
dockerfile: backend/Dockerfile
insecure: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: build-and-push-backoffice
image: plugins/docker:latest
settings:
registry: in.gohorsejobs.com
repo: in.gohorsejobs.com/gohorsejobs/backoffice
tags: [ latest, "${DRONE_COMMIT_SHA:0:8}" ]
context: backoffice
dockerfile: backoffice/Dockerfile
insecure: true
username: { from_secret: HARBOR_USERNAME }
password: { from_secret: HARBOR_PASSWORD }
- name: deploy-apps
image: bitnami/kubectl:latest
commands:
- kubectl delete deployment gohorse-backend -n gohorsejobs --ignore-not-found
- kubectl delete deployment gohorse-backoffice -n gohorsejobs --ignore-not-found
- kubectl apply -f k8s/prd/backend-deployment.-prd.yaml -n gohorsejobs
- kubectl apply -f k8s/prd/backend-service-prd.yaml -n gohorsejobs
- kubectl apply -f k8s/prd/backend-ingress-prd.yaml -n gohorsejobs
- kubectl apply -f k8s/prd/backoffice-deployment-prd.yaml -n gohorsejobs
- kubectl apply -f k8s/prd/backoffice-service-prd.yaml -n gohorsejobs
- kubectl apply -f k8s/prd/backoffice-ingress-prd.yaml -n gohorsejobs
- kubectl rollout status deployment/gohorse-backend -n gohorsejobs
- kubectl rollout status deployment/gohorse-backoffice -n gohorsejobs