![[블로깅]github actions 사용해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FvhvyE%2FbtsIDIoBMUR%2FAAAAAAAAAAAAAAAAAAAAAP4PDvqO6dRkKuAZ50fccP-AuGFLPBQooHeZwTsuxhPv%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Dt%252F7HaHxncPluya7Zkc6eLZ7C2EI%253D)
CI/CD란
애플리케이션 개발 단계를 자동화하여 짧은 주기로 서비스를 배포할 수 있습니다.
Continuous Integration/Continuous Delivery의 약어로 CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. 개발, 운영팀에 발생하는 문제를 해결하기 위해 제시되었습니다.
지속적인 통합 CI
개발자가 동시에 애플리케이션 개발과 코드 작업을 할 때 서로 충돌하는 문제를 해결하기 위함.
CI를 통해 각자 코드 변경 사항을 공유 브랜치로 병합하는 작업을 수월하게 자주 수행하여 코드 간 충돌을 빠르게 확인 및 수정할 수 있습니다.
지속적 제공 CD
빌드 자동화, 유닛 및 통합 테스트 수행 후 유효한 코드를 리포지토리에 자동으로 릴리스합니다. (CI가 먼저 구축되어있어야합니다.)
프로덕션 환경으로 배포할 준비가 되어 있는 코드베이스를 화보하는 것이 목표입니다.
테스트 자동화와 코드 릴리스 자동화가 이 단계에 포함됩니다.
지속적 배포 CD
애플리케이션을 프로덕션으로 릴리스하는 작업을 자동화합니다.
개발자가 애플리케이션에 변경 사항을 작성한 후 몇 분이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미합니다.
사용자의 피드백을 적용하기에 수월합니다.
github actions
깃허브가 공식적으로 제공하는 CI/CD 플랫폼입니다.
레포지토리에서 Pull Request나 push같은 이벤트를 트리거로 워크플로우(.yml, .yaml 파일로 구성)를 구성할 수 있습니다.
워크플로우는 하나 이상의 작업이 실행되는 자동화 프로세스를 말합니다.
워크플로우는 .github/workflows 디렉토리 이하에 생성합니다.
실습
# .github/workflows/client.yml
name: client
on:
push:
branches:
- reference
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout source code.
uses: actions/checkout@v2
- name: Install dependencies
run: npm install
working-directory: ./my-agora-states-client-react
- name: Build
run: npm run build
working-directory: ./my-agora-states-client-react
- name: SHOW AWS CLI VERSION
run: |
aws --version
- name: Sync Bucket
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
run: |
aws s3 sync \
--region ap-northeast-2 \
build s3://버킷이름 \
--delete
working-directory: ./my-agora-states-client-react
http://fe-37-r-jisu-s3.s3-website.ap-northeast-2.amazonaws.com/
Red Hat 과 코드스테이츠 자료를 참고하였습니다.
'BootCamp' 카테고리의 다른 글
react에서 proxy설정하기(http-proxy-middleware) (0) | 2023.06.07 |
---|---|
[블로깅]타입스크립트 문법(2):enum, 인터페이스, 타입별칭, 타입추론, 클래스 (2) | 2023.05.31 |
[블로깅]타입스크립트 문법(1):타입,함수,유니온,인터섹션 (1) | 2023.05.30 |
[블로깅] Cookie, Session, Token, OAuth2.0 (0) | 2023.05.04 |
[블로깅]웹 표준과 웹 접근성 (0) | 2023.04.27 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!