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