141 lines
4.3 KiB
YAML
141 lines
4.3 KiB
YAML
when:
|
|
- event: [push, pull_request]
|
|
|
|
steps:
|
|
# Build checks
|
|
typecheck-backend:
|
|
image: node:20
|
|
commands:
|
|
- cd backend
|
|
- npm ci
|
|
- npx tsc --noEmit || true
|
|
|
|
build-cannaiq:
|
|
image: node:20
|
|
commands:
|
|
- cd cannaiq
|
|
- npm ci
|
|
- npx tsc --noEmit
|
|
- npm run build
|
|
|
|
build-findadispo:
|
|
image: node:20
|
|
commands:
|
|
- cd findadispo/frontend
|
|
- npm ci
|
|
- npm run build
|
|
|
|
build-findagram:
|
|
image: node:20
|
|
commands:
|
|
- cd findagram/frontend
|
|
- npm ci
|
|
- npm run build
|
|
|
|
# Docker builds - only on master
|
|
docker-backend:
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
registry: code.cannabrands.app
|
|
repo: code.cannabrands.app/creationshop/dispensary-scraper
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
dockerfile: backend/Dockerfile
|
|
context: backend
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
platforms: linux/amd64
|
|
provenance: false
|
|
when:
|
|
branch: master
|
|
event: push
|
|
|
|
docker-cannaiq:
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
registry: code.cannabrands.app
|
|
repo: code.cannabrands.app/creationshop/cannaiq-frontend
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
dockerfile: cannaiq/Dockerfile
|
|
context: cannaiq
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
platforms: linux/amd64
|
|
provenance: false
|
|
when:
|
|
branch: master
|
|
event: push
|
|
|
|
docker-findadispo:
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
registry: code.cannabrands.app
|
|
repo: code.cannabrands.app/creationshop/findadispo-frontend
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
dockerfile: findadispo/frontend/Dockerfile
|
|
context: findadispo/frontend
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
platforms: linux/amd64
|
|
provenance: false
|
|
when:
|
|
branch: master
|
|
event: push
|
|
|
|
docker-findagram:
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
registry: code.cannabrands.app
|
|
repo: code.cannabrands.app/creationshop/findagram-frontend
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
dockerfile: findagram/frontend/Dockerfile
|
|
context: findagram/frontend
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
platforms: linux/amd64
|
|
provenance: false
|
|
when:
|
|
branch: master
|
|
event: push
|
|
|
|
# Deploy to Kubernetes
|
|
deploy:
|
|
image: bitnami/kubectl:latest
|
|
environment:
|
|
KUBECONFIG_CONTENT:
|
|
from_secret: kubeconfig_data
|
|
commands:
|
|
- echo "Deploying to Kubernetes..."
|
|
- mkdir -p ~/.kube
|
|
- echo "$KUBECONFIG_CONTENT" | tr -d '[:space:]' | base64 -d > ~/.kube/config
|
|
- chmod 600 ~/.kube/config
|
|
- kubectl set image deployment/scraper scraper=code.cannabrands.app/creationshop/dispensary-scraper:${CI_COMMIT_SHA:0:8} -n dispensary-scraper
|
|
- kubectl set image deployment/scraper-worker scraper-worker=code.cannabrands.app/creationshop/dispensary-scraper:${CI_COMMIT_SHA:0:8} -n dispensary-scraper
|
|
- kubectl set image deployment/cannaiq-frontend cannaiq-frontend=code.cannabrands.app/creationshop/cannaiq-frontend:${CI_COMMIT_SHA:0:8} -n dispensary-scraper
|
|
- kubectl set image deployment/findadispo-frontend findadispo-frontend=code.cannabrands.app/creationshop/findadispo-frontend:${CI_COMMIT_SHA:0:8} -n dispensary-scraper
|
|
- kubectl set image deployment/findagram-frontend findagram-frontend=code.cannabrands.app/creationshop/findagram-frontend:${CI_COMMIT_SHA:0:8} -n dispensary-scraper
|
|
- kubectl rollout status deployment/scraper -n dispensary-scraper --timeout=300s
|
|
- kubectl rollout status deployment/scraper-worker -n dispensary-scraper --timeout=300s
|
|
- kubectl rollout status deployment/cannaiq-frontend -n dispensary-scraper --timeout=120s
|
|
- kubectl rollout status deployment/findadispo-frontend -n dispensary-scraper --timeout=120s
|
|
- kubectl rollout status deployment/findagram-frontend -n dispensary-scraper --timeout=120s
|
|
- echo "All deployments complete!"
|
|
when:
|
|
branch: master
|
|
event: push
|