-
Notifications
You must be signed in to change notification settings - Fork 2
43 lines (36 loc) · 1.32 KB
/
deploy.yml
File metadata and controls
43 lines (36 loc) · 1.32 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
name: Deploy to EC2 ☁️
on:
workflow_run:
workflows: ["Docker Build"]
types:
- completed
env:
EC2_IP_ADDRESS: ${{ secrets.EC2_IP_ADDRESS }}
EC2_USERNAME: ${{ secrets.EC2_USERNAME }}
EC2_PEM_KEY: ${{ secrets.EC2_PEM_KEY }}
REPO_NAME: ${{ secrets.REPO_NAME }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
ENV_FILE: ${{ secrets.ENV_FILE }}
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: SSH KEY 🔑
run: |
mkdir -p ~/.ssh
echo "$EC2_PEM_KEY" > ~/.ssh/id_rsa.pem
chmod 600 ~/.ssh/id_rsa.pem
- name: Send Docker Compose 🐋
run: |
scp -i ~/.ssh/id_rsa.pem -o StrictHostKeyChecking=no -r src/server/docker-compose.yml $EC2_USERNAME@$EC2_IP_ADDRESS:~/$REPO_NAME-compose
- name: Docker pull -> up 🐳
run: |
ssh -i ~/.ssh/id_rsa.pem -o StrictHostKeyChecking=no $EC2_USERNAME@$EC2_IP_ADDRESS "
sudo echo '$ENV_FILE' > ~/$REPO_NAME-env &&
sudo docker login -u $DOCKER_USERNAME -p '$DOCKER_PASSWORD' &&
sudo docker pull $DOCKER_USERNAME/$REPO_NAME:latest &&
sudo docker-compose -p $REPO_NAME -f ~/$REPO_NAME-compose up -d
"