Skip to content

Commit

Permalink
Merge pull request #5 from adidoesnt/feature/deploy-backend
Browse files Browse the repository at this point in the history
combine workflow files
  • Loading branch information
adidoesnt authored Feb 6, 2024
2 parents b271e2d + a29f058 commit 7244abf
Show file tree
Hide file tree
Showing 3 changed files with 185 additions and 134 deletions.
64 changes: 0 additions & 64 deletions .github/workflows/deploy-database.yml

This file was deleted.

70 changes: 0 additions & 70 deletions .github/workflows/deploy-telegram-bot.yml

This file was deleted.

185 changes: 185 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
name: Deploy to Heroku

on:
push:
branches:
- main

jobs:
deploy-database:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install Heroku CLI
run: |
curl https://cli-assets.heroku.com/install.sh | sh
- name: Login to Heroku container registry
run: heroku container:login
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Check if Heroku app exists
id: check_app
run: |
if heroku apps:info echofinder-database > /dev/null 2>&1; then
echo "App exists"
echo "::set-output name=exists::true"
else
echo "App does not exist"
echo "::set-output name=exists::false"
fi
env:
HEROKU_APP_NAME: echofinder-database
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Create Heroku app
if: steps.check_app.outputs.exists == 'false'
run: heroku create echofinder-database
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Build Docker image
run: cd database && docker build -t registry.heroku.com/echofinder-database/web .

- name: Push Docker image to Heroku container registry
run: cd database && docker push registry.heroku.com/echofinder-database/web

- name: Set environment variables
run: |
cd database && heroku config:set \
CHROMA_SERVER_AUTH_CREDENTIALS=${{ secrets.CHROMA_SERVER_AUTH_CREDENTIALS }} \
CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER=${{ secrets.CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER }} \
CHROMA_SERVER_AUTH_PROVIDER=${{ secrets.CHROMA_SERVER_AUTH_PROVIDER }} \
CHROMA_SERVER_AUTH_TOKEN_TRANSPORT_HEADER=${{ secrets.CHROMA_SERVER_AUTH_TOKEN_TRANSPORT_HEADER }} \
PERSIST_DIRECTORY=${{ secrets.PERSIST_DIRECTORY }} \
--app echofinder-database
- name: Release Docker image to Heroku
run: cd database && heroku container:release web --app echofinder-database
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

deploy-backend:
needs: deploy-database
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions@checkout@v2

- name: Install Heroku CLI
run: |
curl https://cli-assets.heroku.com/install.sh | sh
- name: Login to Heroku container registry
run: heroku container:login
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Check if Heroku app exists
id: check_app
run: |
if heroku apps:info echofinder-backend > /dev/null 2>&1; then
echo "App exists"
echo "::set-output name=exists::true"
else
echo "App does not exist"
echo "::set-output name=exists::false"
fi
env:
HEROKU_APP_NAME: echofinder-backend
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Create Heroku app
if: steps.check_app.outputs.exists == 'false'
run: heroku create echofinder-backend
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Build Docker image
run: cd backend && docker build -t registry.heroku.com/echofinder-backend/web .

- name: Push Docker image to Heroku container registry
run: cd backend && docker push registry.heroku.com/echofinder-backend/web

- name: Set environment variables
run: |
cd database && heroku config:set \
CHROMA_HOST=${{ secrets.CHROMA_HOST }} \
CHROMA_PORT=${{ secrets.CHROMA_PORT }} \
API_KEY=${{ secrets.BACKEND_API_KEY }} \
CHROMA_API_KEY=${{ secrets.CHROMA_SERVER_AUTH_CREDENTIALS }} \
--app echofinder-database
- name: Release Docker image to Heroku
run: cd backend && heroku container:release web --app echofinder-backend
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

deploy-telegram-bot:
needs: deploy-backend
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install Heroku CLI
run: |
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
- name: Login to Heroku Container Registry
run: heroku container:login
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Check if Heroku app exists
id: check_app
run: |
if heroku apps:info echofinder-telegram > /dev/null 2>&1; then
echo "App exists"
echo "::set-output name=exists::true"
else
echo "App does not exist"
echo "::set-output name=exists::false"
fi
env:
HEROKU_APP_NAME: echofinder-telegram
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Create Heroku app
if: steps.check_app.outputs.exists == 'false'
run: heroku apps:create echofinder-telegram
env:
HEROKU_APP_NAME: echofinder-telegram
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Build Docker image
run: cd telegram-bot && docker build -t registry.heroku.com/echofinder-telegram/web .

- name: Push Docker image to Heroku Container Registry
run: cd telegram-bot && docker push registry.heroku.com/echofinder-telegram/web

- name: Set environment variables
run: |
cd telegram-bot && heroku config:set \
TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }} \
TELEGRAM_BOT_WEBHOOK_URL=${{ secrets.TELEGRAM_BOT_WEBHOOK_URL }} \
NODE_ENV=${{ secrets.NODE_ENV }} \
BACKEND_HOST=${{ secrets.BACKEND_HOST }} \
BACKEND_PORT=${{ secrets.BACKEND_PORT }} \
BACKEND_API_KEY=${{ secrets.BACKEND_API_KEY }} \
API_CLIENT_TIMEOUT=${{ secrets.API_CLIENT_TIMEOUT }} \
PLATFORM=${{ secrets.PLATFORM }} \
--app echofinder-telegram
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

- name: Release Docker image on Heroku
run: cd telegram-bot && heroku container:release web --app echofinder-telegram
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

0 comments on commit 7244abf

Please sign in to comment.