inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 CI/CD 입문·실전

Deploy 트리거 관련 질문드립니다.

해결된 질문

95

RookieLsou

작성한 질문수 4

0

강의를 들으면서 프로젝트로 실습해보다가 궁금한 점이 생겨 질문드립니다!

강의에서는 main 브랜치에 push가 일어나는 것이 트리거가 되는 경우를 설명해주셨습니다.

만약에 main 브랜치 하위에 기능별로 브랜치를 나누어서

feature/login, feature/post 식으로 브랜치가 존재하며

프론트엔드 React 코드, 백엔드 Spring 코드의 별도 구분 없이 각각의 브랜치에 같이 존재한다면

백엔드 코드만 ec2에 deploy 되도록 설정하는 방법이 있을까요?

aws docker ci/cd github-actions aws-code-deploy infrastructure aws-ec2

답변 2

1

JSCODE 박재성

안녕하세요 RookieLsou님! 아주 좋은 질문 해주셨네요:)

아래의 방법을 활용해 구현할 수 있습니다!

image.png

위 설명 보시면서 이해 안 되시거나 또 다른 궁금한 점 생기시면 질문 남겨주세요~~

0

RookieLsou

같은 repo 안에서 frontend, backend 디렉터리를 나눠서 세팅하고 관리하라는 뜻으로 이해하면 될까요?

1

JSCODE 박재성

넵넵! 만약 같은 repo를 쓰고 계시다면 frontend, backend 디렉터리를 나눠서 셋팅하신 다음에 위에서 답변드린 방법을 사용하시면 됩니다~!!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. RookieLsou님.

강의에서 설명된 CI/CD 파이프라인 구조에서 deploy 트리거 설정에 대해 궁금해하신 부분에 대해 설명드리겠습니다.

특정 코드만 Deploy하는 방법

CI/CD 파이프라인에서 특정 파일 또는 디렉토리의 변경 사항만을 대상으로 배포를 수행하려면 몇 가지 전략을 활용할 수 있습니다:

  1. 경로 기반 필터 사용:

    • CI/CD 도구(예: GitHub Actions, Jenkins 등)에서는 특정 경로의 변경을 감지하여 작업을 수행할 수 있도록 설정할 수 있습니다. 예를 들어, GitHub Actions의 경우 paths 옵션을 이용하여 특정 디렉토리에 있는 파일의 변경이 있을 때만 워크플로우를 트리거할 수 있습니다.
    • 예시:
      ”`yaml
      on:
      push:
      branches:
         - main
      
      paths:
      - ‘backend/**’
      ”`
  2. Mono Repo 전략:

    • 프론트엔드와 백엔드를 하나의 리포지토리 내에서 관리하되, 각기 다른 디렉토리로 나누어 배치합니다. 그런 다음 배포 파이프라인에서 각 디렉토리의 변화만 감지하여 배포를 수행하도록 설정할 수 있습니다.
  3. 서브모듈 또는 서브트리 사용:

    • 프로젝트 구조를 서브모듈 또는 서브트리로 분리하여 각각 독립적인 배포 파이프라인을 가질 수 있습니다. 이는 프로젝트를 깨끗하게 분리하고, 각각의 서비스가 독립적으로 배포될 수 있도록 합니다.
  4. 스크립트 수정:

    • 파이프라인 스크립트 내에서 변경된 파일을 감지하고, 백엔드 관련 변경사항이 있을 때만 배포를 수행하도록 조건을 추가할 수 있습니다.

관련 질문과 답변이 유사한 내용이 담긴 게시물이 있다면, 아래 링크를 참고하시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

무중단 배포

0

56

2

workflows/deploy.yml 궁금증

0

52

2

.git-credentials 파일이 없이 배포가 성공한 이유가 궁금

0

57

1

(해결 - 정보공유) /home/runner/work/_temp/6be6e~0.sh: line 1: ./gradlew: Permission denied 오류

1

63

2

(확인 완료) git config --global creadential.helper store 후에도 비밀번호 물어보는 현상

1

71

2

질문_ 강의 순서 및 그외

0

70

2

섹션 4 - Docker + 백엔드(Spring Boot)

0

63

2

deploy.yml작성후 원격에 push불가

0

63

2

CodeDeploy 사용시 registration 요구

0

105

3

스프링 종료 명령어

0

68

2

RAM & 스왑메모리 폭증하는 문제

0

102

2

섹션 4, 5와 6, 7은 유사한가요?

0

66

1

code deploy 배포입니다.

0

98

3

사용자 삭제가 안되는 이유

0

87

2

이미지 pull중 no basic auth credentials 문제입니다.

0

113

2

Docker Compose파일을 작성했을때 CI CD와의 연동

0

96

2

보안그룹 생성 오류

0

84

3

AWS 5월에 탈퇴해서 그러는데....

0

81

1

배포 오류

0

80

2

node.js 설치시 에러

0

149

2

appspec.yml, 스크립트 파일 수정요청

0

82

2

appleboy/ssh-action stop_script 대체

1

180

2

Vue.js 파일 배포

0

61

2

aws를완강하고 ci/cd로 넘어왔습니다.

0

85

1