일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 메뉴바 한번에
- 스테이지어스
- JWT 쓰는 방법
- getComputedStyle
- route 53
- 레포지토리
- 포트번호
- 게시글 이미지 업로드
- Winston
- N+1
- 이미지가 포함된 게시글
- N+1문제
- .env
- JWT 쓰는이유
- element.style
- 쿼리스트링
- 알림생성모듈
- unnest
- 메뉴바
- 3계층구조
- secret코드
- 알림생성
- 네비게이션 한번에
- 환경변수
- 패스파라미터
- 토큰
- JWT
- JSON Web Token
- 부트캠프
- 게시글 이미지
- Today
- Total
기주
[Github-Actions] Github-Actions와 CI/CD 알아보기 본문
Github-Actions와 CI/CD 알아보기
CI/CD (Continuous Integration Continuous Deployment)
테스트->통합->배포의 과정을 자동화하는것
왜 CI/CD를 써야할까
서비스 운영시에 코드를 수정해야할일이 굉장히 많이 일어난다.(디버깅, 새로운 기능추가)
그럴때마다 새로운 코드 배포시에 ec2에 접속해서 새로운 코드를 다운받고 재실행해야한다.
이러한 과정은 매우 반복적이고 번거로운일이기 때문에 자동화하고자하는 목적.
CI/CD의 과정
개발-커밋-빌드-테스트-배포(테스트 성공시)
CI/CD를 구축시 사용되는 툴
- Github Actions
- Jenkins
- Circle CI
- Travis CI
현업에서는 Jenkins를 활용하는가?
현업에서는 Github Actions 뿐만아니라 Jenkins도 많이 쓴다.
둘중 하나만 써도 CI/CD를 완전히 구축할 수 있다.
Github Actions를 사용한 이유:
Jenkins의 단점
별도의 서버에 구축을해야한다.
따라서 서버이용이 추가로 발생한다.
반면 Github Actions는 서버 구축 없이 기능을 사용할 수 있어서 서버비용이 들지 않고 세팅하는 번거로움이 들지않는다.
현업에서는 결국 둘다 많이쓴다.
(참고)카카오엔터프라이즈가 깃허브액션을 사용하는이유:
https://tech.kakao.com/posts/516
Github Actions
Github Actions는 로직(빌드,테스트,배포)을 실행시킬 수 있는 일종의 컴퓨터이다.
Github Actions의 CI/CD 과정
- 코드 작성후 커밋
- 깃허브에 푸시
- 푸시를 감지해서 Github Actions에 작성한 로직 실행
3-1) 빌드
3-2) 테스트
3-3) 배포 - 서버에서 배포된 최신코드로 서버를 재실행
CI/CD적용하기
프로젝트 폴더 생성
-> .github/workflows/deploy.yml
폴더의 이름이 틀리면 실행안된다.
Github-Actions 문법
// workflow
name: Github Actions 실행시키기
// event: 실행되는 시점
// main 브랜치에 푸시되면 아래 워크플로우실행
on:
push:
branches:
- main
// 하나의 워크플로우는 1개이상의 job으로 구성된다.
// 여러 job은 기본 적으로 병렬적으로 수행된다.
jobs:
// job을 식별하기위한 id
My-Deploy-Job:
// ubuntu 환경 / 최신버전
runs-on: ubuntu-latest
// step: 특정작업을 수행하는 가장 작은단위
// job은 여러 step들로 구성되어있다.
steps:
- name: Hello World 찍기2
run: echo "Hello World"
- name: 여러 명령어문장작성하기
// 여러 명령어실행하기위해서 |를 쓴다
run: |
echo "Good"
echo "Morning"
- name: 깃허브 액션 자체에 저장되어있는 변수 사용해보기
// 깃허브 커밋 해시값과 레포지토리(유저/레포지토리) 출력해보기
run: |
echo $GITHUB_SHA
echo $GITHUB_REPOSITORY
- name: 노출이 되면 안되는 값
// 레포지토리-setting-secrets 에서 환경변수 설정가능
run: |
echo ${{ secrets.MY_NAME}}
echo ${{ secrets.MY_HOBBY}}
*추가기능은 깃허브 액션 공식문서 참고하기
Github Actions의 장단점
장점
1. git pull을 활용해서 변경된 부분만 코드를 업데이트하기때문에 CI/CD속도가 빠르다.
(대부분의 CI/CD 방식들은 전체프로젝트를 갈아끼우는 방식으로 사용한다)
2. CI/CD툴로 Github Actions만 사용하기 때문에 인프라 구조가 복잡하지 않고 간단하다
단점
1. 빌드 작업을 EC2에서 직접 진행하기때문에 운영중인 서버의 성능에 영향을 미칠 수 있다.
2. 깃허브 계정정보가 EC2에 저장되기때문에 개인 프로젝트 또는 믿을 만한 사람들과 진행하는 토이 프로젝트에서만 사용해야한다.
(보안이슈)
Github Action를 언제사용하는게 좋을까?
개인 프로젝트에서 CI/CD를 심플하고 빠르게 적용시키고 싶을때 사용하는게 적절해보인다
'devops > CICD' 카테고리의 다른 글
[CI/CD] 컨테이너 환경에서 CI/CD 구축하기(+code deploy 적용) (0) | 2024.12.14 |
---|---|
[CI/CD] 컨테이너 환경에서 CI/CD 구축하기 (0) | 2024.12.13 |
[CI/CD] github-actions를 이용한 CI/CD구축-3 (+AWS code deploy) (0) | 2024.12.04 |
[CI/CD] Github-Actions로 CI/CD 구축하기-2 개선 (0) | 2024.12.04 |
[CI/CD] Github-Actions로 CI/CD 구축하기-1 (0) | 2024.12.04 |