simple change #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: fastapi cicd flow | |
on: | |
push: | |
branches: [ main ] | |
env: | |
DOCKER_IMAGE: ghcr.io/${{ github.actor }}/ais-img | |
VERSION: ${{ github.sha }} | |
NAME: ais-img | |
# Docker image 를 ghcr.io 에 올릴 때 우리의 github 이름/이미지이름 으로 저장한다. 이미지이름을 정해주면 된다. | |
# Docker image 의 이름을 newproject 이라고 해놓은 것. 이름 뭐할지 정하면 된다. | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup docker buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Cache docker layers | |
uses: actions/cache@v2 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ env.VERSION }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Login to ghcr | |
uses: docker/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GHP_TOKEN }} | |
# 우리가 방금 복사해서 setting secrets 에 붙여줬던 token 이다. 이름을 기억해 넣어주자. | |
# 우리의 ghcr.io 에 접근하기 위함이다. | |
- name: Build and push | |
id: docker_build | |
uses: docker/build-push-action@v2 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
push: true | |
tags: ${{ env.DOCKER_IMAGE }}:latest | |
deploy: | |
needs: build | |
name: Deploy | |
runs-on: [ self-hosted, label-aiserver ] | |
# label-newproject 라는 이름으로 AWS EC2 가 Runner 를 작동시킬 때 사용했던 그 label | |
steps: | |
- name: Login to ghcr | |
uses: docker/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GHP_TOKEN }} | |
- name: Docker run | |
run: | | |
docker stop ${{ env.NAME }} && docker rm ${{ env.NAME }} && docker rmi ${{ env.DOCKER_IMAGE }}:latest | |
docker run -d -p 8000:80 --name ai-server --restart always ${{ env.DOCKER_IMAGE }}:latest |