: Github Action은 Github에서 제공하는 배포 서비스
Github는 MS에 인수되면서 기존의 소스저장소(CI)의 기능에서 DevOps플랫폼으로 발전중
👉요즘 트렌드는 CI/CD의 통합 (소스저장소와 배포시스템 통합)
👉CI/CD를 만든다 = 배포 파이프라인을 만든다=소스를 push하면 바로 인프라에 배포할 수 있는 환경을 만든다
👉Github 소스 Repository에
.github/workflows/main.yml 추가
IAM의 권한 설정을 변경해준다
IAM과 연동할(Github Action을 사용할) Git Reopsitory를 생성 > action 탭
repository url을 복사하여 pycharm과 연동
Git > clone > url 탭에 복사한 url 붙여넣기 (Git과 연동된 python 프로젝트 생성)
(+)GitActionCloudFront문서에서 Git Action을 쓰기 위한 방법들을 문서로 볼 수 있음 (CloudFront, S3에 관한 .yml문서들을 market place에서 찾아 쓸 수 있음)
만들어진 repository에 index.html을 만들어준다.
.github/workflows/main.yml 도 추가해주어야 하기 때문에 프로젝트의 디렉토리 구조를 맞춰준디 파일을 추가해줌
- main.yml
name: my-front on: push: branches: - main jobs: build: runs-on: ubuntu-latest env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'ap-northeast-2' steps: - name: Checkout source code. uses: actions/checkout@master - name: Upload binary to S3 bucket uses: jakejarvis/s3-sync-action@master with: args: --acl public-read --exclude '*' --include 'index.html' env: AWS_S3_BUCKET: ${{ secrets.BUCKET_NAME }} - name: Invalidate cache CloudFront uses: chetan/invalidate-cloudfront-action@master env: DISTRIBUTION: ${{ secrets.DISTRIBUTION_ID }} PATHS: '/index.html' continue-on-error: true