GitHub Action
: 깃헙에서 제공하는 CI/CD 및 자동화 서비스로 깃헙 레파지토리에서 발생하는 이벤트에 따라 워크플로우를 정의하고 이틍 통해 소트프웨어 빌드, 테스트, 배포 등을 자동으로 수행할 수 있다.
- 깃헙에 업로드한 걸 로컬 컴퓨터에 Clone
- 코드를 수정해서 기능을 변경 또는 추가
- 깃헙에 Push
- CI 서버에서 자동으로 우분투 설치, JDK 설치, 코드 다운로드, 코드 테스트, build
- 정상이면 배포
CI 서버를 사용하기 위한 스크립트 deploy.yml 파일 작성
===> 프로젝트 이름에 main 브랜치에 푸시
===> 여러 작업은 'jobs' 섹션에서 정의하고 각 작업은 'steps'로 구성된다. steps에는 워크플로의 각 단계에 해당하는 작업을 정의한다.
== uses : actions/checkout@v3 (actions 라이브러리에서 제공하는 명령어로 먼저 저장소를 체크아웃해준다.)
== uses : actions/setup-java@v3 (actions 라이브러리 에서 제공하는 명령어로 java 설치)
== run : chmod + x ./gradlew (gradlew 파일 권한 부여)
===> 한국시간으로 시간 설정
===> run : | 은 여러 줄로 명령어를 작성하겠다는 의미
mkdir deploy : deploy 파일 생성
cp build/libs/*.jar deploy/application.jar : build/libs/*.jar에서 생성된 jar 파일을 deploy/application.jar에 복사
cp procfile deploy/procfile : procfile를 deploy/procfile에 복사
cp -r .ebextensions deploy/.ebextensions : ebextensions 폴더를 deploy.ebextensions 폴더로 복사
(엘라스틱 빈스톡의 .ebextensions 폴더가 프로젝트의 특정 디렉토리로 정리되어 배포를 위한 설정 파일들이 별도의 위치에 저장될 때 사용할 수 있는 명령어)
cp deploy && zip -r deploy.zip : 두 개의 명령어를 사용하여 실행하려는 듯한 구문이지만, 명령어 간의 &&로 연결되어 첫 번째 명령어가 성공하면 다음 두 번째 명령어가 실행되도록 하는 것.
[K-디지털] AWS 리눅스 기반 클라우드 데브옵스 기초 실무 과정 참고하며 작성하였습니다.
'WEB > DevOps' 카테고리의 다른 글
AWS) 롤링 업데이트 및 배포 (0) | 2024.01.12 |
---|---|
AWS) 오토 스케일링과 로드 밸랜서 (0) | 2024.01.12 |
AWS) 엘라스틱 빈스톡와 RDS 생성 및 배포 (0) | 2024.01.09 |
AWS) IAM_Identity Access Manager (2) | 2024.01.03 |
AWS) CI/CD 지속적 통합 및 지속적 배포, 전달 (1) | 2024.01.03 |