Skip to content

Commit 0db091a

Browse files
authored
Merge pull request #443 from Kernel360/develop
[merge] develop into main
2 parents 1af7958 + 63dede1 commit 0db091a

File tree

5 files changed

+153
-67
lines changed

5 files changed

+153
-67
lines changed

.github/workflows/cd-dev.yml

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
name: Java CD-DEV with Gradle
2+
3+
on:
4+
pull_request:
5+
types:
6+
- closed
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
if-dev-merge:
13+
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'develop'
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v3
17+
18+
- name: Set up JDK 21
19+
uses: actions/setup-java@v3
20+
with:
21+
java-version: '21'
22+
distribution: 'temurin'
23+
24+
- name: Set up member-api application.yml
25+
run: echo "${{ secrets.MEMBER_APPLICATION }}" > ./member-api/src/main/resources/application.yml
26+
uses: actions/upload-artifact@v2
27+
with:
28+
name: application.yml
29+
path: ./member-api/src/main/resources/application.yml
30+
31+
- name: Set up member-api test application.yml
32+
uses: microsoft/variable-substitution@v1
33+
with:
34+
files: ./member-api/src/test/resources/application.yml
35+
env:
36+
spring.datasource.url: ${{ secrets.TEST_DB_URL }}
37+
spring.datasource.username: ${{ secrets.TEST_DB_HOST }}
38+
spring.datasource.password: ${{ secrets.TEST_DB_PASSWORD }}
39+
spring.security.jwt.secret: ${{ secrets.JWT_SECRET_KEY }}
40+
spring.data.mongodb.uri: ${{ secrets.MONGO_TEST_URI }}
41+
custom.domain.image.baseUrl: ${{ secrets.BASE_URL }}
42+
cloud.aws.s3.bucket: ${{ secrets.S3_BUCKET_NAME }}
43+
cloud.aws.region.static: ${{ secrets.S3_REGION }}
44+
cloud.aws.credentials.accessKey: ${{ secrets.AWS_ACCESS_KEY }}
45+
cloud.aws.credentials.secretKey: ${{ secrets.AWS_ACCESS_SECRET }}
46+
47+
- name: Set up domain-mysql application.yml
48+
run: echo "${{ secrets.APPLICATION }}" > ./domain-mysql/src/main/resources/application.yml
49+
uses: actions/upload-artifact@v2
50+
with:
51+
name: application.yml
52+
path: ./domain-mysql/src/main/resources/application.yml
53+
54+
- name: Set up domain-mongodb application.yml
55+
uses: microsoft/variable-substitution@v1
56+
with:
57+
files: ./domain-mongodb/src/main/resources/application.yml
58+
env:
59+
spring.data.mongodb.uri: ${{ secrets.MONGO_URI }}
60+
61+
- name: Set up domain-mongodb test application.yml
62+
uses: microsoft/variable-substitution@v1
63+
with:
64+
files: ./domain-mongodb/src/test/resources/application.yml
65+
env:
66+
spring.data.mongodb.uri: ${{ secrets.MONGO_TEST_URI }}
67+
68+
- name: Set up admin-api application.yml
69+
uses: microsoft/variable-substitution@v1
70+
with:
71+
files: ./admin-api/src/main/resources/application.yml
72+
env:
73+
spring.datasource.url: ${{ secrets.LOCAL_DB_URL }}
74+
spring.datasource.username: ${{ secrets.LOCAL_DB_HOST }}
75+
spring.datasource.password: ${{ secrets.LOCAL_DB_PASSWORD }}
76+
spring.security.jwt.secret: ${{ secrets.JWT_SECRET_KEY }}
77+
cloud.aws.s3.bucket: ${{ secrets.S3_BUCKET_NAME }}
78+
cloud.aws.region.static: ${{ secrets.S3_REGION }}
79+
cloud.aws.credentials.accessKey: ${{ secrets.AWS_ACCESS_KEY }}
80+
cloud.aws.credentials.secretKey: ${{ secrets.AWS_ACCESS_SECRET }}
81+
custom.domain.image.baseUrl: ${{ secrets.BASE_URL }}
82+
83+
- name: Set up admin-api test application.yml
84+
uses: microsoft/variable-substitution@v1
85+
with:
86+
files: ./admin-api/src/test/resources/application.yml
87+
env:
88+
spring.security.jwt.secret: ${{ secrets.JWT_SECRET_KEY }}
89+
spring.data.mongodb.uri: ${{ secrets.MONGO_TEST_URI }}
90+
custom.domain.image.baseUrl: ${{ secrets.BASE_URL }}
91+
cloud.aws.s3.bucket: ${{ secrets.S3_BUCKET_NAME }}
92+
cloud.aws.region.static: ${{ secrets.S3_REGION }}
93+
cloud.aws.credentials.accessKey: ${{ secrets.AWS_ACCESS_KEY }}
94+
cloud.aws.credentials.secretKey: ${{ secrets.AWS_ACCESS_SECRET }}
95+
96+
- name: Build member-api with Gradle
97+
run: |
98+
cd member-api
99+
chmod +x ./gradlew
100+
./gradlew clean build
101+
102+
- name: DockerHub Login
103+
uses: docker/login-action@v2
104+
with:
105+
username: ${{ secrets.DOCKERHUB_USERNAME }}
106+
password: ${{ secrets.DOCKERHUB_TOKEN }}
107+
108+
- name: admin-api Docker Image Build
109+
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/kernelsquare-dev ./admin-api
110+
111+
- name: admin-api DockerHub Push
112+
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/kernelsquare-dev
113+
114+
deploy:
115+
needs: if-dev-merge
116+
runs-on: ubuntu-latest
117+
steps:
118+
- name: Deploy and Run
119+
uses: appleboy/ssh-action@master
120+
with:
121+
host: ${{ secrets.DEV_IP }}
122+
username: ${{ secrets.EC2_USERNAME }}
123+
key: ${{ secrets.DEV_SSH_KEY }}
124+
script: |
125+
sudo docker stop prod1-dev || true
126+
sudo docker rm prod1-dev || true
127+
sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/kernelsquare-dev
128+
sudo docker run --name prod1-dev -d -p 8501:8501 ${{ secrets.DOCKERHUB_USERNAME }}/kernelsquare-dev
129+
sudo docker system prune -f

.github/workflows/ci.yml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@ jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313

14-
services:
15-
redis:
16-
image: redis:latest
17-
ports:
18-
- 6379:6379
19-
2014
steps:
2115
- name: Checkout
2216
uses: actions/checkout@v3
@@ -49,13 +43,6 @@ jobs:
4943
env:
5044
spring.data.mongodb.uri: ${{ secrets.MONGO_TEST_URI }}
5145

52-
- name: Set up domain-mysql test application.yml
53-
uses: microsoft/variable-substitution@v1
54-
with:
55-
files: ./domain-mysql/src/test/resources/application.yml
56-
env:
57-
spring.security.jwt.secret: ${{ secrets.JWT_SECRET_KEY }}
58-
5946
- name: Set up member-api test application.yml
6047
uses: microsoft/variable-substitution@v1
6148
with:
@@ -75,13 +62,5 @@ jobs:
7562
- name: Run chmod to make gradlew executable
7663
run: chmod +x ./gradlew
7764

78-
- name: Docker Compose For Test
79-
run: |
80-
touch docker-compose.yml
81-
echo "${{ secrets.CI_DOCKER_COMPOSE }}" > docker-compose.yml
82-
echo docker-compose.yml
83-
docker-compose up -d
84-
docker ps
85-
8665
- name: Test with Gradle
8766
run: ./gradlew test

domain-mysql/src/test/resources/application.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ spring:
1111
flyway:
1212
enabled: false
1313

14-
security:
15-
jwt:
16-
header: Authorization
17-
secret: ${JWT_SECRET_KEY}
18-
access-token-validity-in-seconds: 3600 # 1시간
19-
refresh-token-validity-in-seconds: 1_209_600 # 2주
20-
2114
jpa:
2215
hibernate:
2316
ddl-auto: create
@@ -36,14 +29,6 @@ spring:
3629
init:
3730
mode: never
3831

39-
jackson:
40-
property-naming-strategy: SNAKE_CASE
41-
42-
data:
43-
redis:
44-
host: localhost
45-
port: 6380
46-
4732
logging.level:
4833
org.hibernate.SQL: debug
4934
# org.hibernate.type: trace

member-api/build.gradle

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -97,31 +97,24 @@ dependencies {
9797
asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor'
9898
}
9999

100+
ext {
101+
snippetsDir = file('build/generated-snippets')
102+
}
103+
100104
tasks.named('test') {
105+
outputs.dir snippetsDir
101106
useJUnitPlatform()
102107
}
103108

104-
asciidoctor {
109+
tasks.named('asciidoctor') {
110+
inputs.dir snippetsDir
111+
configurations 'asciidoctorExt'
105112
dependsOn test
106113
}
107114

108-
task copyHTML(type: Copy) {
109-
dependsOn tasks.findByName("asciidoctor")
110-
from file("build/docs/asciidoc")
111-
into file("src/main/resources/static/docs")
112-
}
113-
114-
tasks.bootJar {
115-
dependsOn tasks.asciidoctor
116-
dependsOn tasks.getByName("copyHTML")
117-
}
118-
119-
tasks.build {
120-
dependsOn(tasks.asciidoctor, tasks.copyHTML)
121-
}
122-
123-
tasks.named('jar') {
124-
enabled = false
115+
bootJar {
116+
dependsOn asciidoctor
117+
from ("${asciidoctor.outputDir}") {
118+
into 'static/docs'
119+
}
125120
}
126-
127-
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
package com.kernelsquare.memberapi.common.oauth2;
22

3-
import org.springframework.context.annotation.Bean;
43
import org.springframework.security.core.Authentication;
54
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
65
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService;
76
import org.springframework.stereotype.Component;
87

98
@Component
109
public class CustomInMemoryOAuth2AuthorizedClientService implements OAuth2AuthorizedClientService {
11-
@Override
12-
public <T extends OAuth2AuthorizedClient> T loadAuthorizedClient(String clientRegistrationId, String principalName) {
13-
return null;
14-
}
10+
@Override
11+
public <T extends OAuth2AuthorizedClient> T loadAuthorizedClient(String clientRegistrationId,
12+
String principalName) {
13+
return null;
14+
}
1515

16-
@Override
17-
public void saveAuthorizedClient(OAuth2AuthorizedClient authorizedClient, Authentication principal) {
16+
@Override
17+
public void saveAuthorizedClient(OAuth2AuthorizedClient authorizedClient, Authentication principal) {
1818

19-
}
19+
}
2020

21-
@Override
22-
public void removeAuthorizedClient(String clientRegistrationId, String principalName) {
21+
@Override
22+
public void removeAuthorizedClient(String clientRegistrationId, String principalName) {
2323

24-
}
24+
}
2525
}

0 commit comments

Comments
 (0)