Feature/cicd See merge request spatial/postamates_frontend!5dev
commit
68ef68c06f
@ -1,4 +1,5 @@
|
|||||||
.gitignore
|
.gitignore
|
||||||
.gitlab-ci.yml
|
.gitlab-ci.yml
|
||||||
README.md
|
README.md
|
||||||
.git/*
|
.git
|
||||||
|
docker-compose.yml
|
||||||
|
|||||||
@ -1,48 +1,98 @@
|
|||||||
|
---
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: postamates_front
|
DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_SLUG}.${CI_COMMIT_SHORT_SHA}
|
||||||
IMAGE_NAME: $CI_REGISTRY_IMAGE
|
RELEASE_DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_TAG}
|
||||||
|
DEPLOY_KUBER_NAMESPACE: spatial
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
.build: &build-common
|
build-docker:
|
||||||
stage: build
|
stage: build
|
||||||
before_script:
|
|
||||||
- sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
|
|
||||||
script:
|
|
||||||
- sudo docker pull $IMAGE_NAME:builder || true
|
|
||||||
- sudo docker pull $IMAGE_NAME:$CI_COMMIT_SHORT_SHA || true
|
|
||||||
- sudo docker build --cache-from $IMAGE_NAME:builder --memory=2000m --memory-swap=3000m --target builder --tag $IMAGE_NAME:builder .
|
|
||||||
- sudo docker push $IMAGE_NAME:builder
|
|
||||||
- sudo docker build --cache-from $IMAGE_NAME:builder --memory=2000m --memory-swap=3000m --tag $IMAGE_NAME:$IMAGE_TAG --build-arg REACT_APP_DOMAIN_URL=$REACT_APP_DOMAIN_URL --build-arg BUILDKIT_INLINE_CACHE=1 .
|
|
||||||
- sudo docker push $IMAGE_NAME:$IMAGE_TAG
|
|
||||||
tags:
|
tags:
|
||||||
- deploy-remote
|
- shell
|
||||||
|
script:
|
||||||
|
- >
|
||||||
|
docker build
|
||||||
|
--build-arg YC_CONTAINER_REGISTRY=${YC_CONTAINER_REGISTRY}
|
||||||
|
--build-arg VITE_API_URL="https://postnet.dev.selftech.ru"
|
||||||
|
-t ${DOCKER_IMAGE_TAG} .
|
||||||
|
- docker push ${DOCKER_IMAGE_TAG}
|
||||||
|
|
||||||
build-test-job:
|
deploy-dev-kuber:
|
||||||
<<: *build-common
|
extends: .deploy_base_kuber
|
||||||
variables:
|
variables:
|
||||||
IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
INGRESS_HOST: "postnet.dev.selftech.ru"
|
||||||
REACT_APP_DOMAIN_URL: https://$DOMAIN/
|
tags:
|
||||||
rules:
|
- docker
|
||||||
- if: $CI_COMMIT_BRANCH == "sst_main"
|
environment:
|
||||||
|
name: dev
|
||||||
|
|
||||||
.deploy: &deploy-common
|
.deploy_base_kuber:
|
||||||
|
image: ${YC_CONTAINER_REGISTRY}/public/helm-kubectl-git:1.0.0
|
||||||
stage: deploy
|
stage: deploy
|
||||||
before_script:
|
before_script:
|
||||||
- sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
|
- KUBE_CONFIG=`echo ${CI_ENVIRONMENT_NAME}_kubeconfig`
|
||||||
- sudo docker pull $IMAGE_NAME:$IMAGE_TAG
|
- mkdir -p ${HOME}/.kube
|
||||||
|
- 'cat ${!KUBE_CONFIG} > ${HOME}/.kube/config'
|
||||||
|
- chmod -R 700 ${HOME}/.kube
|
||||||
script:
|
script:
|
||||||
- id=$(sudo docker create $IMAGE_NAME:$IMAGE_TAG)
|
- sed -i "s|DEPLOY_IMAGE_TAG|${DOCKER_IMAGE_TAG}|g" ./deploy/front.yaml
|
||||||
- sudo docker cp $id:/dist/. /home/toren332/sst_postamates_frontend/dist
|
- sed -i "s|ADDRESS_INGRESS_HOST|${INGRESS_HOST}|g" ./deploy/front.yaml
|
||||||
- sudo docker rm -v $id
|
- kubectl apply -f ./deploy/front.yaml
|
||||||
tags:
|
dependencies: []
|
||||||
- deploy-remote
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ./deploy/front.yaml
|
||||||
|
expire_in: 1 week
|
||||||
|
when: manual
|
||||||
|
|
||||||
deploy-test-job:
|
# variables:
|
||||||
<<: *deploy-common
|
# APP_NAME: postamates_front
|
||||||
variables:
|
# IMAGE_NAME: $CI_REGISTRY_IMAGE
|
||||||
IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
|
||||||
rules:
|
# stages:
|
||||||
- if: $CI_COMMIT_BRANCH == "sst_main"
|
# - build
|
||||||
|
# - deploy
|
||||||
|
|
||||||
|
# .build: &build-common
|
||||||
|
# stage: build
|
||||||
|
# before_script:
|
||||||
|
# - sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
|
||||||
|
# script:
|
||||||
|
# - sudo docker pull $IMAGE_NAME:builder || true
|
||||||
|
# - sudo docker pull $IMAGE_NAME:$CI_COMMIT_SHORT_SHA || true
|
||||||
|
# - sudo docker build --cache-from $IMAGE_NAME:builder --memory=2000m --memory-swap=3000m --target builder --tag $IMAGE_NAME:builder .
|
||||||
|
# - sudo docker push $IMAGE_NAME:builder
|
||||||
|
# - sudo docker build --cache-from $IMAGE_NAME:builder --memory=2000m --memory-swap=3000m --tag $IMAGE_NAME:$IMAGE_TAG --build-arg REACT_APP_DOMAIN_URL=$REACT_APP_DOMAIN_URL --build-arg BUILDKIT_INLINE_CACHE=1 .
|
||||||
|
# - sudo docker push $IMAGE_NAME:$IMAGE_TAG
|
||||||
|
# tags:
|
||||||
|
# - deploy-remote
|
||||||
|
|
||||||
|
# build-test-job:
|
||||||
|
# <<: *build-common
|
||||||
|
# variables:
|
||||||
|
# IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
||||||
|
# REACT_APP_DOMAIN_URL: https://$DOMAIN/
|
||||||
|
# rules:
|
||||||
|
# - if: $CI_COMMIT_BRANCH == "sst_main"
|
||||||
|
|
||||||
|
# .deploy: &deploy-common
|
||||||
|
# stage: deploy
|
||||||
|
# before_script:
|
||||||
|
# - sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
|
||||||
|
# - sudo docker pull $IMAGE_NAME:$IMAGE_TAG
|
||||||
|
# script:
|
||||||
|
# - id=$(sudo docker create $IMAGE_NAME:$IMAGE_TAG)
|
||||||
|
# - sudo docker cp $id:/dist/. /home/toren332/sst_postamates_frontend/dist
|
||||||
|
# - sudo docker rm -v $id
|
||||||
|
# tags:
|
||||||
|
# - deploy-remote
|
||||||
|
|
||||||
|
# deploy-test-job:
|
||||||
|
# <<: *deploy-common
|
||||||
|
# variables:
|
||||||
|
# IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
||||||
|
# rules:
|
||||||
|
# - if: $CI_COMMIT_BRANCH == "sst_main"
|
||||||
|
|||||||
@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: postamates-frontend
|
||||||
|
namespace: spatial
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: postamates-frontend
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: postamates-frontend
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: postamates-frontend
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: DEPLOY_IMAGE_TAG
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "20m"
|
||||||
|
limits:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "20m"
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /nginx-health
|
||||||
|
port: 8888
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /nginx-health
|
||||||
|
port: 8888
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postamates-frontend
|
||||||
|
namespace: spatial
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: postamates-frontend
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: postamates-frontend
|
||||||
|
namespace: spatial
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx-internal
|
||||||
|
rules:
|
||||||
|
- host: ADDRESS_INGRESS_HOST
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: postamates-frontend
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
# error_page 500 502 503 504 /50x.html;
|
||||||
|
# location = /50x.html {
|
||||||
|
# root /usr/share/nginx/html;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# proxy_pass http://127.0.0.1;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# root html;
|
||||||
|
# fastcgi_pass 127.0.0.1:9000;
|
||||||
|
# fastcgi_index index.php;
|
||||||
|
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
||||||
|
# include fastcgi_params;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# deny access to .htaccess files, if Apache's document root
|
||||||
|
# concurs with nginx's one
|
||||||
|
#
|
||||||
|
#location ~ /\.ht {
|
||||||
|
# deny all;
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8888;
|
||||||
|
server_name _;
|
||||||
|
location /nginx-health {
|
||||||
|
return 200 "healthy\n";
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue