-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
42 lines (39 loc) · 1.4 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
stages:
- build
- deploy
build:
stage: build
image: microsoft/dotnet:latest
script:
- apt-get install curl
- curl -sL https://deb.nodesource.com/setup_10.x | bash -
- apt-get update
- apt-get install -y nodejs
- dotnet publish Rodgort -c Release
artifacts:
paths:
- Rodgort/bin/Release/netcoreapp2.2/publish
deploy production:
environment: production
stage: deploy
image: node:latest
only:
- master
variables:
GIT_STRATEGY: none
script:
- apt-get -qq update
- apt-get -qq -y install rsync
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- echo "$SSH_KEY_DEPLOY" > ~/.ssh/id_rsa
- chown 400 ~/.ssh/id_rsa
- ls -la
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- "ssh deploy@$PRODUCTION_IP 'mkdir -p /var/www/Rodgort/Server'"
- rsync -az --force --delete --progress -e "ssh -p22" Rodgort/bin/Release/netcoreapp2.2/publish/* deploy@$PRODUCTION_IP:/var/www/Rodgort/Server
- "ssh deploy@$PRODUCTION_IP 'cp /var/www/Rodgort/Configuration/appsettings.Production.json /var/www/Rodgort/Server/.'"
- "ssh deploy@$PRODUCTION_IP 'cp /var/www/Rodgort/Configuration/nlog.config /var/www/Rodgort/Server/.'"
- "ssh deploy@$PRODUCTION_IP 'sudo systemctl restart rodgort.service'"
- rm ~/.ssh/id_rsa