Feature/cicd See merge request spatial/postamates_frontend!5dev
commit
68ef68c06f
@ -1,4 +1,5 @@
|
||||
.gitignore
|
||||
.gitlab-ci.yml
|
||||
README.md
|
||||
.git/*
|
||||
.git
|
||||
docker-compose.yml
|
||||
|
||||
@ -1,48 +1,98 @@
|
||||
---
|
||||
variables:
|
||||
APP_NAME: postamates_front
|
||||
IMAGE_NAME: $CI_REGISTRY_IMAGE
|
||||
DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_SLUG}.${CI_COMMIT_SHORT_SHA}
|
||||
RELEASE_DOCKER_IMAGE_TAG: ${YC_CONTAINER_REGISTRY}/${CI_PROJECT_NAME}:${CI_COMMIT_TAG}
|
||||
DEPLOY_KUBER_NAMESPACE: spatial
|
||||
|
||||
stages:
|
||||
- build
|
||||
- deploy
|
||||
|
||||
.build: &build-common
|
||||
build-docker:
|
||||
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
|
||||
- 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:
|
||||
<<: *build-common
|
||||
variables:
|
||||
IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
||||
REACT_APP_DOMAIN_URL: https://$DOMAIN/
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "sst_main"
|
||||
deploy-dev-kuber:
|
||||
extends: .deploy_base_kuber
|
||||
variables:
|
||||
INGRESS_HOST: "postnet.dev.selftech.ru"
|
||||
tags:
|
||||
- docker
|
||||
environment:
|
||||
name: dev
|
||||
|
||||
.deploy: &deploy-common
|
||||
.deploy_base_kuber:
|
||||
image: ${YC_CONTAINER_REGISTRY}/public/helm-kubectl-git:1.0.0
|
||||
stage: deploy
|
||||
before_script:
|
||||
- sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
|
||||
- sudo docker pull $IMAGE_NAME:$IMAGE_TAG
|
||||
- KUBE_CONFIG=`echo ${CI_ENVIRONMENT_NAME}_kubeconfig`
|
||||
- mkdir -p ${HOME}/.kube
|
||||
- 'cat ${!KUBE_CONFIG} > ${HOME}/.kube/config'
|
||||
- chmod -R 700 ${HOME}/.kube
|
||||
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
|
||||
- sed -i "s|DEPLOY_IMAGE_TAG|${DOCKER_IMAGE_TAG}|g" ./deploy/front.yaml
|
||||
- sed -i "s|ADDRESS_INGRESS_HOST|${INGRESS_HOST}|g" ./deploy/front.yaml
|
||||
- kubectl apply -f ./deploy/front.yaml
|
||||
dependencies: []
|
||||
artifacts:
|
||||
paths:
|
||||
- ./deploy/front.yaml
|
||||
expire_in: 1 week
|
||||
when: manual
|
||||
|
||||
deploy-test-job:
|
||||
<<: *deploy-common
|
||||
variables:
|
||||
IMAGE_TAG: $CI_COMMIT_SHORT_SHA
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "sst_main"
|
||||
# variables:
|
||||
# APP_NAME: postamates_front
|
||||
# IMAGE_NAME: $CI_REGISTRY_IMAGE
|
||||
|
||||
# stages:
|
||||
# - 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