ci: deploy to prod
This commit is contained in:
parent
a0fd2e206e
commit
2b6e3251ea
@ -1,46 +1,17 @@
|
|||||||
include:
|
include:
|
||||||
- project: "devops/pena-continuous-integration"
|
- project: "devops/pena-continuous-integration"
|
||||||
file: "/templates/docker/build-template.gitlab-ci.yml"
|
file: "/templates/docker/build-template.gitlab-ci.yml"
|
||||||
- project: "devops/pena-continuous-integration"
|
|
||||||
file: "/templates/docker/clean-template.gitlab-ci.yml"
|
|
||||||
- project: "devops/pena-continuous-integration"
|
- project: "devops/pena-continuous-integration"
|
||||||
file: "/templates/docker/deploy-template.gitlab-ci.yml"
|
file: "/templates/docker/deploy-template.gitlab-ci.yml"
|
||||||
stages:
|
stages:
|
||||||
- clean
|
|
||||||
- build
|
- build
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
clear-old-images:
|
|
||||||
extends: .clean_template
|
|
||||||
variables:
|
|
||||||
STAGING_BRANCH: "main"
|
|
||||||
PRODUCTION_BRANCH: "main"
|
|
||||||
image:
|
|
||||||
name: docker/compose:1.28.0
|
|
||||||
entrypoint: [""]
|
|
||||||
before_script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- docker images
|
|
||||||
script:
|
|
||||||
- docker system prune -af
|
|
||||||
|
|
||||||
build-app:
|
build-app:
|
||||||
extends: .build_template
|
extends: .build_template
|
||||||
variables:
|
|
||||||
DOCKER_BUILD_PATH: "build/Dockerfile"
|
|
||||||
PRODUCTION_BRANCH: main
|
|
||||||
STAGING_BRANCH: "main"
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH
|
|
||||||
|
|
||||||
script:
|
|
||||||
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID --build-arg GITLAB_TOKEN=$GITLAB_TOKEN $CI_PROJECT_DIR
|
|
||||||
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
|
|
||||||
|
|
||||||
deploy-to-staging:
|
deploy-to-staging:
|
||||||
|
tags:
|
||||||
|
- prod
|
||||||
extends: .deploy_template
|
extends: .deploy_template
|
||||||
variables:
|
|
||||||
DEPLOY_TO: "staging"
|
|
||||||
BRANCH: "main"
|
|
||||||
|
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
FROM golang:alpine as build
|
FROM penahub.gitlab.yandexcloud.net:5050/devops/dockerhub-backup/golang as build
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk add git
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app ./cmd/feedback/main.go
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app ./cmd/feedback/main.go
|
||||||
|
|
||||||
FROM alpine as prod
|
FROM penahub.gitlab.yandexcloud.net:5050/devops/dockerhub-backup/alpine as prod
|
||||||
COPY --from=build /app/app .
|
COPY --from=build /app/app .
|
||||||
COPY ./assets/template_msg.txt ./template.txt
|
COPY ./assets/template_msg.txt ./template.txt
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
17
deployments/main/docker-compose.yaml
Normal file
17
deployments/main/docker-compose.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
services:
|
||||||
|
feedback:
|
||||||
|
container_name: feedback
|
||||||
|
restart: unless-stopped
|
||||||
|
tty: true
|
||||||
|
hostname: feedback
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
image: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||||
|
ports:
|
||||||
|
- 8006:80
|
||||||
|
environment:
|
||||||
|
- HTTP_ADDRESS=:80
|
||||||
|
- HTTP_RATE_LIMIT=30s
|
||||||
|
- TEMPLATE_PATH=template.txt
|
||||||
|
- TELEGRAM_CHANNEL_ID=-1001761855840
|
||||||
|
- TELEGRAM_TOKEN=6112841016:AAH2nO1c6mqfMewBvHwdXCDp5PCclOuc99s
|
@ -6,7 +6,7 @@ services:
|
|||||||
hostname: feedback
|
hostname: feedback
|
||||||
networks:
|
networks:
|
||||||
- default
|
- default
|
||||||
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||||
ports:
|
ports:
|
||||||
- 8006:80
|
- 8006:80
|
||||||
environment:
|
environment:
|
||||||
|
Loading…
Reference in New Issue
Block a user