feat: add ci to deploy to staging
This commit is contained in:
parent
37888d528a
commit
0580c3658f
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
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"
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
build-app:
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- gobuild
|
||||||
|
variables:
|
||||||
|
DOCKER_BUILD_PATH: "./Dockerfile"
|
||||||
|
STAGING_BRANCH: "staging"
|
||||||
|
PRODUCTION_BRANCH: "main"
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH
|
||||||
|
when: on_success
|
||||||
|
before_script:
|
||||||
|
- echo PRODUCTION_BRANCH = $PRODUCTION_BRANCH
|
||||||
|
- echo STAGING_BRANCH = $STAGING_BRANCH
|
||||||
|
- echo CI_REGISTRY = $CI_REGISTRY
|
||||||
|
- echo CI_REGISTRY_USER = $CI_REGISTRY_USER
|
||||||
|
- echo CI_PROJECT_DIR = $CI_PROJECT_DIR
|
||||||
|
- echo CI_REGISTRY_IMAGE = $CI_REGISTRY_IMAGE
|
||||||
|
- echo CI_COMMIT_REF_SLUG = $CI_COMMIT_REF_SLUG
|
||||||
|
- echo DOCKER_BUILD_PATH = $DOCKER_BUILD_PATH
|
||||||
|
- echo CI_PIPELINE_ID = $CI_PIPELINE_ID
|
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- docker build -t $CI_REGISTRY_IMAGE/$CI_COMMIT_BRANCH:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID --build-arg GITLAB_TOKEN=$GITLAB_TOKEN $CI_PROJECT_DIR
|
||||||
|
- docker push $CI_REGISTRY_IMAGE/$CI_COMMIT_BRANCH:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||||
|
|
||||||
|
|
||||||
|
deploy-to-staging:
|
||||||
|
stage: deploy
|
||||||
|
extends: .deploy_template
|
||||||
|
variables:
|
||||||
|
DEPLOY_TO: "staging"
|
||||||
|
BRANCH: "staging"
|
||||||
|
rules:
|
||||||
|
- if: "$CI_COMMIT_BRANCH == $BRANCH"
|
||||||
|
after_script:
|
||||||
|
- ls
|
||||||
|
|
25
Dockerfile
Normal file
25
Dockerfile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# BUILD
|
||||||
|
FROM golang:1.20.3-alpine AS build
|
||||||
|
|
||||||
|
# Update packages and clear cache
|
||||||
|
RUN apk add --no-cache curl
|
||||||
|
# Set work directory
|
||||||
|
WORKDIR /app
|
||||||
|
# Create binary directory
|
||||||
|
RUN mkdir /app/bin -p
|
||||||
|
# Add main files to app
|
||||||
|
ADD . .
|
||||||
|
# Build app
|
||||||
|
RUN GOOS=linux go build -o bin ./...
|
||||||
|
|
||||||
|
# PRODUCTION
|
||||||
|
FROM alpine:3.18.3 AS production
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apk --no-cache add ca-certificates
|
||||||
|
# Create home directory
|
||||||
|
WORKDIR /app
|
||||||
|
# Copy build file
|
||||||
|
COPY --from=build /app/bin/codeword ./app
|
||||||
|
# CMD
|
||||||
|
CMD ["./app"]
|
37
deployments/staging/docker-compose.yaml
Normal file
37
deployments/staging/docker-compose.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
version: '3.3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
codeword:
|
||||||
|
hostname: codeword
|
||||||
|
container_name: codeword
|
||||||
|
image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||||
|
tty: true
|
||||||
|
environment:
|
||||||
|
APP_NAME: 'codeword'
|
||||||
|
HTTP_HOST: '0.0.0.0'
|
||||||
|
HTTP_PORT: '3000'
|
||||||
|
MONGO_HOST: '10.6.0.11'
|
||||||
|
MONGO_PORT: '27017'
|
||||||
|
MONGO_USER: 'auth-service-user'
|
||||||
|
MONGO_PASSWORD: 'LFYFpTvqtxSzXDJV'
|
||||||
|
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.6.0.23:6379'
|
||||||
|
REDIS_PASS: 'Redalert2'
|
||||||
|
REDIS_DB: 3
|
||||||
|
SMTP_API_URL: 'connect.mailclient.bz:587'
|
||||||
|
SMTP_HOST: 'connect.mailclient.bz'
|
||||||
|
SMTP_PORT: '587'
|
||||||
|
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/recover/'
|
||||||
|
AUTH_EXCHANGE_URL: 'http://10.6.0.11:59300/'
|
||||||
|
ports:
|
||||||
|
- 59664:3000
|
||||||
|
networks:
|
||||||
|
- default
|
Loading…
Reference in New Issue
Block a user