fix: change deploy rules for split staging and prod + renew ci rules + add envs for yookassa test shop
This commit is contained in:
parent
8265271918
commit
be9d4abc14
@ -1,100 +1,23 @@
|
|||||||
|
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:
|
stages:
|
||||||
- lint
|
|
||||||
- test
|
|
||||||
- clean
|
|
||||||
- build
|
- build
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
lint:
|
|
||||||
image: golangci/golangci-lint:v1.52-alpine
|
|
||||||
stage: lint
|
|
||||||
before_script:
|
|
||||||
- go install github.com/vektra/mockery/v2@v2.26.0
|
|
||||||
- go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.12.4
|
|
||||||
script:
|
|
||||||
- go generate ./...
|
|
||||||
- golangci-lint version
|
|
||||||
- golangci-lint run ./internal/...
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: golang:1.20.3-alpine
|
|
||||||
stage: test
|
|
||||||
coverage: /\(statements\)(?:\s+)?(\d+(?:\.\d+)?%)/
|
|
||||||
script:
|
|
||||||
- CGO_ENABLED=0 go test ./internal/... -coverprofile=coverage.out
|
|
||||||
- go tool cover -html=coverage.out -o coverage.html
|
|
||||||
- go tool cover -func coverage.out
|
|
||||||
artifacts:
|
|
||||||
expire_in: "3 days"
|
|
||||||
paths:
|
|
||||||
- coverage.html
|
|
||||||
|
|
||||||
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:
|
build-app:
|
||||||
stage: build
|
stage: build
|
||||||
image:
|
extends: .build_template
|
||||||
name: gcr.io/kaniko-project/executor:debug
|
|
||||||
entrypoint: [""]
|
|
||||||
variables:
|
|
||||||
DOCKER_BUILD_PATH: "./Dockerfile"
|
|
||||||
STAGING_BRANCH: "staging"
|
|
||||||
PRODUCTION_BRANCH: "main"
|
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH
|
- 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:
|
deploy-to-staging:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image:
|
tags:
|
||||||
name: docker/compose:1.28.0
|
- staging
|
||||||
entrypoint: [""]
|
extends: .deploy_template
|
||||||
variables:
|
|
||||||
DEPLOY_TO: "staging"
|
|
||||||
BRANCH: "staging"
|
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH == $BRANCH
|
- if: "$CI_COMMIT_BRANCH == $STAGING_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
|
|
||||||
|
@ -4,7 +4,7 @@ services:
|
|||||||
treasurer-app-staging:
|
treasurer-app-staging:
|
||||||
hostname: treasurer-service-staging
|
hostname: treasurer-service-staging
|
||||||
container_name: treasurer-service-staging
|
container_name: treasurer-service-staging
|
||||||
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||||
tty: true
|
tty: true
|
||||||
environment:
|
environment:
|
||||||
- HTTP_HOST=0.0.0.0
|
- HTTP_HOST=0.0.0.0
|
||||||
@ -17,10 +17,10 @@ services:
|
|||||||
- IS_MOCK=true
|
- IS_MOCK=true
|
||||||
- MOCK_SERVICE_HOST=http://treasurer-mock-staging:8080
|
- MOCK_SERVICE_HOST=http://treasurer-mock-staging:8080
|
||||||
|
|
||||||
- YOOMONEY_STORE_ID=$YOOMONEY_STORE_ID
|
- YOOMONEY_STORE_ID=342813
|
||||||
- YOOMONEY_SECRET_KEY=$YOOMONEY_SECRET_KEY
|
- YOOMONEY_SECRET_KEY=test_CD5KsaQOIcw_yqF4GMT-NuTm8-aaq4dTmQ5bunVAnwE
|
||||||
- YOOMONEY_WEBHOOKS_URL=http://treasurer-mock-staging:8080/webhooks
|
- YOOMONEY_WEBHOOKS_URL=http://treasurer-mock-staging:8080/webhooks
|
||||||
- YOOMONEY_PAYMENTS_URL=http://treasurer-mock-staging:8080/payments
|
- YOOMONEY_PAYMENTS_URL=https://api.yookassa.ru/v3/payments
|
||||||
|
|
||||||
- MONGO_HOST=10.6.0.11
|
- MONGO_HOST=10.6.0.11
|
||||||
- MONGO_PORT=27017
|
- MONGO_PORT=27017
|
||||||
@ -36,7 +36,6 @@ services:
|
|||||||
- default
|
- default
|
||||||
depends_on:
|
depends_on:
|
||||||
- treasurer-mock-staging
|
- treasurer-mock-staging
|
||||||
|
|
||||||
treasurer-mock-staging:
|
treasurer-mock-staging:
|
||||||
hostname: treasurer-mock-staging
|
hostname: treasurer-mock-staging
|
||||||
container_name: treasurermock-container-staging
|
container_name: treasurermock-container-staging
|
||||||
@ -47,7 +46,6 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend_external
|
- backend_external
|
||||||
- default
|
- default
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
backend_external:
|
backend_external:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
Loading…
Reference in New Issue
Block a user