Skip to content

Commit 4b0e7d0

Browse files
authored
Merge pull request #11 from 9roomMoa/release/#10
Release/#10
2 parents fa5b815 + 4c7a3b4 commit 4b0e7d0

48 files changed

Lines changed: 1653 additions & 45 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/gradle.yml

Lines changed: 68 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: Java CI with Gradle
22

33
on:
44
push:
5-
branches: [ "main" ]
5+
branches: [ "main", "release/#*" ]
66
pull_request:
7-
branches: [ "main" ]
7+
branches: [ "main", "release/#*" ]
88

99
permissions:
1010
contents: read
@@ -13,54 +13,86 @@ jobs:
1313
build-docker-image:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v3
17-
# 1. Java 21 세팅
18-
- name: Set up JDK 21
19-
uses: actions/setup-java@v3
20-
with:
21-
java-version: '21'
22-
distribution: 'temurin'
23-
24-
# 2. SpringBoot 애플리케이션 빌드
25-
- name: Build with Gradle
26-
uses: gradle/actions/setup-gradle@v3
27-
with:
28-
arguments: clean bootJar
16+
- uses: actions/checkout@v3
17+
# 1. Java 21 세팅
18+
- name: Set up JDK 21
19+
uses: actions/setup-java@v3
20+
with:
21+
java-version: '21'
22+
distribution: 'temurin'
2923

30-
# 3. Docker 이미지 빌드
31-
- name: Docker Image Build
32-
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring .
24+
# 2. application-oauth/cloud.properties 생성
25+
- name: Create application-oauth.properties
26+
run: |
27+
echo "spring.security.user.name=${{ secrets.SECURITY_USERNAME }}" > ./src/main/resources/application-oauth.properties
28+
echo "spring.security.user.password=${{ secrets.SECURITY_PASSWORD }}" >> ./src/main/resources/application-oauth.properties
29+
echo "jwt.key=${{ secrets.JWT_KEY }}" >> ./src/main/resources/application-oauth.properties
30+
echo "spring.security.oauth2.client.registration.google.client-id=${{ secrets.GOOGLE_CLIENT_ID }}" >> ./src/main/resources/application-oauth.properties
31+
echo "spring.security.oauth2.client.registration.google.client-secret=${{ secrets.GOOGLE_CLIENT_SECRET }}" >> ./src/main/resources/application-oauth.properties
32+
echo "spring.security.oauth2.client.registration.google.scope=${{ secrets.GOOGLE_SCOPE }}" >> ./src/main/resources/application-oauth.properties
33+
echo "spring.security.oauth2.client.registration.google.redirect-uri=${{ secrets.GOOGLE_REDIRECT_URI }}" >> ./src/main/resources/application-oauth.properties
3334
34-
# 4. DockerHub 로그인
35-
- name: DockerHub Login
36-
uses: docker/login-action@v2
37-
with:
38-
username: ${{ secrets.DOCKERHUB_USERNAME }}
39-
password: ${{ secrets.DOCKERHUB_PASSWORD }}
35+
- name: Create application-cloud properties
36+
run: |
37+
echo "spring.datasource.driver-class-name=${{ secrets.DATASOURCE_DRIVER_CLASSNAME }}" > ./src/main/resources/application-cloud.properties
38+
echo "spring.datasource.url=${{ secrets.DATASOURCE_URL }}" >> ./src/main/resources/application-cloud.properties
39+
echo "spring.datasource.username=${{ secrets.DATASOURCE_USERNAME }}" >> ./src/main/resources/application-cloud.properties
40+
echo "spring.datasource.password=${{ secrets.DATASOURCE_PASSWORD }}" >> ./src/main/resources/application-cloud.properties
41+
echo "spring.data.redis.host=${{ secrets.REDIS_HOST }}" >> ./src/main/resources/application-cloud.properties
42+
echo "spring.data.redis.port=${{ secrets.REDIS_PORT }}" >> ./src/main/resources/application-cloud.properties
43+
echo "spring.h2.console.enabled=${{ secrets.H2CONSOLE_ENABLED }}" >> ./src/main/resources/application-cloud.properties
44+
echo "spring.h2.console.path=${{ secrets.H2CONSOLE_PATH }}" >> ./src/main/resources/application-cloud.properties
45+
echo "spring.data.mongodb.host=${{ secrets.MONGODB_HOST }}" >> ./src/main/resources/application-cloud.properties
46+
echo "spring.data.mongodb.port=${{ secrets.MONGODB_PORT }}" >> ./src/main/resources/application-cloud.properties
47+
echo "spring.data.mongodb.database=${{ secrets.MONGODB_DATABASE }}" >> ./src/main/resources/application-cloud.properties
48+
echo "spring.data.mongodb.username=${{ secrets.MONGODB_USERNAME }}" >> ./src/main/resources/application-cloud.properties
49+
echo "spring.data.mongodb.password=${{ secrets.MONGODB_PASSWORD }}" >> ./src/main/resources/application-cloud.properties
50+
echo "spring.data.mongodb.authentication-database=${{ secrets.MONGODB_AUTHENTICATION_DATABASE }}" >> ./src/main/resources/application-cloud.properties
4051
41-
# 5. DockerHub 이미지 push
42-
- name: DockerHub push
43-
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring
52+
# 3. SpringBoot 애플리케이션 빌드
53+
- name: Build with Gradle
54+
uses: gradle/actions/setup-gradle@v3
55+
with:
56+
arguments: clean bootJar
57+
58+
# 4. Docker 이미지 빌드
59+
- name: Docker Image Build
60+
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring .
61+
62+
# 5. DockerHub 로그인
63+
- name: DockerHub Login
64+
uses: docker/login-action@v2
65+
with:
66+
username: ${{ secrets.DOCKERHUB_USERNAME }}
67+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
68+
69+
# 6. DockerHub 이미지 push
70+
- name: DockerHub push
71+
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring
4472

4573
run-docker-image-on-ec2:
46-
# build-docker-image (위)과정이 완료되어야 실행됨
4774
needs: build-docker-image
4875
runs-on: self-hosted
4976

5077
steps:
5178
# 1. 최신 이미지를 pull 받음
5279
- name: Docker pull
5380
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring
54-
55-
# 2. 기존 컨테이너 중지
56-
- name: Docker stop Container
57-
run: sudo docker stop $(sudo docker ps -q) 2>/dev/null || true
5881

59-
# 3. 최신 이미지를 컨테이너화하여 실행
60-
- name: Docker run new Container
61-
run: sudo docker run --name aether_back_spring --rm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring
82+
# 2. 기존 컨테이너 중지 및 삭제
83+
- name: Stop and Remove Existing Container
84+
run: |
85+
sudo docker stop aether_back_spring 2>/dev/null || true
86+
sudo docker rm aether_back_spring 2>/dev/null || true
87+
88+
# 3. 최신 이미지를 컨테이너화하여 실행 (80 포트에서 실행)
89+
- name: Run New Container (Port 80)
90+
run: |
91+
sudo docker run --name aether_back_spring --rm -d \
92+
-p 80:8080 \
93+
--network host \
94+
${{ secrets.DOCKERHUB_USERNAME }}/aether_back_spring
6295
6396
# 4. 미사용 이미지 정리
6497
- name: Delete old Docker Image
6598
run: sudo docker system prune -f
66-

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,9 @@ gradle-app.setting
192192
### Gradle Patch ###
193193
# Java heap dump
194194
*.hprof
195+
196+
# 스프링 oauth 보안 설정 제외
197+
application-oauth.properties
198+
199+
# DB 관련 설정 제외
200+
application-cloud.properties

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/dataSources.xml

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules/aether_back_spring.main.iml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

HELP.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Getting Started
2+
3+
### Reference Documentation
4+
For further reference, please consider the following sections:
5+
6+
* [Official Gradle documentation](https://docs.gradle.org)
7+
* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.1/gradle-plugin)
8+
* [Create an OCI image](https://docs.spring.io/spring-boot/3.4.1/gradle-plugin/packaging-oci-image.html)
9+
* [Spring Web](https://docs.spring.io/spring-boot/3.4.1/reference/web/servlet.html)
10+
* [Spring Boot DevTools](https://docs.spring.io/spring-boot/3.4.1/reference/using/devtools.html)
11+
* [Spring Data JPA](https://docs.spring.io/spring-boot/3.4.1/reference/data/sql.html#data.sql.jpa-and-spring-data)
12+
* [Thymeleaf](https://docs.spring.io/spring-boot/3.4.1/reference/web/servlet.html#web.servlet.spring-mvc.template-engines)
13+
* [Validation](https://docs.spring.io/spring-boot/3.4.1/reference/io/validation.html)
14+
* [Spring Security](https://docs.spring.io/spring-boot/3.4.1/reference/web/spring-security.html)
15+
* [OAuth2 Client](https://docs.spring.io/spring-boot/3.4.1/reference/web/spring-security.html#web.security.oauth2.client)
16+
17+
### Guides
18+
The following guides illustrate how to use some features concretely:
19+
20+
* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
21+
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
22+
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
23+
* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
24+
* [Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/)
25+
* [Validation](https://spring.io/guides/gs/validating-form-input/)
26+
* [Securing a Web Application](https://spring.io/guides/gs/securing-web/)
27+
* [Spring Boot and OAuth2](https://spring.io/guides/tutorials/spring-boot-oauth2/)
28+
* [Authenticating a User with LDAP](https://spring.io/guides/gs/authenticating-ldap/)
29+
30+
### Additional Links
31+
These additional references should also help you:
32+
33+
* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle)
34+

0 commit comments

Comments
 (0)