-
Notifications
You must be signed in to change notification settings - Fork 1
81 lines (75 loc) · 2.84 KB
/
test.yml
File metadata and controls
81 lines (75 loc) · 2.84 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
76
77
78
79
80
name: Java CI/CD Pipeline
on:
push:
branches:
- development
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'
- name: Build with Maven
env:
PROD_DB_USERNAME: ${{ secrets.PROD_DB_USERNAME }}
PROD_DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
SB_MIDTRANS_SERVER_KEY: ${{ secrets.SB_MIDTRANS_SERVER_KEY }}
PROD_MAIL_PASSWORD: ${{ secrets.PROD_MAIL_PASSWORD }}
run: mvn clean package
- name: Upload JAR file
uses: actions/upload-artifact@v2
with:
name: wefly-app-jar
path: target/WeFly_App_Final_Project.jar
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Download JAR file
uses: actions/download-artifact@v2
with:
name: wefly-app-jar
path: target
- name: Add SSH key to known hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
- name: Copy jar file to the server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_IP: ${{ secrets.SERVER_IP }}
run: |
echo "$SSH_PRIVATE_KEY" > private_key
chmod 600 private_key
scp -i private_key ./target/WeFly_App_Final_Project.jar root@${{ secrets.SERVER_IP }}:/root/synrgy
- name: Create and Transfer Environment Variables File
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_IP: ${{ secrets.SERVER_IP }}
PROD_DB_USERNAME: ${{ secrets.PROD_DB_USERNAME }}
PROD_DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
SB_MIDTRANS_SERVER_KEY: ${{ secrets.SB_MIDTRANS_SERVER_KEY }}
PROD_MAIL_PASSWORD: ${{ secrets.PROD_MAIL_PASSWORD }}
run: |
echo "PROD_DB_USERNAME=${PROD_DB_USERNAME}" > wefly.env
echo "PROD_DB_PASSWORD=${PROD_DB_PASSWORD}" >> wefly.env
echo "JWT_SECRET_KEY=${JWT_SECRET_KEY}" >> wefly.env
echo "SB_MIDTRANS_SERVER_KEY=${SB_MIDTRANS_SERVER_KEY}" >> wefly.env
echo "PROD_MAIL_PASSWORD=${PROD_MAIL_PASSWORD}" >> wefly.env
scp -i private_key wefly.env root@${{ secrets.SERVER_IP }}:/root/synrgy/wefly.env
- name: Execute deploy script
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_IP: ${{ secrets.SERVER_IP }}
run: |
echo "$SSH_PRIVATE_KEY" > private_key
chmod 600 private_key
ssh -i private_key root@${{ secrets.SERVER_IP }} 'bash /root/synrgy/deploy_script.sh'