diff --git a/.github/workflows/gcp_models.yml b/.github/workflows/gcp_models.yml index 0e7328c5f6..062d55c39d 100644 --- a/.github/workflows/gcp_models.yml +++ b/.github/workflows/gcp_models.yml @@ -12,6 +12,7 @@ on: env: SERVICE: models REGION: us-central1 + CONTAINER_NAME: speech-models jobs: deploy: @@ -40,9 +41,34 @@ jobs: - name: Build and Push Docker image run: | - docker build -t gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }} -f backend/modal/Dockerfile . - docker push gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }} - + docker build -t gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:${GITHUB_SHA::7} -f backend/modal/Dockerfile . + docker push gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:${GITHUB_SHA::7} + + - name: Create SSH Key + run: | + mkdir -p ~/.ssh + echo "${{ secrets.SPEECH_MODELS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + + - name: Deploy Docker image + run: | + ssh -o StrictHostKeyChecking=no \ + ${{ secrets.SPEECH_MODELS_SSH_USERNAME }}@${{ secrets.SPEECH_MODELS_SSH_HOST }} \ + 'echo "[-] Pull latest Speech Models image..."; \ + docker pull gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:${GITHUB_SHA::7}; \ + echo "[-] Remove current Speech Models container..."; \ + docker rm -f ${{ vars.CONTAINER_NAME }}; \ + echo "[-] Start new Speech Models container..."; \ + docker run -d --name ${{ vars.CONTAINER_NAME }} -p 8080:8080 \ + --volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \ + --volume /var/lib/nvidia/bin:/usr/local/nvidia/bin \ + --device /dev/nvidia0:/dev/nvidia0 \ + --device /dev/nvidia-uvm:/dev/nvidia-uvm \ + --device /dev/nvidiactl:/dev/nvidiactl \ + -e OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} \ + -e HUGGINGFACE_TOKEN=${{ secrets.HUGGINGFACE_TOKEN }} \ + gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:${GITHUB_SHA::7}' + # - name: Deploy to Cloud Run # id: deploy # uses: google-github-actions/deploy-cloudrun@v2