ci: Move pipeline to .woodpecker/ci.yml
This commit is contained in:
137
.woodpecker/ci.yml
Normal file
137
.woodpecker/ci.yml
Normal file
@@ -0,0 +1,137 @@
|
||||
variables:
|
||||
- &node_image 'node:20'
|
||||
- &docker_image 'plugins/docker'
|
||||
|
||||
# CI Pipeline - runs on all branches
|
||||
pipeline:
|
||||
# Build checks run in parallel
|
||||
typecheck-backend:
|
||||
image: *node_image
|
||||
commands:
|
||||
- cd backend
|
||||
- npm ci
|
||||
- npx tsc --noEmit || true # TODO: Remove || true once legacy errors fixed
|
||||
when:
|
||||
event: [push, pull_request]
|
||||
|
||||
build-cannaiq:
|
||||
image: *node_image
|
||||
commands:
|
||||
- cd cannaiq
|
||||
- npm ci
|
||||
- npx tsc --noEmit
|
||||
- npm run build
|
||||
when:
|
||||
event: [push, pull_request]
|
||||
|
||||
build-findadispo:
|
||||
image: *node_image
|
||||
commands:
|
||||
- cd findadispo/frontend
|
||||
- npm ci
|
||||
- npm run build
|
||||
when:
|
||||
event: [push, pull_request]
|
||||
|
||||
build-findagram:
|
||||
image: *node_image
|
||||
commands:
|
||||
- cd findagram/frontend
|
||||
- npm ci
|
||||
- npm run build
|
||||
when:
|
||||
event: [push, pull_request]
|
||||
|
||||
# Docker builds - only on master
|
||||
docker-backend:
|
||||
image: *docker_image
|
||||
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
|
||||
when:
|
||||
branch: master
|
||||
event: push
|
||||
|
||||
docker-cannaiq:
|
||||
image: *docker_image
|
||||
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
|
||||
when:
|
||||
branch: master
|
||||
event: push
|
||||
|
||||
docker-findadispo:
|
||||
image: *docker_image
|
||||
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
|
||||
when:
|
||||
branch: master
|
||||
event: push
|
||||
|
||||
docker-findagram:
|
||||
image: *docker_image
|
||||
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
|
||||
when:
|
||||
branch: master
|
||||
event: push
|
||||
|
||||
# Deploy to Kubernetes - only after docker builds on master
|
||||
deploy:
|
||||
image: bitnami/kubectl:latest
|
||||
commands:
|
||||
- echo "$KUBECONFIG_DATA" | base64 -d > /tmp/kubeconfig
|
||||
- export KUBECONFIG=/tmp/kubeconfig
|
||||
- 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
|
||||
secrets: [kubeconfig_data]
|
||||
when:
|
||||
branch: master
|
||||
event: push
|
||||
Reference in New Issue
Block a user