diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3527965..d55ff55 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name : fastapi cicd flow +name: fastapi cicd flow on: push: @@ -8,8 +8,6 @@ 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: @@ -17,11 +15,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup docker buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Cache docker layers uses: actions/cache@v2 @@ -30,28 +28,13 @@ jobs: 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 에 접근하기 위함이다. - 1,1 Top - 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 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHP_TOKEN }} - # 우리가 방금 복사해서 setting secrets 에 붙여줬던 token 이다. 이름을 기억해 넣어주자. - # 우리의 ghcr.io 에 접근하기 위함이다. - name: Build and push id: docker_build @@ -65,10 +48,9 @@ jobs: 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 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} @@ -76,5 +58,5 @@ jobs: - 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 + docker stop ${{ env.NAME }} || true && docker rm ${{ env.NAME }} || true && docker rmi ${{ env.DOCKER_IMAGE }}:latest || true + docker run -d -p 8000:80 --name ${{ env.NAME }} --restart always ${{ env.DOCKER_IMAGE }}:latest