23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
깃헙 액션은 "코드 repository이자 PR/issue 발행등으로 협업하는 공간(Github Repository)"에서 소프트웨어 개발 workflow들을 자동화하는 걸 도와준다.
Action 이라고 불리는 개별적인 task를 작성하고, 이를 조합하여 custom workflow를 만들 수 있다.
Workflow를 이용하여 레포지토리에서 build, test, release, deploy 까지 한번에 자동화할수 있도록 설정할 수 있다.
Github Actions으로 end-to-end CI/CD 를 직접 구현할 수 있다.
Workflow는 Github에서 호스팅하는 Runner라는 Linux/MacOs/Windows/Container 머신에서 수행된다.
개별적인 머신(self-hosted machine)에서 workflow를 수행하도록 설정할 수도 있다.
Repo에서 설정된 action들, open-source 로 공개된 action 들, docker container image등을 이용하여 workflow를 만들 수 있다.
Workflow에서 사용하고 싶은 action들을 찾아볼 수도 있고, 공유하고 싶은 action 들을 만들 수도있다.
다만, custom action들은 적용하고 싶은 레포에 설치 후에, workflow에서 사용할 수 있다.
특정 이벤트에 trigger되도록 설정된 workflow파일들을 만들 수 있다.
프로젝트 디렉토리 밑에 .github/workflows를 만든다 이 폴더 밑에 workflow들이 저장된다.
예를 들어 현재 우리 프로젝트는 각 branch push 시 trigger 되어 각 환경에 배포될 수 있도록 branch(환경 이름) 별로 workflow를 만들고 있다(develop, staging, main)
yaml 형식으로 workflow를 정의한다.
workflow를 customize 하기 위해 위 문서(Workflow syntax for GitHub Actions)를 참조한다
변경사항을 commit → push 하고 action 코너에 잘 적용되었는지 확인한다
name: Deploy DEV
on:
push:
branches:
- develop
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Git clone
uses: actions/checkout@v2
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Get latest Tag
id: latest-tags
run: |
git fetch -a
echo "LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV
- name: Build and deploy
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
echo $LATEST_TAG
REPO_NAME=$(echo $GITHUB_REPOSITORY | awk -F / '{print $2}')
docker build --build-arg VERSION=$LATEST_TAG -t $ECR_REGISTRY/$REPO_NAME:$GITHUB_SHA -t $ECR_REGISTRY/$REPO_NAME:latest .
docker push -a $ECR_REGISTRY/$REPO_NAME
aws ecs update-service --cluster example --service $REPO_NAME --task-definition $REPO_NAME --force-new-deploymentname: workflow의 이름(개발계 배포)
on: trigger 조건, 여기서는 "develop" branch의 commit push 시 trigger
jobs: 수행할 task들
build: 수행할 job이 build임
runs-on: job 을 수행할 runner의 OS
steps: build steps
Git clone: actions/checkout 은 github action 에서 제공하는 몇가지 기본 action 중에 하나인데,
checkout action은 다른 action 들 전에 반드시 포함해야하는 기본이다. 우리는 첫번째 경우에 해당된다.
Repo의 코드 복사본이 필요할때, 예를 들어 레포 코드 빌드 또는 테스트를 진행할때.
워크 플로에 동일한 리포지토리에 정의 된 액션이 하나 이상 있을때
Build & Push: 실제 배포가 이루어지는 부분을 정의했다. 예시는 ECR에 새로운 이미지를 배포하여 해당 이미지로 Fargate Task 가 업데이트 되도록 했다.
이때 필요한 인증정보등은 github secrets 에 지정한 환경변수를 사용할 수 도 있다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.