You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
CI/CD 란?
CI
CD
CI/CD를 어떻게 구축할 수 있을까?
Jenkins
Jenkins란?
단점
Github Actioins
Github Actions란?
단점
블루밍에서 사용할 CI/CD 툴 및 이유
Github Actions 스크립트 간단 설명
용어 설명
Github Actions을 통한 CD 구축하기
.github
디렉터리 하위에workflows
디렉터리 생성 후 해당 디렉터리에 workflow 파일들을 만들어주기dev-cd.yml
스크립트 작성develop 브랜치에 push될 때 트리거됨
pr이 develop 브랜치에 머지될 때 트리거되고 싶음
즉, devleop 브랜치에 커밋이 push될 때 트리거 되면 됨
아래와 같이 설정
workflow_dispatch
: 수동 트리거2. Job의 환경 설정
3. Github Submodule 사용 옵션 설정
develop 브랜치를 체크아웃할 때 서브 모듈 사용 옵션을 설정해줘야 함 (checkout action 참고 자료)
깃허브 설정의 secrets 탭에서
GITHUB_TOKEN
을 설정할 수 있음GITHUB_TOKEN
은 서브모듈에 접근이 가능한 계정에 대한 토큰을 사용해야 한다4. Github Hosted Runner를 통한 빌드 수행
빌드를 위해 JDK 17 버전 설치
애플리케이션 빌드
이때, 빌드는 bootJar로 수행함
→ CI를 통해 테스트 등에 대한 검증은 모두 완료했다 가정하기에 jar 빌드에만 집중하기 위해 해당 방식으로 진행, 이를 통해 더 빠른 속도로 빌드할 수 있다
캐싱 처리를 통해 매번 새롭게 환경을 구축하지 않아도 되도록 한다
5. Github Hosted Runner에서 빌드된 jar 파일을 개발 서버로 전달
strip_components
: source path 중 복사되는 기준 경로→ 원래 scp 명령어 수행 시 source의 경로를 그대로 복사하는데, 경로를 어디서 부터 사용할지에 대해 설정하는 옵션
6. 개발 서버에서 자동 배포 스크립트 수행
7. 배포 실행 결과에 대해 Slack에 알림
전체 코드
참고 자료
Jenkins vs GitHub Action vs Tekton
워크서버개발팀의 GitHub Actions 적용기
GitHub Actions으로 배포 자동화해 보기(a.k.a CI/CD) - 2화 - 골든래빗
Github Action 에서 Submodule 설정 방법
Beta Was this translation helpful? Give feedback.
All reactions