CI/CD github action

최종윤·2023년 11월 19일

CICD

목록 보기
1/7

https://goodfriends-team.tistory.com/7

github repository에서 addfile
(root)/.github/workflows/deploy.yaml )(deploy는 변경가능)

name: CI-CD
repo 에 branch push됐을때 어떤 작업할지 
on:
  push:
    branches:
- main  ( 실제 사용하는 브랜치 이름) 

step 정의할건데 step 사용하는 변수있음 변수를 각기 한 곳으로 모아서 관리하면 유요하기떄문에 
변수 사용하는 방식으로 스크립트를 정의해본다. 
env:  두칸씩 띄어서 쓴다 .
  S3_BUCKET_NAME: S3설정에서 만들었던 bucket_name
  CODE_DEPLOY_APPLICATION_NAME: codeDeploy - application name
  CODE_DEPLOY_DEPLOYMENT_GROUP_NAME:   delpoy application의 group 명 

jobs:
  build:
    runs-on: ubuntu-latest     ( ec2에  ubuntu로 설치했고  이 job이 어떤 환경에서 돌아가는지 설정 ) 
    steps: ( 어떤 step인지 name을 지정)
      - name: Checkout
        uses: actions/checkout@v2

      - name: Set up JDK 11  ( java사용할거니 버전을 지정해준다> ) 
        uses: action/setup-java@v1
        with: 
	java-version: 11

      - name: Grant execute permission for gradle  ( src를 gradlew로 빌드할거니까 gradlew 파일에 실행권한을 부여해준다.)
        run: chmod +x ./gradlew
        shell: bash  ( 빌드하는건 bash shell 에서 동작한다 ) 
       
      - name: Build with Gradle   ( 권한 줬으니 빌드를 해야겠죠) 
        run: ./gradlew build               ( build  명령어 를 실행한다. ) 
        shell: bash ( 이것도 bash 에서 실행) 

      - name: Make zip file  ( uploading zip file is recommended) build 결과파일을 압축한다  
        run: zip -r ./$GITHUB_SHA .    (path를 GITHUB_SHA에   file name is  unique) 
        shell: bash

      - name: Configure aws credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ ACCESS_KEY_ID }}
          aws-secret-access-key: %{{ secrets.AWS-SECRET_ACCESS_KEY }}
          aws-region:
          
          
aws 접속하고 aws service사용하기위한 권한이 설정됐다. 
repo에 등록한 settings/secret/acations/repo secret variable 값    secret안의 해당 변수네임 값을 쓰겠다는 의미로 다음과같이 
String은 복사붙이기 해서 오타 방지하자 긴것은 
upload zip file on s3
       - name: upload to S3
        run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://
s3에 올라간 결과파일을  
      - name:


upload zip file on aws s3

add permission about uploadin aws s3

GITHU_SHA는 공식문서에 임의로 값지정이 아니라 중복되지 않는 해싱된 값 출력해준다.

repo를 git clone하고 intellij에서 repo와 같은 이름의 project를 같은 위치에 생성하면 . clone하여 생성된 폴더에 new project가 추가된다. deploy.yml파일이 project안에 있다.

appsepc.yml 생성 root project 하위에 생성한다.

ec2생성 서버접근후 설치했는데 그 과정에서 codedeploy agent실행시켰는데
그 다음에 cd 세팅하면서 tag값 ec2 instance 에 연결하는 작업했음
그런 설정 적용된 agent가 돌아가는게 아닌 설정 안 된 agent가 실행중
ec2들어가서 agent restart 해야함 그러고나서 git repo 에 push할것임

config 최신상태로 적용하여 재시작한다.
sudo service codedeploy-agent restart

cd의 log를 보면 더 쉽게 알 수 있다.
tail -F /var/log/aws/codedeploy-agent

profile
https://github.com/jyzayu

0개의 댓글