1
1
name : Production Build and Deploy
2
2
on :
3
3
push :
4
- tags :
4
+ tags :
5
5
- ' v*.*.*'
6
6
7
- env :
7
+ env :
8
8
DOMAIN : jellyroom.membrane.stream
9
- JF1_HOST : jellyfish.membrane.stream
10
- JF2_HOST : jellyfish1.membrane.stream
11
9
BE_HOST : server.jellyroom.membrane.stream
12
10
PROJECT : production
13
11
COMPOSE_FILE_NAME : docker-compose-deploy.yaml
@@ -32,26 +30,15 @@ jobs:
32
30
echo "DOMAIN=${{env.DOMAIN}}
33
31
JELLYROOM_VERSION=${{ steps.versions.outputs.jellyroom }}
34
32
JELLYFISH_VERSION=${{ steps.versions.outputs.jellyfish }}
35
- JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN}}
36
- JF_CHECK_ORIGIN=false
37
- JF_PORT=5002
38
- JF1_IP=${{secrets.PRODUCTION_IP}}
39
- JF2_IP=${{secrets.PRODUCTION2_IP}}
40
- JF1_HOST=${{env.JF1_HOST}}
41
- JF2_HOST=${{env.JF2_HOST}}
33
+ JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN_CLOUD_PRODUCTION}}
42
34
BE_HOST=${{env.BE_HOST}}
43
35
BE_JF_SECURE_CONNECTION=true
44
- BE_JF_ADDRESSES=${{env.JF1_HOST}} ${{env.JF2_HOST}}
45
- PROM_JELLYFISH_TARGETS=jellyfish1:9568,${{secrets.PRODUCTION2_IP}}:9568
46
- PROM_NODE_TARGETS=172.17.0.1:9100,${{secrets.PRODUCTION2_IP}}:9100
47
- LOKI_ADDRESS=loki
48
- GF_SECURITY_ADMIN_PASSWORD=${{secrets.GF_SECURITY_ADMIN_PASSWORD}}
49
- GF_SECURITY_ADMIN_USER=${{secrets.GF_SECURITY_ADMIN_USER}}" > .env
36
+ BE_JF_ADDRESSES=${{vars.JF1_HOST_CLOUD_PRODUCTION}}" > .env
50
37
51
38
- name : Remove old containers on first host
52
39
uses : JimCronqvist/action-ssh@master
53
40
with :
54
- hosts : ${{ secrets.PRODUCTION_IP }}:${{ secrets.SSH_PROD_PORT }}
41
+ hosts : ${{ secrets.PRODUCTION_IP }}
55
42
privateKey : ${{ secrets.SSH_PRIV_KEY }}
56
43
command : |
57
44
docker ps -aq | xargs -r docker stop | xargs -r docker rm
62
49
remote_docker_host : ${{ secrets.PRODUCTION_IP }}
63
50
ssh_private_key : ${{ secrets.SSH_PRIV_KEY }}
64
51
ssh_public_key : ${{ secrets.SSH_PUB_KEY }}
65
- ssh_port : ${{ secrets.SSH_PROD_PORT }}
66
52
stack_file_name : ${{ env.COMPOSE_FILE_NAME }}
67
- args : -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build jellyfish1 node-exporter1 frontend backend prometheus grafana promtail loki
68
-
69
- deploy2 :
70
- runs-on : ubuntu-latest
71
- steps :
72
- - uses : actions/checkout@v2
73
-
74
- - name : Set versions
75
- id : versions
76
- run : echo "jellyfish=$(cat .jellyfish-version)" >> $GITHUB_OUTPUT
77
-
78
- - name : Prepare .env file for the deployment
79
- id : variables_population
80
- run : |
81
- echo "JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN}}
82
- JELLYFISH_VERSION=${{ steps.versions.outputs.jellyfish }}
83
- JF_CHECK_ORIGIN=false
84
- JF_PORT=5002
85
- JF1_IP=${{secrets.PRODUCTION_IP}}
86
- JF2_IP=${{secrets.PRODUCTION2_IP}}
87
- LOKI_ADDRESS=${{secrets.PRODUCTION_IP}}
88
- JF2_HOST=${{env.JF2_HOST}}" > .env
89
- - name : Remove old containers on second host
90
- uses : JimCronqvist/action-ssh@master
91
- with :
92
- hosts : ${{ secrets.PRODUCTION2_IP }}:${{ secrets.SSH_PROD_PORT }}
93
- privateKey : ${{ secrets.SSH_PRIV_KEY }}
94
- command : |
95
- docker ps -aq | xargs -r docker stop | xargs -r docker rm
96
-
97
- - name : Deploy docker compose to a pre-configured server on second host
98
- uses : TapTap21/docker-remote-deployment-action@v1.1
99
- with :
100
- remote_docker_host : ${{ secrets.PRODUCTION2_IP }}
101
- ssh_private_key : ${{ secrets.SSH_PRIV_KEY }}
102
- ssh_public_key : ${{ secrets.SSH_PUB_KEY }}
103
- ssh_port : ${{ secrets.SSH_PROD_PORT }}
104
- stack_file_name : ${{ env.COMPOSE_FILE_NAME }}
105
- args : -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build jellyfish2 node-exporter2 promtail
53
+ args : -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build frontend backend
0 commit comments