Skip to content

Commit 147626a

Browse files
committed
build: ci,cd workflow
1 parent 79633b3 commit 147626a

File tree

3 files changed

+140
-0
lines changed

3 files changed

+140
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: GOGO Stage stage CD Workflow
2+
3+
on:
4+
push:
5+
branches:
6+
- 'develop'
7+
workflow_dispatch:
8+
9+
jobs:
10+
CI:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v3
16+
17+
- name: Set up JDK 17
18+
uses: actions/setup-java@v3
19+
with:
20+
java-version: '17'
21+
distribution: 'temurin'
22+
cache: gradle
23+
24+
- name: Setup Gradle
25+
uses: gradle/gradle-build-action@v2
26+
27+
- name: Setup Gradle's permission
28+
run: chmod +x gradlew
29+
30+
- name: Build with Gradle
31+
run: ./gradlew clean build
32+
33+
deploy:
34+
runs-on: ubuntu-latest
35+
needs: CI
36+
steps:
37+
- name: Checkout code
38+
uses: actions/checkout@v3
39+
40+
- name: Install sshpass
41+
run: sudo apt-get update && sudo apt-get install -y sshpass
42+
43+
- name: SSH Command to Deploy using Password
44+
run: |
45+
sshpass -p "${{ secrets.SSH_PASSWORD }}" ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'EOF'
46+
mkdir -p /home/ubuntu/gogo-stage
47+
cd /home/ubuntu/gogo-stage
48+
49+
if [ ! -d ".git" ]; then
50+
git clone -b develop https://github.com/team-gogo/gogo-stage.git .
51+
else
52+
git pull origin develop
53+
fi
54+
55+
./gradlew build
56+
57+
docker build -f DockerFileStage -t gogo-stage-stage .
58+
59+
docker stop gogo-stage-stage || true
60+
docker rm gogo-stage-stage || true
61+
62+
docker run -d -p 8081:8081 --name gogo-stage-stage gogo-stage-stage
63+
EOF
64+
65+
- name: SSH Success Notification
66+
if: success()
67+
uses: sarisia/actions-status-discord@v1
68+
with:
69+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
70+
color: 0x4CAF50
71+
title: "배포 성공"
72+
message: "GOGO Stage stage deployment completed successfully."
73+
74+
- name: SSH Failure Notification
75+
if: failure()
76+
uses: sarisia/actions-status-discord@v1
77+
with:
78+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
79+
color: 0xFF4C4C
80+
title: "배포 실패"
81+
message: "GOGO Stage stage deployment failed. Check the logs for details."
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: GOGO Stage stage CI Workflow
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- 'develop'
7+
push:
8+
branches:
9+
- 'develop'
10+
workflow_dispatch:
11+
12+
jobs:
13+
CI:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v3
19+
20+
- name: Set up JDK 17
21+
uses: actions/setup-java@v3
22+
with:
23+
java-version: '17'
24+
distribution: 'temurin'
25+
cache: gradle
26+
27+
- name: Setup Gradle
28+
uses: gradle/gradle-build-action@v2
29+
30+
- name: Setup Gradle's permission
31+
run: chmod +x gradlew
32+
33+
- name: Build with Gradle
34+
run: ./gradlew clean build
35+
36+
- name: CI Success Notification
37+
uses: sarisia/actions-status-discord@v1
38+
if: success()
39+
with:
40+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
41+
color: 0x4CAF50
42+
43+
- name: CI Failure Notification
44+
uses: sarisia/actions-status-discord@v1
45+
if: failure()
46+
with:
47+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
48+
color: 0xFF4C4C

DockerFileStage

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM openjdk:17-jdk
2+
3+
EXPOSE 8081
4+
5+
WORKDIR /home/ubuntu/gogo-stage
6+
7+
COPY build/libs/gogo-stage-0.0.1-SNAPSHOT.jar stage-stage.jar
8+
9+
RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
10+
11+
ENTRYPOINT ["java", "-jar", "stage-stage.jar", "--spring.profiles.active=stage"]

0 commit comments

Comments
 (0)