Skip to content

Merge pull request #33 from ls1intum/english-imprint-privacy #17

Merge pull request #33 from ls1intum/english-imprint-privacy

Merge pull request #33 from ls1intum/english-imprint-privacy #17

Workflow file for this run

name: Deploy Chatbot
on:
push:
branches:
- main
paths:
- 'chatbot-ui/**'
- '.github/workflows/chatbot.yml'
jobs:
build:
if: ${{ vars.ENABLE_DEPLOYMENT == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Create Environment File (Org 2)
run: |
echo "export const environment = {
production: true,
angelosUrl: '/api',
angelosAppApiKey: '${{secrets.ANGELOS_SECRET}}',
organisation: 2,
filterByOrg: true,
chatbotUrl: 'https://chatbot.ase.cit.tum.de/chat',
loginRequired: true
};" > chatbot-ui/src/environments/environment.prod.ts
- name: Build & Push (Org 2)
uses: docker/build-push-action@v6
with:
platforms: amd64, arm64
file: chatbot-ui/Dockerfile
context: chatbot-ui
build-args: |
ANGULAR_CONFIG=production
tags: ghcr.io/ls1intum/angelosai/angelos-ui:latest
push: true
no-cache: true
- name: Create Environment File (Org 3)
run: |
echo "export const environment = {
production: true,
angelosUrl: '/api',
angelosAppApiKey: '${{secrets.ANGELOS_SECRET}}',
organisation: 3,
filterByOrg: true,
chatbotUrl: 'https://chatbot.ase.cit.tum.de/chat-heilbronn',
loginRequired: false
};" > chatbot-ui/src/environments/environment.prod.heilbronn.ts
- name: Build & Push (Org 3)
uses: docker/build-push-action@v6
with:
platforms: amd64, arm64
file: chatbot-ui/Dockerfile
context: chatbot-ui
build-args: |
ANGULAR_CONFIG=production-heilbronn
tags: ghcr.io/ls1intum/angelosai/angelos-ui-org3-latest
push: true
no-cache: true
deploy:
if: ${{ vars.ENABLE_DEPLOYMENT == 'true' }}
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Copy Docker Compose File From Repo to VM Host
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ vars.VM_HOST }}
username: ${{ vars.VM_USERNAME }}
key: ${{ secrets.VM_SSH_PRIVATE_KEY }}
proxy_host: ${{ vars.DEPLOYMENT_GATEWAY_HOST }}
proxy_username: ${{ vars.DEPLOYMENT_GATEWAY_USER }}
proxy_key: ${{ secrets.DEPLOYMENT_GATEWAY_SSH_KEY }}
proxy_port: ${{ vars.DEPLOYMENT_GATEWAY_PORT }}
source: "chatbot-ui/docker-compose.yml"
target: /home/${{ vars.VM_USERNAME }}/${{ github.repository }}
- name: SSH to VM and Execute Docker-Compose Up
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ vars.VM_HOST }}
username: ${{ vars.VM_USERNAME }}
key: ${{ secrets.VM_SSH_PRIVATE_KEY }}
proxy_host: ${{ vars.DEPLOYMENT_GATEWAY_HOST }}
proxy_username: ${{ vars.DEPLOYMENT_GATEWAY_USER }}
proxy_key: ${{ secrets.DEPLOYMENT_GATEWAY_SSH_KEY }}
proxy_port: ${{ vars.DEPLOYMENT_GATEWAY_PORT }}
script: |
if ! docker network inspect angelos-network >/dev/null 2>&1; then
echo "Network 'angelos-network' does not exist, creating it..."
docker network create angelos-network
fi
docker network ls
docker compose -f /home/${{ vars.VM_USERNAME }}/${{ github.repository }}/chatbot-ui/docker-compose.yml up --pull=always -d --force-recreate --remove-orphans