initial wcag-ada
This commit is contained in:
parent
042b8cb83a
commit
d52cfe7de2
112 changed files with 9069 additions and 0 deletions
181
apps/wcag-ada/.gitlab-ci.yml
Normal file
181
apps/wcag-ada/.gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
stages:
|
||||
- build
|
||||
- test
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
REGISTRY: $CI_REGISTRY
|
||||
API_IMAGE: $CI_REGISTRY_IMAGE/api
|
||||
WORKER_IMAGE: $CI_REGISTRY_IMAGE/worker
|
||||
DASHBOARD_IMAGE: $CI_REGISTRY_IMAGE/dashboard
|
||||
|
||||
# Cache node_modules between jobs
|
||||
.node_cache: &node_cache
|
||||
cache:
|
||||
key: ${CI_COMMIT_REF_SLUG}
|
||||
paths:
|
||||
- node_modules/
|
||||
- apps/wcag-ada/*/node_modules/
|
||||
- .bun/
|
||||
|
||||
# Docker login before each job
|
||||
before_script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
|
||||
# Build stage
|
||||
build:api:
|
||||
stage: build
|
||||
image: docker:24-dind
|
||||
services:
|
||||
- docker:24-dind
|
||||
script:
|
||||
- docker build -f apps/wcag-ada/api/Dockerfile -t $API_IMAGE:$CI_COMMIT_SHA .
|
||||
- docker tag $API_IMAGE:$CI_COMMIT_SHA $API_IMAGE:latest
|
||||
- docker push $API_IMAGE:$CI_COMMIT_SHA
|
||||
- docker push $API_IMAGE:latest
|
||||
only:
|
||||
- main
|
||||
- develop
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
build:worker:
|
||||
stage: build
|
||||
image: docker:24-dind
|
||||
services:
|
||||
- docker:24-dind
|
||||
script:
|
||||
- docker build -f apps/wcag-ada/worker/Dockerfile -t $WORKER_IMAGE:$CI_COMMIT_SHA .
|
||||
- docker tag $WORKER_IMAGE:$CI_COMMIT_SHA $WORKER_IMAGE:latest
|
||||
- docker push $WORKER_IMAGE:$CI_COMMIT_SHA
|
||||
- docker push $WORKER_IMAGE:latest
|
||||
only:
|
||||
- main
|
||||
- develop
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
build:dashboard:
|
||||
stage: build
|
||||
image: docker:24-dind
|
||||
services:
|
||||
- docker:24-dind
|
||||
script:
|
||||
- docker build -f apps/wcag-ada/dashboard/Dockerfile -t $DASHBOARD_IMAGE:$CI_COMMIT_SHA .
|
||||
- docker tag $DASHBOARD_IMAGE:$CI_COMMIT_SHA $DASHBOARD_IMAGE:latest
|
||||
- docker push $DASHBOARD_IMAGE:$CI_COMMIT_SHA
|
||||
- docker push $DASHBOARD_IMAGE:latest
|
||||
only:
|
||||
- main
|
||||
- develop
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
# Test stage
|
||||
test:unit:
|
||||
stage: test
|
||||
image: oven/bun:1-alpine
|
||||
<<: *node_cache
|
||||
before_script:
|
||||
- cd apps/wcag-ada
|
||||
- bun install
|
||||
script:
|
||||
- bun test
|
||||
only:
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
test:lint:
|
||||
stage: test
|
||||
image: oven/bun:1-alpine
|
||||
<<: *node_cache
|
||||
before_script:
|
||||
- cd apps/wcag-ada
|
||||
- bun install
|
||||
script:
|
||||
- bun run lint
|
||||
only:
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
test:typecheck:
|
||||
stage: test
|
||||
image: oven/bun:1-alpine
|
||||
<<: *node_cache
|
||||
before_script:
|
||||
- cd apps/wcag-ada
|
||||
- bun install
|
||||
script:
|
||||
- bun run typecheck
|
||||
only:
|
||||
- merge_requests
|
||||
tags:
|
||||
- docker
|
||||
|
||||
# Deploy to staging
|
||||
deploy:staging:
|
||||
stage: deploy
|
||||
image: bitnami/kubectl:latest
|
||||
before_script:
|
||||
- kubectl config set-cluster k8s --server="$KUBE_URL" --insecure-skip-tls-verify=true
|
||||
- kubectl config set-credentials gitlab --token="$KUBE_TOKEN"
|
||||
- kubectl config set-context default --cluster=k8s --user=gitlab
|
||||
- kubectl config use-context default
|
||||
script:
|
||||
- kubectl apply -f apps/wcag-ada/k8s/namespace.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/configmap.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/secrets.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/postgres.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/redis.yaml
|
||||
- |
|
||||
kubectl set image deployment/wcag-ada-api api=$API_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
kubectl set image deployment/wcag-ada-worker worker=$WORKER_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
kubectl set image deployment/wcag-ada-dashboard dashboard=$DASHBOARD_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-api -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-worker -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-dashboard -n wcag-ada
|
||||
environment:
|
||||
name: staging
|
||||
url: https://staging.wcag-ada.example.com
|
||||
only:
|
||||
- develop
|
||||
tags:
|
||||
- docker
|
||||
|
||||
# Deploy to production
|
||||
deploy:production:
|
||||
stage: deploy
|
||||
image: bitnami/kubectl:latest
|
||||
before_script:
|
||||
- kubectl config set-cluster k8s --server="$KUBE_URL_PROD" --insecure-skip-tls-verify=true
|
||||
- kubectl config set-credentials gitlab --token="$KUBE_TOKEN_PROD"
|
||||
- kubectl config set-context default --cluster=k8s --user=gitlab
|
||||
- kubectl config use-context default
|
||||
script:
|
||||
- kubectl apply -f apps/wcag-ada/k8s/namespace.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/configmap.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/secrets.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/postgres.yaml
|
||||
- kubectl apply -f apps/wcag-ada/k8s/redis.yaml
|
||||
- |
|
||||
kubectl set image deployment/wcag-ada-api api=$API_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
kubectl set image deployment/wcag-ada-worker worker=$WORKER_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
kubectl set image deployment/wcag-ada-dashboard dashboard=$DASHBOARD_IMAGE:$CI_COMMIT_SHA -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-api -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-worker -n wcag-ada
|
||||
- kubectl rollout status deployment/wcag-ada-dashboard -n wcag-ada
|
||||
environment:
|
||||
name: production
|
||||
url: https://wcag-ada.example.com
|
||||
only:
|
||||
- main
|
||||
when: manual
|
||||
tags:
|
||||
- docker
|
||||
Loading…
Add table
Add a link
Reference in a new issue