ci: deployment rules
This commit is contained in:
parent
80999e87ee
commit
e7ed2346dd
24
.gitea/workflows/deploy.yml
Normal file
24
.gitea/workflows/deploy.yml
Normal file
@ -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
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,74 +0,0 @@
|
||||
stages:
|
||||
- clean
|
||||
- build
|
||||
- deploy
|
||||
|
||||
clean-old:
|
||||
stage: clean
|
||||
image:
|
||||
name: docker/compose:1.28.0
|
||||
entrypoint: [""]
|
||||
allow_failure: true
|
||||
variables:
|
||||
PRODUCTION_BRANCH: main
|
||||
STAGING_BRANCH: "staging"
|
||||
DEPLOY_TO: "staging"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH
|
||||
when: on_success
|
||||
before_script:
|
||||
- echo DEPLOY_TO = $DEPLOY_TO
|
||||
script:
|
||||
- docker-compose -f deployments/$DEPLOY_TO/docker-compose.yaml down --volumes --rmi local
|
||||
|
||||
build-app:
|
||||
stage: build
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [""]
|
||||
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
|
||||
script:
|
||||
- mkdir -p /kaniko/.docker
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
- |
|
||||
/kaniko/executor --context $CI_PROJECT_DIR \
|
||||
--cache=true --cache-repo=$CI_REGISTRY_IMAGE \
|
||||
--dockerfile $CI_PROJECT_DIR/$DOCKER_BUILD_PATH --target production \
|
||||
--destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||
|
||||
deploy-to-staging:
|
||||
stage: deploy
|
||||
image:
|
||||
name: docker/compose:1.28.0
|
||||
entrypoint: [""]
|
||||
variables:
|
||||
DEPLOY_TO: "staging"
|
||||
BRANCH: "staging"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $BRANCH
|
||||
before_script:
|
||||
- echo CI_PROJECT_NAME = $CI_PROJECT_NAME
|
||||
- echo CI_REGISTRY = $CI_REGISTRY
|
||||
- echo REGISTRY_USER = $REGISTRY_USER
|
||||
- echo REGISTRY_TOKEN = $REGISTRY_TOKEN
|
||||
- echo DEPLOY_TO = $DEPLOY_TO
|
||||
- echo BRANCH = $BRANCH
|
||||
script:
|
||||
- docker login -u $REGISTRY_USER -p $REGISTRY_TOKEN $CI_REGISTRY
|
||||
- docker-compose -f deployments/$DEPLOY_TO/docker-compose.yaml up -d
|
34
Dockerfile
34
Dockerfile
@ -1,5 +1,5 @@
|
||||
# BUILD
|
||||
FROM golang:1.20.3-alpine AS build
|
||||
FROM gitea.pena/penadevops/container-images/golang:main as build
|
||||
|
||||
# Update depences
|
||||
RUN apk update && apk add --no-cache curl
|
||||
@ -25,38 +25,8 @@ ADD . /app
|
||||
# Build app
|
||||
RUN GOOS=linux go build -o bin ./...
|
||||
|
||||
|
||||
|
||||
# TEST
|
||||
FROM alpine:latest AS test
|
||||
|
||||
# Install packages
|
||||
RUN apk --no-cache add ca-certificates
|
||||
ENV GO111MODULE=off
|
||||
# Create home directory
|
||||
WORKDIR /app
|
||||
# Copy build file
|
||||
COPY --from=build /app/bin/app ./app
|
||||
# CMD
|
||||
CMD [ "./app" ]
|
||||
|
||||
|
||||
# MIGRATION
|
||||
FROM alpine:latest AS migration
|
||||
|
||||
# Install packages
|
||||
RUN apk --no-cache add ca-certificates
|
||||
# Create home directory
|
||||
WORKDIR /app
|
||||
# Copy migration dir
|
||||
COPY --from=build /app/migrations/test ./migrations
|
||||
# Install migrate tool
|
||||
COPY --from=build /bin/golang-migrate /usr/local/bin
|
||||
|
||||
|
||||
|
||||
# PRODUCTION
|
||||
FROM alpine:latest AS production
|
||||
FROM gitea.pena/penadevops/container-images/alpine:main
|
||||
|
||||
# Install packages
|
||||
RUN apk --no-cache add ca-certificates
|
||||
|
@ -2,27 +2,16 @@ version: "3.3"
|
||||
|
||||
services:
|
||||
cbrfworker-app-staging:
|
||||
hostname: cbrfworker-service-staging
|
||||
container_name: cbrfworker-service-staging
|
||||
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||
image: gitea.pena:3000/penaside/cbrfworker/staging:$GITHUB_RUN_NUMBER
|
||||
tty: true
|
||||
environment:
|
||||
- IS_PRODUCTION=false
|
||||
- DEVELOPMENT=true
|
||||
- APP_NAME=croupierWorkerQuotes
|
||||
- APP_ADDR=0.0.0.0:3131
|
||||
- DATABASE_URI=$DATABASE_URI
|
||||
- DATABASE_URI=mongodb://cbrfuser:uahgeJEGBjgtesdiscountuser@10.7.0.6:27017/cbrf?authSource=cbrf&authMechanism=SCRAM-SHA-1
|
||||
- DATABASE_TABLE=cbrf
|
||||
- COLLECTION_NAME=quote
|
||||
ports:
|
||||
- 10.8.0.6:3131:3131
|
||||
networks:
|
||||
- backend_external
|
||||
- default
|
||||
|
||||
networks:
|
||||
backend_external:
|
||||
driver: bridge
|
||||
attachable: true
|
||||
internal: true
|
||||
|
||||
- 10.7.0.6:3131:3131
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user