Skip to content

Commit a085fde

Browse files
Create .gitlab-ci.yml
1 parent 649d1b1 commit a085fde

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

.gitlab-ci.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
stages:
2+
- build_and_push
3+
- deploy
4+
5+
variables:
6+
API_IMAGE_NAME: github-api
7+
API_CONTAINER_NAME: github-api
8+
UI_IMAGE_NAME: github-ui
9+
UI_CONTAINER_NAME: github-ui
10+
UI_PORT: "4000:4000"
11+
API_PORT: "4001:4001"
12+
REPO_NAME: $CI_PROJECT_PATH
13+
REGISTRY: "registry.gitlab.com"
14+
SSH_HOST: $SERVER_IP
15+
SSH_USER: $SERVER_USERNAME
16+
SSH_KEY: $SSH_PRIVATE_KEY
17+
18+
build_and_push:
19+
stage: build_and_push
20+
image: docker:stable
21+
22+
services:
23+
- docker:dind
24+
25+
before_script:
26+
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
27+
28+
script:
29+
- docker build -t $REGISTRY/$REPO_NAME/$API_IMAGE_NAME:$CI_COMMIT_SHA -f ./API.Dockerfile .
30+
- docker push $REGISTRY/$REPO_NAME/$API_IMAGE_NAME:$CI_COMMIT_SHA
31+
- docker build -t $REGISTRY/$REPO_NAME/$UI_IMAGE_NAME:$CI_COMMIT_SHA -f ./UI.Dockerfile .
32+
- docker push $REGISTRY/$REPO_NAME/$UI_IMAGE_NAME:$CI_COMMIT_SHA
33+
34+
deploy:
35+
stage: deploy
36+
image: alpine:latest
37+
38+
before_script:
39+
- apk add --update --no-cache openssh-client
40+
41+
script:
42+
- mkdir -p ~/.ssh
43+
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
44+
- chmod 600 ~/.ssh/id_rsa
45+
- ssh-keyscan -H $SSH_HOST >> ~/.ssh/known_hosts
46+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "echo "$CI_JOB_TOKEN" | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY"
47+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker pull $REGISTRY/$REPO_NAME/$API_IMAGE_NAME:$CI_COMMIT_SHA"
48+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker pull $REGISTRY/$REPO_NAME/$UI_IMAGE_NAME:$CI_COMMIT_SHA"
49+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker stop $UI_CONTAINER_NAME || true"
50+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker stop $API_CONTAINER_NAME || true"
51+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker rm $UI_CONTAINER_NAME || true"
52+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker rm $API_CONTAINER_NAME || true"
53+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker run -d --name $API_CONTAINER_NAME -p $API_PORT $REGISTRY/$REPO_NAME/$API_IMAGE_NAME:$CI_COMMIT_SHA"
54+
- ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "docker run -d --name $UI_CONTAINER_NAME -p $UI_PORT $REGISTRY/$REPO_NAME/$UI_IMAGE_NAME:$CI_COMMIT_SHA"

0 commit comments

Comments
 (0)