ci: deploy to prod

This commit is contained in:
skeris 2024-01-26 01:24:10 +03:00
parent a0fd2e206e
commit 2b6e3251ea
4 changed files with 22 additions and 35 deletions

@ -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

@ -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: