-
Notifications
You must be signed in to change notification settings - Fork 0
75 lines (68 loc) · 3.02 KB
/
docker.yml
File metadata and controls
75 lines (68 loc) · 3.02 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
name: Build and Push Docker Image
# when to run the workflow
on:
push:
branches: [main_2]
# the jobs to run
jobs:
build:
# the os to run the job on
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# build the image now
- name: Build Docker image
run: docker compose --env-file variables_tsspredator.env build
- name: save images
run: |
docker save tsspredator_web:latest | gzip > image_tsspredator_web.tar.gz
docker save tsspredator_celery_app:latest | gzip > image_tsspredator_celery_app.tar.gz
- name: Install SSH client
run: sudo apt-get install -qq -y openssh-client
- name: Transfer Docker images to server
env:
SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}}
SSH_CONFIG: ${{secrets.SSH_CONFIG}}
SERVER_IP: ${{secrets.SERVER_IP}}
KNOWN_HOSTS: ${{secrets.KNOWN_HOSTS}}
TARGET: ${{secrets.TARGET}}
DEPLOY_FILE: ${{secrets.DEPLOY_FILE}}
DEPLOY_FILE_NAME: ${{secrets.DEPLOY_FILE_NAME}}
ENV_FILE: ${{secrets.ENV_FILE}}
ENV_FILE_NAME: ${{secrets.ENV_FILE_NAME}}
REDIS_CONFIG_FILE: ${{secrets.REDIS_CONFIG_FILE}}
run: |
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "$SSH_CONFIG" > ~/.ssh/config
echo "$SSH_PRIVATE_KEY" > ~/.ssh/github-actions
echo "$KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/github-actions
chmod 600 ~/.ssh/known_hosts
echo "$DEPLOY_FILE" > $DEPLOY_FILE_NAME
echo "$ENV_FILE" > variables_tsspredator.env
echo "$REDIS_CONFIG_FILE" > redis.config
scp -o UserKnownHostsFile=~/.ssh/known_hosts image_tsspredator_web.tar.gz $SERVER_IP:$TARGET
scp -o UserKnownHostsFile=~/.ssh/known_hosts image_tsspredator_celery_app.tar.gz $SERVER_IP:$TARGET
scp -o UserKnownHostsFile=~/.ssh/known_hosts docker-compose.yml $SERVER_IP:$TARGET
scp -o UserKnownHostsFile=~/.ssh/known_hosts $ENV_FILE_NAME $SERVER_IP:$TARGET
scp -o UserKnownHostsFile=~/.ssh/known_hosts redis.config $SERVER_IP:$TARGET
scp -o UserKnownHostsFile=~/.ssh/known_hosts $DEPLOY_FILE_NAME $SERVER_IP:$TARGET
- name: Restart service
env:
SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}}
SSH_CONFIG: ${{secrets.SSH_CONFIG}}
SERVER_IP: ${{secrets.SERVER_IP}}
KNOWN_HOSTS: ${{secrets.KNOWN_HOSTS}}
TARGET: ${{secrets.TARGET}}
UPDATE_CMDS: ${{secrets.UPDATE_CMDS}}
run: |
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "$SSH_CONFIG" > ~/.ssh/config
echo "$SSH_PRIVATE_KEY" > ~/.ssh/github-actions
echo "$KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/github-actions
chmod 600 ~/.ssh/known_hosts
ssh -t -o UserKnownHostsFile=~/.ssh/known_hosts $SERVER_IP "cd $TARGET; chmod +x $UPDATE_CMDS; $UPDATE_CMDS"