ci: add deployment rules

This commit is contained in:
skeris 2025-01-04 16:35:42 +03:00
parent 139b0bc571
commit daa234acac
5 changed files with 59 additions and 75 deletions

@ -0,0 +1,24 @@
name: Deploy
run-name: ${{ gitea.actor }} build image and push to container registry
on:
push:
branches:
- 'main'
- 'staging'
jobs:
CreateImage:
runs-on: [hubstaging]
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
with:
runner: hubstaging
secrets:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
DeployService:
runs-on: [hubstaging]
needs: CreateImage
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.4-p7
with:
runner: hubstaging

14
.gitea/workflows/lint.yml Normal file

@ -0,0 +1,14 @@
name: Lint
run-name: ${{ gitea.actor }} produce linting
on:
push:
branches:
- 'dev'
jobs:
Lint:
runs-on: [hubstaging]
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/lint.yml@v1.1.2
with:
runner: hubstaging

@ -1,38 +0,0 @@
include:
- project: "devops/pena-continuous-integration"
file: "/templates/docker/build-template.gitlab-ci.yml"
- project: "devops/pena-continuous-integration"
file: "/templates/docker/deploy-template.gitlab-ci.yml"
- project: "devops/pena-continuous-integration"
file: "/templates/docker/golint.gitlab-ci.yml"
- project: "devops/pena-continuous-integration"
file: "/templates/docker/service-discovery.gitlab-ci.yml"
stages:
- lint
- build
- deploy
- service-discovery
lint:
extends: .golint_template
build-app:
extends: .build_template
deploy-to-staging:
rules:
- if: "$CI_COMMIT_BRANCH == $STAGING_BRANCH"
extends: .deploy_template
tags:
- staging
extends: .deploy_template
deploy-to-prod:
rules:
- if: "$CI_COMMIT_BRANCH == $PRODUCTION_BRANCH"
tags:
- prod
extends: .deploy_template
service-discovery:
extends: .sd_artefacts_template

@ -1,5 +1,5 @@
# BUILD # BUILD
FROM penahub.gitlab.yandexcloud.net:5050/devops/dockerhub-backup/golang AS build FROM gitea.pena/penadevops/container-images/golang:main as build
# Update packages and clear cache # Update packages and clear cache
RUN apk add --no-cache curl RUN apk add --no-cache curl
@ -10,14 +10,12 @@ RUN mkdir /app/bin -p
# Add main files to app # Add main files to app
RUN apk add git RUN apk add git
ADD . . ADD . .
ENV GOPRIVATE=penahub.gitlab.yandexcloud.net/backend/penahub_common
RUN git config --global url."https://buildToken:glpat-axA8ttckx3aPf_xd2Dym@penahub.gitlab.yandexcloud.net/".insteadOf "https://penahub.gitlab.yandexcloud.net/"
RUN go mod download RUN go mod download
# Build app # Build app
RUN GOOS=linux go build -o bin ./... RUN GOOS=linux go build -o bin ./...
# PRODUCTION # PRODUCTION
FROM penahub.gitlab.yandexcloud.net:5050/devops/dockerhub-backup/alpine AS production FROM gitea.pena/penadevops/container-images/alpine:main
# Install packages # Install packages
RUN apk --no-cache add ca-certificates RUN apk --no-cache add ca-certificates

@ -2,48 +2,34 @@ version: '3.3'
services: services:
codewordv1.0.0: codewordv1.0.0:
hostname: codewordv1.0.0 image: gitea.pena:3000/penaside/codeword/staging:$GITHUB_RUN_NUMBER
container_name: codewordv1.0.0
image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
tty: true tty: true
environment: environment:
APP_NAME: 'codeword' APP_NAME: 'codeword'
HTTP_CLIENT_HOST: '0.0.0.0' CLIENT_HTTP_URL: '0.0.0.0:3000'
HTTP_CLIENT_PORT: '3000' ADMIN_HTTP_URL: '0.0.0.0:3001'
HTTP_ADMIN_HOST: '0.0.0.0' MONGO_URL: mongodb://auth-service-user:LFYFpTvqtxSzXDJV@10.7.0.6:27017/?authSource=auth
HTTP_ADMIN_PORT: '3001' ENCRYPT_PUBLIC_KEY: "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEbnIvjIMle4rqVol6K2XUqOxHy1KJoNoZdKJrRUPKL4=\n-----END PUBLIC KEY-----"
MONGO_HOST: '10.8.0.6' ENCRYPT_PRIVATE_KEY: "-----BEGIN PRIVATE KEY-----\nMC4CAQAwBQYDK2VwBCIEIKn0BKwF3vZvODgWAnUIwQhd8de5oZhY48gc23EWfrfs\n-----END PRIVATE KEY-----"
MONGO_PORT: '27017' ENCRYPT_SIGN_SECRET: 'pena-auth-microservice-group'
MONGO_USER: 'auth-service-user' REDIS_HOST: '10.7.0.6:6379'
MONGO_PASSWORD: 'LFYFpTvqtxSzXDJV' REDIS_PASSWORD: 'Redalert2'
MONGO_DB: 'auth'
MONGO_AUTH: 'auth'
PUBLIC_CURVE_KEY: "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEbnIvjIMle4rqVol6K2XUqOxHy1KJoNoZdKJrRUPKL4=\n-----END PUBLIC KEY-----"
PRIVATE_CURVE_KEY: "-----BEGIN PRIVATE KEY-----\nMC4CAQAwBQYDK2VwBCIEIKn0BKwF3vZvODgWAnUIwQhd8de5oZhY48gc23EWfrfs\n-----END PRIVATE KEY-----"
SIGN_SECRET: 'pena-auth-microservice-group'
REDIS_ADDR: '10.8.0.5:6379'
REDIS_PASS: 'Redalert2'
REDIS_DB: 3 REDIS_DB: 3
SMTP_API_URL: 'https://api.smtp.bz/v1/smtp/send' API_URL: 'https://api.smtp.bz/v1/smtp/send'
SMTP_HOST: 'connect.mailclient.bz' MAIL_API_KEY: 'P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev'
SMTP_PORT: '587' MAIL_SENDER: 'noreply@mailing.pena.digital'
SMTP_UNAME: 'kotilion.95@gmail.com'
SMTP_PASS: 'vWwbCSg4bf0p'
SMTP_API_KEY: 'P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev'
SMTP_SENDER: 'noreply@mailing.pena.digital'
DEFAULT_REDIRECTION_URL: 'https://shub.pena.digital/' DEFAULT_REDIRECTION_URL: 'https://shub.pena.digital/'
AUTH_EXCHANGE_URL: 'http://10.8.0.6:59300/auth/exchange' AUTH_EXCHANGE_URL: 'http://10.7.0.6:59300/auth/exchange'
RECOVERY_URL: 'https://shub.pena.digital/codeword/v1.0.0/recover/' RECOVERY_URL: 'https://shub.pena.digital/codeword/v1.0.0/recover/'
JWT_AUDIENCE: 'pena' JWT_AUDIENCE: 'pena'
JWT_ISSUER: 'pena-auth-service' JWT_ISSUER: 'pena-auth-service'
JWT_PUBLIC_KEY: $JWT_PUBLIC_KEY JWT_PUBLIC_KEY: $JWT_PUBLIC_KEY
KAFKA_BROKERS: "10.8.0.6:9092" KAFKA_BROKERS: "10.7.0.6:9092"
KAFKA_TOPIC_TARIFF: "tariffs" KAFKA_TOPIC_TARIFF: "tariffs"
DISCOUNT_ADDRESS: "10.8.0.6:9001" DISCOUNT_ADDRESS: "10.7.0.6:9001"
GRPC_HOST: "0.0.0.0" GRPC_HOST: "0.0.0.0"
TRASH_LOG_HOST: "10.8.0.15:7113" TRASH_LOG_HOST: "10.7.0.5:7113"
MODULE_LOGGER: "codeword-staging"
ports: ports:
- 10.8.0.6:19100:3000 - 10.7.0.6:19100:3000
- 10.8.0.6:29100:3001 - 10.7.0.6:29100:3001
- 10.8.0.6:39100:9000 - 10.7.0.6:39100:9000