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 GITLAB: git.bildme.ru
IMAGE_NAME: $REGISTRY/$CI_PROJECT_PATH:latest IMAGE_NAME: $REGISTRY/$CI_PROJECT_PATH:latest
RELEASE_NAME: go-site 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} PACKAGE_REGISTRY_URL: https://${GITLAB}/api/v4/projects/${CI_PROJECT_ID}/packages/generic/${RELEASE_NAME}/${VERSION}
DOCKER_SERVER: 192.168.9.199
stages: stages:
- build
- test - test
- build
- push - push
- artifacts - deploy-stage
- test-stage
- release - release
- deploy
.rules: &rules .rules: &rules
rules: rules:
@@ -61,6 +62,35 @@ push_image:
tags: tags:
- docker - 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: package:
stage: release stage: release
<<: *rules <<: *rules
@@ -70,6 +100,8 @@ package:
- FILE_NAME=${RELEASE_NAME} - FILE_NAME=${RELEASE_NAME}
- cd app - cd app
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${FILE_NAME} ${PACKAGE_REGISTRY_URL}/${FILE_NAME}' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${FILE_NAME} ${PACKAGE_REGISTRY_URL}/${FILE_NAME}'
when:
manual
release: release:
stage: release stage: release
@@ -86,13 +118,13 @@ release:
links: links:
- name: '${RELEASE_NAME}' - name: '${RELEASE_NAME}'
url: '${PACKAGE_REGISTRY_URL}/${RELEASE_NAME}' url: '${PACKAGE_REGISTRY_URL}/${RELEASE_NAME}'
when:
manual
deploy_prod: deploy_prod:
stage: deploy stage: release
image: hub.realmanual.ru/pub/openssh-client:latest image: hub.realmanual.ru/pub/openssh-client:latest
<<: *rules <<: *rules
variables:
DOCKER_SERVER: 192.168.9.199
before_script: before_script:
- eval $(ssh-agent -s) - eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
@@ -107,8 +139,8 @@ deploy_prod:
url: http://${DOCKER_SERVER}:3000/ url: http://${DOCKER_SERVER}:3000/
tags: tags:
- docker - docker
# when: when:
# manual manual
### Что можно добавить ? ### Что можно добавить ?