|
7 | 7 | jobs: |
8 | 8 | deploy: |
9 | 9 | runs-on: ubuntu-latest |
10 | | - env: |
11 | | - KEY_hackerton: ${{ secrets.KEY_HACKERTON_PROD }} # 운영용 secret |
12 | 10 |
|
13 | 11 | steps: |
14 | | - # 1️⃣ 코드 체크아웃 |
| 12 | + # 1. 코드 체크아웃 |
15 | 13 | - name: Checkout |
16 | | - uses: actions/checkout@v3 |
| 14 | + uses: actions/checkout@v4 |
17 | 15 |
|
18 | | - # 2️⃣ JDK 17 세팅 |
19 | | - - name: Set up JDK |
20 | | - uses: actions/setup-java@v3 |
| 16 | + # 2. JDK 17 세팅 |
| 17 | + - name: Set up JDK 17 |
| 18 | + uses: actions/setup-java@v4 |
21 | 19 | with: |
22 | 20 | distribution: 'temurin' |
23 | 21 | java-version: '17' |
24 | 22 |
|
25 | | - # 3️⃣ 빌드 + jar 이름 고정 |
26 | | - - name: Build |
27 | | - run: | |
28 | | - ./gradlew clean bootJar -x test |
29 | | - cp build/libs/*SNAPSHOT.jar build/libs/app.jar |
| 23 | + # 3. Gradle 실행 권한 부여 |
| 24 | + - name: Grant execute permission for gradlew |
| 25 | + run: chmod +x ./gradlew |
30 | 26 |
|
31 | | - # 4️⃣ EC2로 jar 전송 |
| 27 | + # 4. Gradle 빌드 |
| 28 | + - name: Build with Gradle |
| 29 | + run: ./gradlew clean bootJar -x test |
| 30 | + |
| 31 | + # 5. jar 파일 이름 고정 |
| 32 | + - name: Rename jar |
| 33 | + run: mv build/libs/*.jar build/libs/app.jar |
| 34 | + |
| 35 | + # 6. EC2로 jar 전송 |
32 | 36 | - name: Upload jar to EC2 |
33 | | - uses: appleboy/scp-action@v0.1.4 |
| 37 | + uses: appleboy/scp-action@v0.1.7 |
34 | 38 | with: |
35 | 39 | host: ${{ secrets.EC2_HOST }} |
36 | 40 | username: ${{ secrets.EC2_USER }} |
37 | 41 | key: ${{ secrets.EC2_KEY }} |
38 | 42 | source: "build/libs/app.jar" |
39 | | - target: "/home/ubuntu/app/" |
| 43 | + target: "/home/ubuntu/app" |
| 44 | + strip_components: 2 |
40 | 45 |
|
41 | | - # 5️⃣ EC2에서 앱 재시작 |
42 | | - - name: Run app on EC2 |
43 | | - uses: appleboy/ssh-action@v0.1.8 |
| 46 | + # 7. EC2에서 앱 재시작 |
| 47 | + - name: Restart app on EC2 |
| 48 | + uses: appleboy/ssh-action@v1.0.3 |
44 | 49 | with: |
45 | 50 | host: ${{ secrets.EC2_HOST }} |
46 | 51 | username: ${{ secrets.EC2_USER }} |
47 | 52 | key: ${{ secrets.EC2_KEY }} |
| 53 | + envs: KEY_HACKERTON |
48 | 54 | script: | |
49 | | - cd /home/ubuntu/app/ |
| 55 | + cd /home/ubuntu/app |
50 | 56 | chmod +x run.sh |
| 57 | + export KEY_hackerton="$KEY_HACKERTON" |
51 | 58 | ./run.sh |
| 59 | + env: |
| 60 | + KEY_HACKERTON: ${{ secrets.KEY_HACKERTON }} |
0 commit comments