This commit is contained in:
2022-09-19 09:55:06 +07:00
parent cda2e7a2bc
commit 2e688d8fa8

View File

@@ -10,16 +10,17 @@ variables:
GITLAB: git.bildme.ru
IMAGE_NAME: $REGISTRY/$CI_PROJECT_PATH:latest
RELEASE_NAME: go-site
VERSION: 0.0.5
VERSION: 0.0.7
PACKAGE_REGISTRY_URL: https://${GITLAB}/api/v4/projects/${CI_PROJECT_ID}/packages/generic/${RELEASE_NAME}/${VERSION}
DOCKER_SERVER: 192.168.9.199
stages:
- build
- test
- build
- push
- artifacts
- deploy-stage
- test-stage
- release
- deploy
.rules: &rules
rules:
@@ -61,6 +62,35 @@ push_image:
tags:
- docker
deploy_stage:
stage: deploy-stage
image: hub.realmanual.ru/pub/openssh-client:latest
<<: *rules
before_script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan ${DOCKER_SERVER} >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
- ssh root@${DOCKER_SERVER} "docker rm -f main-go; docker pull hub.bildme.ru/firstgroup/go-site && docker run -d --rm --name main-go -p 3000:3000 hub.bildme.ru/firstgroup/go-site:latest"
environment:
name: stage
url: http://${DOCKER_SERVER}:3000/
tags:
- docker
test_stage:
stage: test-stage
image: alpine
<<: *rules
script:
- apk --no-cache add curl
- "[ $(curl -sw '%{http_code}' --connect-timeout 2 'http://${DOCKER_SERVER}:3000/health' -o /dev/null) -ne 200 ] && exit 0 || exit 1"
tags:
- docker
package:
stage: release
<<: *rules
@@ -70,6 +100,8 @@ package:
- FILE_NAME=${RELEASE_NAME}
- cd app
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${FILE_NAME} ${PACKAGE_REGISTRY_URL}/${FILE_NAME}'
when:
manual
release:
stage: release
@@ -86,13 +118,13 @@ release:
links:
- name: '${RELEASE_NAME}'
url: '${PACKAGE_REGISTRY_URL}/${RELEASE_NAME}'
when:
manual
deploy_prod:
stage: deploy
stage: release
image: hub.realmanual.ru/pub/openssh-client:latest
<<: *rules
variables:
DOCKER_SERVER: 192.168.9.199
before_script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
@@ -107,8 +139,8 @@ deploy_prod:
url: http://${DOCKER_SERVER}:3000/
tags:
- docker
# when:
# manual
when:
manual
### Что можно добавить ?