From dbaca1837c84766d8014396c7663cce9107baa29 Mon Sep 17 00:00:00 2001 From: suhhyun <97878992+suhhyun524@users.noreply.github.com> Date: Tue, 21 Nov 2023 20:11:40 +0900 Subject: [PATCH 1/3] Main push (#160) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat : front dev url 추가 * add: 아이디어톤, 해커톤 날짜 추가 (#157) * [refact] 홈페이지 수정사항 반영 (#159) * [fix] 시간 단위 수정 및 테스트 코드 작성 * [fix] 서류합격 validation 수정 * [fix] Type 변경 --------- Co-authored-by: mirageoasis Co-authored-by: mirageoasis <37329424+mirageoasis@users.noreply.github.com> Co-authored-by: JeongHyun Lee <86969518+hyunihs@users.noreply.github.com> Co-authored-by: Jeonghyun Lee --- .../validator/ApplicationValidator.java | 3 +- .../application/vo/ApplicantInfoVo.java | 4 +- .../recruitment/domain/Recruitment.java | 46 +++++++++++-------- .../recruitment/dto/RecruitmentDTO.java | 33 ++++++++----- .../recruitment/dto/UserRecruitmentDTO.java | 33 ++++++++----- .../validator/RecruitmentValidator.java | 12 ++--- .../global/config/WebSecurityConfig.java | 8 +++- .../recruitments/domain/SettingsTest.java | 25 +++++----- 8 files changed, 100 insertions(+), 64 deletions(-) diff --git a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java index f1e879b2..1590793f 100644 --- a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java +++ b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java @@ -1,5 +1,6 @@ package ceos.backend.domain.application.validator; +import static ceos.backend.domain.application.domain.Pass.PASS; import ceos.backend.domain.application.domain.Application; import ceos.backend.domain.application.domain.ApplicationQuestion; @@ -119,7 +120,7 @@ public void validateInterviewTimeExist(String uuid, String email) { () -> { throw ApplicantNotFound.EXCEPTION; }); - if (application.getInterviewDatetime() == null) { + if (application.getDocumentPass() == PASS && application.getInterviewDatetime() == null) { throw NotSetInterviewTime.EXCEPTION; } } diff --git a/src/main/java/ceos/backend/domain/application/vo/ApplicantInfoVo.java b/src/main/java/ceos/backend/domain/application/vo/ApplicantInfoVo.java index d8c50888..b4fde7b1 100644 --- a/src/main/java/ceos/backend/domain/application/vo/ApplicantInfoVo.java +++ b/src/main/java/ceos/backend/domain/application/vo/ApplicantInfoVo.java @@ -12,7 +12,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Positive; +import jakarta.validation.constraints.PositiveOrZero; import java.time.LocalDate; import lombok.Builder; import lombok.Getter; @@ -56,7 +56,7 @@ public class ApplicantInfoVo { @Schema(defaultValue = "99999999", description = "지원자 남은 학기 수") @NotNull(message = "지원자 남은 학기 수를 입력해주세요") - @Positive + @PositiveOrZero private int semestersLeftNumber; @Builder diff --git a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java index 5149eb29..69e3436d 100644 --- a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java +++ b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java @@ -33,22 +33,26 @@ public class Recruitment extends BaseEntity { @NotNull private String devStudyUrl; - @NotNull private LocalDate startDateDoc; + @NotNull private LocalDateTime startDateDoc; - @NotNull private LocalDate endDateDoc; + @NotNull private LocalDateTime endDateDoc; - @NotNull private LocalDate resultDateDoc; + @NotNull private LocalDateTime resultDateDoc; - @NotNull private LocalDate startDateInterview; + @NotNull private LocalDateTime startDateInterview; - @NotNull private LocalDate endDateInterview; + @NotNull private LocalDateTime endDateInterview; - @NotNull private LocalDate resultDateFinal; + @NotNull private LocalDateTime resultDateFinal; @NotNull private String openChatUrl; @NotNull private LocalDate otDate; + @NotNull private LocalDate ideathonDate; + + @NotNull private LocalDate hackathonDate; + @NotNull private LocalDate demodayDate; private LocalDateTime applicationExcelCreatedAt; @@ -60,14 +64,16 @@ private Recruitment( String prodStudyUrl, String designStudyUrl, String devStudyUrl, - LocalDate startDateDoc, - LocalDate endDateDoc, - LocalDate resultDateDoc, - LocalDate startDateInterview, - LocalDate endDateInterview, - LocalDate resultDateFinal, + LocalDateTime startDateDoc, + LocalDateTime endDateDoc, + LocalDateTime resultDateDoc, + LocalDateTime startDateInterview, + LocalDateTime endDateInterview, + LocalDateTime resultDateFinal, String openChatUrl, LocalDate otDate, + LocalDate ideathonDate, + LocalDate hackathonDate, LocalDate demodayDate, LocalDateTime applicationExcelCreatedAt) { this.generation = generation; @@ -82,6 +88,8 @@ private Recruitment( this.resultDateFinal = resultDateFinal; this.openChatUrl = openChatUrl; this.otDate = otDate; + this.ideathonDate = ideathonDate; + this.hackathonDate = hackathonDate; this.demodayDate = demodayDate; this.applicationExcelCreatedAt = applicationExcelCreatedAt; } @@ -99,6 +107,8 @@ public void updateRecruitment(RecruitmentDTO recruitmentDTO) { this.resultDateFinal = recruitmentDTO.getResultDateFinal(); this.openChatUrl = recruitmentDTO.getOpenChatUrl(); this.otDate = recruitmentDTO.getOtDate(); + this.ideathonDate = recruitmentDTO.getIdeathonDate(); + this.hackathonDate = recruitmentDTO.getHackathonDate(); this.demodayDate = recruitmentDTO.getDemodayDate(); } @@ -113,7 +123,7 @@ public void validateGeneration(int generation) { } } - public void validateBetweenStartDateDocAndEndDateDoc(LocalDate now) { + public void validateBetweenStartDateDocAndEndDateDoc(LocalDateTime now) { if (now.compareTo(this.getStartDateDoc()) < 0) { throw NotApplicationDuration.EXCEPTION; } @@ -122,7 +132,7 @@ public void validateBetweenStartDateDocAndEndDateDoc(LocalDate now) { } } - public void validateFinalResultAbleDuration(LocalDate now) { + public void validateFinalResultAbleDuration(LocalDateTime now) { if (now.compareTo(this.resultDateFinal.plusDays(5)) >= 0) { throw NotFinalResultCheckDuration.EXCEPTION; } @@ -131,7 +141,7 @@ public void validateFinalResultAbleDuration(LocalDate now) { } } - public void validateBetweenStartDateDocAndResultDateDoc(LocalDate now) { + public void validateBetweenStartDateDocAndResultDateDoc(LocalDateTime now) { if (now.compareTo(this.startDateDoc) < 0) { throw NotDocumentPassDuration.EXCEPTION; } @@ -140,7 +150,7 @@ public void validateBetweenStartDateDocAndResultDateDoc(LocalDate now) { } } - public void validateBetweenResultDateDocAndResultDateFinal(LocalDate now) { + public void validateBetweenResultDateDocAndResultDateFinal(LocalDateTime now) { if (now.compareTo(this.resultDateDoc) < 0) { throw NotFinalPassDuration.EXCEPTION; } @@ -149,13 +159,13 @@ public void validateBetweenResultDateDocAndResultDateFinal(LocalDate now) { } } - public void validateBeforeStartDateDoc(LocalDate now) { + public void validateBeforeStartDateDoc(LocalDateTime now) { if (now.compareTo(this.startDateDoc) >= 0) { throw AlreadyApplicationDuration.EXCEPTION; } } - public void validAmenablePeriod(LocalDate now) { + public void validAmenablePeriod(LocalDateTime now) { if (now.compareTo(this.startDateDoc) >= 0 && now.compareTo(this.resultDateFinal) <= 0) { throw NotAllowedToModify.EXCEPTION; } diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java b/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java index fd73857f..c177e48c 100644 --- a/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java +++ b/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java @@ -3,6 +3,7 @@ import ceos.backend.domain.recruitment.domain.Recruitment; import java.time.LocalDate; +import java.time.LocalDateTime; import lombok.Builder; import lombok.Getter; @@ -12,14 +13,16 @@ public class RecruitmentDTO { private String prodStudyUrl; private String designStudyUrl; private String devStudyUrl; - private LocalDate startDateDoc; - private LocalDate endDateDoc; - private LocalDate resultDateDoc; - private LocalDate startDateInterview; - private LocalDate endDateInterview; - private LocalDate resultDateFinal; + private LocalDateTime startDateDoc; + private LocalDateTime endDateDoc; + private LocalDateTime resultDateDoc; + private LocalDateTime startDateInterview; + private LocalDateTime endDateInterview; + private LocalDateTime resultDateFinal; private String openChatUrl; private LocalDate otDate; + private LocalDate ideathonDate; + private LocalDate hackathonDate; private LocalDate demodayDate; @Builder @@ -28,14 +31,16 @@ public RecruitmentDTO( String prodStudyUrl, String designStudyUrl, String devStudyUrl, - LocalDate startDateDoc, - LocalDate endDateDoc, - LocalDate resultDateDoc, - LocalDate startDateInterview, - LocalDate endDateInterview, - LocalDate resultDateFinal, + LocalDateTime startDateDoc, + LocalDateTime endDateDoc, + LocalDateTime resultDateDoc, + LocalDateTime startDateInterview, + LocalDateTime endDateInterview, + LocalDateTime resultDateFinal, String openChatUrl, LocalDate otDate, + LocalDate ideathonDate, + LocalDate hackathonDate, LocalDate demodayDate) { this.generation = generation; this.prodStudyUrl = prodStudyUrl; @@ -49,6 +54,8 @@ public RecruitmentDTO( this.resultDateFinal = resultDateFinal; this.openChatUrl = openChatUrl; this.otDate = otDate; + this.ideathonDate = ideathonDate; + this.hackathonDate = hackathonDate; this.demodayDate = demodayDate; } @@ -66,6 +73,8 @@ public static RecruitmentDTO from(Recruitment recruitment) { .resultDateFinal(recruitment.getResultDateFinal()) .openChatUrl(recruitment.getOpenChatUrl()) .otDate(recruitment.getOtDate()) + .ideathonDate(recruitment.getIdeathonDate()) + .hackathonDate(recruitment.getHackathonDate()) .demodayDate(recruitment.getDemodayDate()) .build(); } diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java b/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java index 4b64ed45..d13b1a6d 100644 --- a/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java +++ b/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java @@ -3,6 +3,7 @@ import ceos.backend.domain.recruitment.domain.Recruitment; import java.time.LocalDate; +import java.time.LocalDateTime; import lombok.Builder; import lombok.Getter; @@ -12,13 +13,15 @@ public class UserRecruitmentDTO { private String prodStudyUrl; private String designStudyUrl; private String devStudyUrl; - private LocalDate startDateDoc; - private LocalDate endDateDoc; - private LocalDate resultDateDoc; - private LocalDate startDateInterview; - private LocalDate endDateInterview; - private LocalDate resultDateFinal; + private LocalDateTime startDateDoc; + private LocalDateTime endDateDoc; + private LocalDateTime resultDateDoc; + private LocalDateTime startDateInterview; + private LocalDateTime endDateInterview; + private LocalDateTime resultDateFinal; private LocalDate otDate; + private LocalDate ideathonDate; + private LocalDate hackathonDate; private LocalDate demodayDate; @Builder @@ -27,13 +30,15 @@ public UserRecruitmentDTO( String prodStudyUrl, String designStudyUrl, String devStudyUrl, - LocalDate startDateDoc, - LocalDate endDateDoc, - LocalDate resultDateDoc, - LocalDate startDateInterview, - LocalDate endDateInterview, - LocalDate resultDateFinal, + LocalDateTime startDateDoc, + LocalDateTime endDateDoc, + LocalDateTime resultDateDoc, + LocalDateTime startDateInterview, + LocalDateTime endDateInterview, + LocalDateTime resultDateFinal, LocalDate otDate, + LocalDate ideathonDate, + LocalDate hackathonDate, LocalDate demodayDate) { this.generation = generation; this.prodStudyUrl = prodStudyUrl; @@ -46,6 +51,8 @@ public UserRecruitmentDTO( this.endDateInterview = endDateInterview; this.resultDateFinal = resultDateFinal; this.otDate = otDate; + this.ideathonDate = ideathonDate; + this.hackathonDate = hackathonDate; this.demodayDate = demodayDate; } @@ -62,6 +69,8 @@ public static UserRecruitmentDTO from(Recruitment recruitment) { .endDateInterview(recruitment.getEndDateInterview()) .resultDateFinal(recruitment.getResultDateFinal()) .otDate(recruitment.getOtDate()) + .ideathonDate(recruitment.getIdeathonDate()) + .hackathonDate(recruitment.getHackathonDate()) .demodayDate(recruitment.getDemodayDate()) .build(); } diff --git a/src/main/java/ceos/backend/domain/recruitment/validator/RecruitmentValidator.java b/src/main/java/ceos/backend/domain/recruitment/validator/RecruitmentValidator.java index 1910a5e1..c8f731f0 100644 --- a/src/main/java/ceos/backend/domain/recruitment/validator/RecruitmentValidator.java +++ b/src/main/java/ceos/backend/domain/recruitment/validator/RecruitmentValidator.java @@ -2,7 +2,7 @@ import ceos.backend.domain.recruitment.helper.RecruitmentHelper; -import java.time.LocalDate; +import java.time.LocalDateTime; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -14,26 +14,26 @@ public class RecruitmentValidator { public void validateBetweenStartDateDocAndEndDateDoc() { recruitmentHelper .takeRecruitment() - .validateBetweenStartDateDocAndEndDateDoc(LocalDate.now()); + .validateBetweenStartDateDocAndEndDateDoc(LocalDateTime.now()); } public void validateBeforeStartDateDoc() { - recruitmentHelper.takeRecruitment().validateBeforeStartDateDoc(LocalDate.now()); + recruitmentHelper.takeRecruitment().validateBeforeStartDateDoc(LocalDateTime.now()); } public void validateBetweenResultDateDocAndResultDateFinal() { recruitmentHelper .takeRecruitment() - .validateBetweenResultDateDocAndResultDateFinal(LocalDate.now()); + .validateBetweenResultDateDocAndResultDateFinal(LocalDateTime.now()); } public void validateFinalResultAbleDuration() { - recruitmentHelper.takeRecruitment().validateFinalResultAbleDuration(LocalDate.now()); + recruitmentHelper.takeRecruitment().validateFinalResultAbleDuration(LocalDateTime.now()); } public void validateBetweenStartDateDocAndResultDateDoc() { recruitmentHelper .takeRecruitment() - .validateBetweenStartDateDocAndResultDateDoc(LocalDate.now()); + .validateBetweenStartDateDocAndResultDateDoc(LocalDateTime.now()); } } diff --git a/src/main/java/ceos/backend/global/config/WebSecurityConfig.java b/src/main/java/ceos/backend/global/config/WebSecurityConfig.java index 0de5b0a4..725e7df7 100644 --- a/src/main/java/ceos/backend/global/config/WebSecurityConfig.java +++ b/src/main/java/ceos/backend/global/config/WebSecurityConfig.java @@ -50,6 +50,9 @@ public class WebSecurityConfig { @Value("${server.admin_url}") private String ADMIN_URL; + @Value("${server.dev_url}") + private String DEV_URL; + @Value("${swagger.user}") private String swaggerUser; @@ -82,7 +85,7 @@ public class WebSecurityConfig { private final String[] GetPermittedPatterns = { "/awards/**", - "/recruitments/**", + "/recruitments", "/projects/**", "/activities/**", "/managements/**", @@ -188,7 +191,8 @@ private CorsConfiguration getDefaultCorsConfiguration() { "http://localhost:3001", USER_URL, ADMIN_URL, - SERVER_URL)); + SERVER_URL, + DEV_URL)); configuration.setAllowedHeaders(List.of("*")); configuration.setAllowedMethods(List.of("*")); configuration.setAllowCredentials(true); diff --git a/src/test/java/ceos/backend/domain/recruitments/domain/SettingsTest.java b/src/test/java/ceos/backend/domain/recruitments/domain/SettingsTest.java index 869547e7..a0f52b95 100644 --- a/src/test/java/ceos/backend/domain/recruitments/domain/SettingsTest.java +++ b/src/test/java/ceos/backend/domain/recruitments/domain/SettingsTest.java @@ -5,7 +5,7 @@ import ceos.backend.domain.admin.exception.NotAllowedToModify; import ceos.backend.domain.recruitment.domain.Recruitment; import ceos.backend.domain.recruitment.helper.RecruitmentHelper; -import java.time.LocalDate; +import java.time.LocalDateTime; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -23,13 +23,15 @@ void validAmenablePeriod_X() { Recruitment recruitment = recruitmentHelper.takeRecruitment(); // when - LocalDate startDateDoc = recruitment.getStartDateDoc(); - LocalDate date = - LocalDate.of( + LocalDateTime startDateDoc = recruitment.getStartDateDoc(); + + LocalDateTime date = + LocalDateTime.of( startDateDoc.getYear(), startDateDoc.getMonth(), - startDateDoc.getDayOfMonth() + 1); - + startDateDoc.getDayOfMonth(), + startDateDoc.getHour(), + startDateDoc.getMinute() + 1); // then assertThrows( NotAllowedToModify.class, @@ -46,13 +48,14 @@ void validAmenablePeriod_O() { Recruitment recruitment = recruitmentHelper.takeRecruitment(); // when - LocalDate startDateDoc = recruitment.getStartDateDoc(); - LocalDate date = - LocalDate.of( + LocalDateTime startDateDoc = recruitment.getStartDateDoc(); + LocalDateTime date = + LocalDateTime.of( startDateDoc.getYear(), startDateDoc.getMonth(), - startDateDoc.getDayOfMonth() - 1); - + startDateDoc.getDayOfMonth(), + startDateDoc.getHour(), + startDateDoc.getMinute() - 1); // then recruitment.validAmenablePeriod(date); } From 638d1ce65d8ea9eb32e6caeabea0619af0a1b48b Mon Sep 17 00:00:00 2001 From: Seo Chanhyeok Date: Mon, 18 Dec 2023 15:47:49 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[refact]=20github=20actions=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy_dev.yml | 172 ++++++++++++++++++++----------- 1 file changed, 109 insertions(+), 63 deletions(-) diff --git a/.github/workflows/deploy_dev.yml b/.github/workflows/deploy_dev.yml index 75bf1ed3..543a2adc 100644 --- a/.github/workflows/deploy_dev.yml +++ b/.github/workflows/deploy_dev.yml @@ -10,7 +10,9 @@ permissions: jobs: build: - runs-on: ubuntu-latest + # runs-on을 ubuntu-lastest에서 변경했음 + # 참고자료 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on + runs-on: linux steps: # 기본 체크아웃 - name: Checkout @@ -23,43 +25,9 @@ jobs: java-version: '17' distribution: 'temurin' - # 그래들 캐싱 - - name: Gradle Caching - uses: actions/cache@v3 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: Make application-secret.yml without env - run: | - touch ./src/main/resources/application-secret.yml - echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml - env: - PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET_DEV }} - - - name: Make env - run: | - touch .env - echo "${{ secrets.ENV_DEV }}" > .env - env: - PROPERTIES_DEV: ${{ secrets.ENV_DEV }} - - # Gradle build + ## gradle build - name: Build with Gradle - run: ./gradlew build -x test :spotlessApply - - - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 - with: - images: ceos/ceos-server-dev - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + run: ./gradlew bootJar - name: Login to DockerHub uses: docker/login-action@v1 @@ -72,38 +40,116 @@ jobs: with: context: . file: ./Dockerfile - platforms: linux/amd64 + platforms: linux/x86 # linux/amd64에서 변경 (compatibility) push: true tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev - - name: create remote directory - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.EC2_HOST_DEV }} - username: ubuntu - key: ${{ secrets.EC2_KEY_DEV }} - script: mkdir -p ~/srv/ubuntu/ceos_web_dev - - - name: copy source via ssh key - uses: burnett01/rsync-deployments@4.1 - with: - switches: -avzr --delete - remote_path: ~/srv/ubuntu/ - remote_host: ${{ secrets.EC2_HOST_DEV }} - remote_user: ubuntu - remote_key: ${{ secrets.EC2_KEY_DEV }} - + # ssh 접근 후 docker 이미지 pull 및 컨테이너 재시작 - name: executing remote ssh commands using password uses: appleboy/ssh-action@master with: host: ${{ secrets.EC2_HOST_DEV }} - username: ubuntu + username: ec2-user # ubuntu 에서 변경 key: ${{ secrets.EC2_KEY_DEV }} script: | - sh ~/srv/ubuntu/config/scripts/deploy.sh - sudo docker stop $(sudo docker ps -a -q) - sudo docker rm $(sudo docker ps -a -q) - sudo docker rmi $(sudo docker images -q) - sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml pull - sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml up --build -d - + cd /home/ec2-user/ceos + + sudo touch .env + echo "${{ secrets.ENV_DEV }}" > .env + + sudo curl -o docker-compose.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/dev/docker-compose.dev.yml + + sudo chmod 666 /var/run/docker.sock + sudo docker rm -f $(docker ps -qa) + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev + docker-compose -f docker-compose.dev.yml --env-file ./.env up -d + docker image prune -f + + + + +# 주석 처리함 (레거시 코드) +# +# # 그래들 캐싱 +# - name: Gradle Caching +# uses: actions/cache@v3 +# with: +# path: | +# ~/.gradle/caches +# ~/.gradle/wrapper +# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} +# restore-keys: | +# ${{ runner.os }}-gradle- +# +# - name: Make application-secret.yml without env +# run: | +# touch ./src/main/resources/application-secret.yml +# echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml +# env: +# PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET_DEV }} +# +# - name: Make env +# run: | +# touch .env +# echo "${{ secrets.ENV_DEV }}" > .env +# env: +# PROPERTIES_DEV: ${{ secrets.ENV_DEV }} +# +# # Gradle build +# - name: Build with Gradle +# run: ./gradlew build -x test :spotlessApply +# +# - name: Docker meta +# id: docker_meta +# uses: crazy-max/ghaction-docker-meta@v1 +# with: +# images: +# +# - name: Set up Docker Buildx +# uses: docker/setup-buildx-action@v1 +# +# - name: Login to DockerHub +# uses: docker/login-action@v1 +# with: +# username: ${{ secrets.DOCKER_USERNAME }} +# password: ${{ secrets.DOCKER_PASSWORD }} +# +# - name: Docker build & push +# uses: docker/build-push-action@v2 +# with: +# context: . +# file: ./Dockerfile +# platforms: linux/amd64 +# push: true +# tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev +# +# - name: create remote directory +# uses: appleboy/ssh-action@master +# with: +# host: ${{ secrets.EC2_HOST_DEV }} +# username: ubuntu +# key: ${{ secrets.EC2_KEY_DEV }} +# script: mkdir -p ~/srv/ubuntu/ceos_web_dev +# +# - name: copy source via ssh key +# uses: burnett01/rsync-deployments@4.1 +# with: +# switches: -avzr --delete +# remote_path: ~/srv/ubuntu/ +# remote_host: ${{ secrets.EC2_HOST_DEV }} +# remote_user: ubuntu +# remote_key: ${{ secrets.EC2_KEY_DEV }} +# +# - name: executing remote ssh commands using password +# uses: appleboy/ssh-action@master +# with: +# host: ${{ secrets.EC2_HOST_DEV }} +# username: ubuntu +# key: ${{ secrets.EC2_KEY_DEV }} +# script: | +# sh ~/srv/ubuntu/config/scripts/deploy.sh +# sudo docker stop $(sudo docker ps -a -q) +# sudo docker rm $(sudo docker ps -a -q) +# sudo docker rmi $(sudo docker images -q) +# sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml pull +# sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml up --build -d \ No newline at end of file From 8d32cdb65ea5aabfcfcb70933b172011e8011092 Mon Sep 17 00:00:00 2001 From: Seo Chanhyeok Date: Mon, 18 Dec 2023 15:57:48 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[fix]=20platforms=20=EC=9B=90=EB=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy_dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy_dev.yml b/.github/workflows/deploy_dev.yml index 543a2adc..1c367428 100644 --- a/.github/workflows/deploy_dev.yml +++ b/.github/workflows/deploy_dev.yml @@ -40,7 +40,7 @@ jobs: with: context: . file: ./Dockerfile - platforms: linux/x86 # linux/amd64에서 변경 (compatibility) + platforms: linux/amd64 push: true tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev