Skip to content

Commit dc7e1ab

Browse files
authored
[Refactor] swagger 배포 단계를 custom action으로 교체 (#299)
* refactor: 사용하지 않는 import 제거 * refactor: @Autowired 제거 * refactor: 동시성 설정 * refactor: Rest Docs가 변경될 때만 동작 * refactor: Custom Action으로 교체 * test: swagger 배포 workflow 트리거 발생시키는 변경
1 parent 7e15317 commit dc7e1ab

11 files changed

Lines changed: 22 additions & 46 deletions

File tree

.github/workflows/deploy-swagger.yaml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,17 @@ on:
55
branches:
66
- develop
77

8+
paths:
9+
- 'src/test/**/*Controller*.java'
10+
811
jobs:
912
build-and-deploy:
1013
runs-on: ubuntu-latest
14+
15+
concurrency:
16+
group: swagger-deploy
17+
cancel-in-progress: true
18+
1119
steps:
1220
- name: 리포지토리 체크아웃
1321
uses: actions/checkout@v4
@@ -35,17 +43,11 @@ jobs:
3543
- name: Gradle build
3644
run: ./gradlew build
3745

38-
- name: Swagger UI 생성
39-
uses: Legion2/swagger-ui-action@v1
40-
with:
41-
output: swagger-ui
42-
spec-file: build/api-spec/openapi3.yaml
43-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44-
45-
- name: Cloudflare Pages에 배포
46-
uses: cloudflare/wrangler-action@v3
46+
- name: Cloudflare Pages에 Swagger 배포
47+
uses: DongminL/swagger-to-cloudflare-pages@v1
4748
with:
48-
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
49-
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
50-
command: pages deploy swagger-ui --project-name="signal-buddy-api-docs"
51-
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
49+
spec-file-path: build/api-spec/openapi3.yaml
50+
cloudflare-account-id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
51+
cloudflare-api-token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
52+
project-name: signal-buddy-api-docs
53+
github-token: ${{ secrets.GITHUB_TOKEN }}

src/main/java/org/programmers/signalbuddyfinal/domain/admin/controller/AdminController.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@
44
import lombok.RequiredArgsConstructor;
55
import org.programmers.signalbuddyfinal.domain.admin.dto.AdminJoinRequest;
66
import org.programmers.signalbuddyfinal.domain.admin.service.AdminService;
7-
import org.programmers.signalbuddyfinal.domain.member.dto.MemberJoinRequest;
87
import org.programmers.signalbuddyfinal.domain.member.dto.MemberResponse;
98
import org.programmers.signalbuddyfinal.global.response.ApiResponse;
109
import org.springframework.http.ResponseEntity;
11-
import org.springframework.validation.annotation.Validated;
1210
import org.springframework.web.bind.annotation.PostMapping;
13-
import org.springframework.web.bind.annotation.RequestBody;
1411
import org.springframework.web.bind.annotation.RequestMapping;
1512
import org.springframework.web.bind.annotation.RequestPart;
1613
import org.springframework.web.bind.annotation.RestController;

src/main/java/org/programmers/signalbuddyfinal/domain/admin/controller/AdminPostItController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.programmers.signalbuddyfinal.domain.admin.controller;
22

33
import java.time.LocalDateTime;
4-
import java.util.Optional;
54
import lombok.RequiredArgsConstructor;
65
import org.programmers.signalbuddyfinal.domain.admin.dto.AdminPostItResponse;
76
import org.programmers.signalbuddyfinal.domain.admin.dto.PostItFilterRequest;

src/main/java/org/programmers/signalbuddyfinal/domain/admin/service/AdminPostItService.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package org.programmers.signalbuddyfinal.domain.admin.service;
22

33
import java.time.LocalDateTime;
4-
import java.util.Optional;
54
import lombok.RequiredArgsConstructor;
65
import org.programmers.signalbuddyfinal.domain.admin.dto.AdminPostItResponse;
76
import org.programmers.signalbuddyfinal.domain.admin.dto.PostItFilterRequest;
87
import org.programmers.signalbuddyfinal.domain.admin.exception.AdminErrorCode;
9-
import org.programmers.signalbuddyfinal.domain.member.entity.Member;
10-
import org.programmers.signalbuddyfinal.domain.member.repository.MemberRepository;
118
import org.programmers.signalbuddyfinal.domain.postit.dto.PostItResponse;
129
import org.programmers.signalbuddyfinal.domain.postit.entity.Postit;
1310
import org.programmers.signalbuddyfinal.domain.postit.mapper.PostItMapper;
1411
import org.programmers.signalbuddyfinal.domain.postit.repository.PostItRepository;
15-
import org.programmers.signalbuddyfinal.domain.postit.service.PostItComplete;
1612
import org.programmers.signalbuddyfinal.domain.postitsolve.entity.PostitSolve;
1713
import org.programmers.signalbuddyfinal.domain.postitsolve.repository.PostitSolveRepository;
1814
import org.programmers.signalbuddyfinal.global.dto.PageResponse;
@@ -26,7 +22,6 @@
2622
public class AdminPostItService {
2723
// TODO : 만료일만 변경하는 기능 추가,,,
2824
private final PostItRepository postItRepository;
29-
private final MemberRepository memberRepository;
3025
private final PostitSolveRepository postitSolveRepository;
3126

3227
public PageResponse<AdminPostItResponse> getAllPostIt(Pageable pageable) {

src/main/java/org/programmers/signalbuddyfinal/domain/air_quality/service/AirQualityProvider.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
import java.util.Optional;
88
import lombok.RequiredArgsConstructor;
99
import lombok.extern.slf4j.Slf4j;
10-
import org.apache.poi.sl.draw.geom.GuideIf.Op;
1110
import org.programmers.signalbuddyfinal.domain.air_quality.dto.AirQuality;
12-
import org.programmers.signalbuddyfinal.domain.air_quality.dto.AirQualityItems;
1311
import org.programmers.signalbuddyfinal.domain.air_quality.dto.Result;
1412
import org.programmers.signalbuddyfinal.domain.air_quality.exception.AirQualityErrorCode;
1513
import org.programmers.signalbuddyfinal.global.exception.BusinessException;

src/main/java/org/programmers/signalbuddyfinal/domain/member/dto/MemberUpdateRequest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package org.programmers.signalbuddyfinal.domain.member.dto;
22

3-
import jakarta.validation.constraints.Email;
43
import lombok.AccessLevel;
54
import lombok.AllArgsConstructor;
65
import lombok.Builder;
76
import lombok.Getter;
87
import lombok.NoArgsConstructor;
98
import lombok.ToString;
10-
import org.springframework.web.multipart.MultipartFile;
119

1210
@Getter
1311
@Builder

src/main/java/org/programmers/signalbuddyfinal/domain/social/entity/Provider.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import com.fasterxml.jackson.annotation.JsonCreator;
44
import lombok.Getter;
5-
import org.programmers.signalbuddyfinal.global.exception.BusinessException;
6-
import org.springframework.http.converter.HttpMessageNotReadableException;
75

86
@Getter
97
public enum Provider {

src/main/java/org/programmers/signalbuddyfinal/domain/term/service/TermService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.programmers.signalbuddyfinal.domain.term.exception.TermErrorCode;
88
import org.programmers.signalbuddyfinal.domain.term_version.entity.TermVersion;
99
import org.programmers.signalbuddyfinal.domain.term_version.repository.CustomTermVersionRepositoryImpl;
10-
import org.programmers.signalbuddyfinal.domain.term_version.repository.TermVersionRepository;
1110
import org.programmers.signalbuddyfinal.global.exception.BusinessException;
1211
import org.programmers.signalbuddyfinal.global.response.ApiResponse;
1312
import org.springframework.http.ResponseEntity;
@@ -18,7 +17,6 @@
1817
public class TermService {
1918

2019
private final CustomTermVersionRepositoryImpl customTermVersionRepository;
21-
private final TermVersionRepository termVersionRepository;
2220

2321
public ResponseEntity<ApiResponse<TermResponse>> getTerm(TermCategory termCategory) {
2422

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,23 @@
11
package org.programmers.signalbuddyfinal.domain.trafficSignal.controller;
22

3+
import java.io.IOException;
34
import lombok.RequiredArgsConstructor;
45
import org.programmers.signalbuddyfinal.domain.trafficSignal.service.TrafficCsvService;
5-
import org.programmers.signalbuddyfinal.global.annotation.CurrentUser;
6-
import org.programmers.signalbuddyfinal.global.dto.CustomUser2Member;
76
import org.programmers.signalbuddyfinal.global.response.ApiResponse;
8-
import org.springframework.beans.factory.annotation.Autowired;
9-
import org.springframework.http.HttpStatus;
107
import org.springframework.http.ResponseEntity;
118
import org.springframework.validation.annotation.Validated;
12-
import org.springframework.web.bind.annotation.*;
13-
14-
import java.io.File;
15-
import java.io.IOException;
16-
import java.util.regex.Pattern;
9+
import org.springframework.web.bind.annotation.PostMapping;
10+
import org.springframework.web.bind.annotation.RequestMapping;
11+
import org.springframework.web.bind.annotation.RequestParam;
12+
import org.springframework.web.bind.annotation.RestController;
1713

1814
@Validated
1915
@RestController
2016
@RequestMapping("/api/traffic")
2117
@RequiredArgsConstructor
2218
public class TrafficController {
2319

24-
@Autowired
25-
private TrafficCsvService trafficCsvService;
20+
private final TrafficCsvService trafficCsvService;
2621

2722
@PostMapping("/save")
2823
public ResponseEntity<ApiResponse<Object>> saveTrafficData(
@@ -33,6 +28,4 @@ public ResponseEntity<ApiResponse<Object>> saveTrafficData(
3328

3429
return ResponseEntity.ok(ApiResponse.createSuccess("파일이 성공적으로 저장되었습니다."));
3530
}
36-
37-
3831
}

src/main/java/org/programmers/signalbuddyfinal/domain/weather/service/WeatherProvider.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import com.fasterxml.jackson.core.type.TypeReference;
44
import com.fasterxml.jackson.databind.JsonNode;
55
import com.fasterxml.jackson.databind.ObjectMapper;
6-
import java.time.LocalDate;
7-
import java.time.LocalTime;
86
import java.time.ZoneId;
97
import java.time.ZonedDateTime;
108
import java.time.format.DateTimeFormatter;

0 commit comments

Comments
 (0)