Skip to content

Merge pull request #68 from TukaTek/feature/TUK-71 #35

Merge pull request #68 from TukaTek/feature/TUK-71

Merge pull request #68 from TukaTek/feature/TUK-71 #35

name: CortexAI Chat Dev Backend
on:
workflow_dispatch:
push:
branches:
- dev
paths:
- '.github/workflows/caichat_dev_backend.yaml'
- 'backend/Dockerfile'
- 'backend/requirements/default.txt'
- 'backend/requirements/ee.txt'
- 'backend/alembic/**'
- 'backend/alembic_tenants/**'
- 'backend/onyx/**'
- 'backend/shared_configs/**'
- 'backend/static/**'
- 'backend/scripts/**'
- 'backend/assets/**'
permissions:
id-token: write
contents: read
env:
ACR_REPOSITORY: onyx-backend
ACR_LOGIN_SERVER: ${{ secrets.ACR_LOGIN_SERVER }}
VM_NAME: cortexai-chat-vm-dev
RG_NAME: CORTEX-AI-CHAT-DEV
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set IMAGE_TAG
run: echo "IMAGE_TAG=v1.${GITHUB_REF##*/}.${{ github.run_number }}" >> $GITHUB_ENV
- name: Log in to Azure Container Registry(ACR)
uses: docker/login-action@v3
with:
registry: ${{ secrets.ACR_LOGIN_SERVER }}
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
- name: Build & Push Docker Image
run: |
docker build -t $ACR_LOGIN_SERVER/$ACR_REPOSITORY:$IMAGE_TAG -t $ACR_LOGIN_SERVER/$ACR_REPOSITORY:latest -f backend/Dockerfile ./backend
docker push $ACR_LOGIN_SERVER/$ACR_REPOSITORY:$IMAGE_TAG
docker push $ACR_LOGIN_SERVER/$ACR_REPOSITORY:latest
Deploy:
needs: build-and-push
runs-on: ubuntu-latest
if: needs.build-and-push.result == 'success'
environment: cortexai_chat
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set IMAGE_TAG
run: echo "IMAGE_TAG=v1.${GITHUB_REF##*/}.${{ github.run_number }}" >> $GITHUB_ENV
- name: Azure Login with OIDC
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Run deployment script on VM
run: |
az vm run-command invoke \
--resource-group $RG_NAME \
--name $VM_NAME \
--command-id RunShellScript \
--scripts "cd /home/azureuser/cortexai_chat && ./deploy.sh --service-name api_server --image-name $ACR_REPOSITORY --image-tag $IMAGE_TAG"