diff --git a/.github/workflows/gcp_models.yml b/.github/workflows/gcp_models.yml index 0e7328c5f6..8e292c8827 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: @@ -38,11 +39,36 @@ jobs: - run: gcloud auth configure-docker - - name: Build and Push Docker image + # - name: Build and Push Docker image + # run: | + # 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: | - 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 }} - + ssh -o StrictHostKeyChecking=no \ + ${{ secrets.SPEECH_MODELS_SSH_USERNAME }}@${{ secrets.SPEECH_MODELS_SSH_HOST }} \ + "set -x; 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