Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/fix workflow #243

Merged
merged 6 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions .github/workflows/build_and_push_github_packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ on:
branches:
- master
- dev
- mastertmp

env:
REGISTRY: ghcr.io
Expand Down Expand Up @@ -39,24 +38,13 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

- name: Build and push Docker image for Stage
if: github.ref == 'refs/heads/dev'
uses: docker/build-push-action@v5
with:
context: .
file: infra/dev/dev.Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

# Для тестирования отправки на Prod
- name: Build and push Docker image for Production-Tmp
if: github.ref == 'refs/heads/mastertmp'
uses: docker/build-push-action@v5
with:
context: .
file: infra/prod/prod.Dockerfile
file: infra/dev/dev.Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
105 changes: 0 additions & 105 deletions .github/workflows/prod_deploy.yml

This file was deleted.

182 changes: 91 additions & 91 deletions .github/workflows/pull_and_run_on_server.yaml
Original file line number Diff line number Diff line change
@@ -1,98 +1,98 @@
name: Pull and run on server
# name: Pull and run on server

on:
workflow_run:
workflows:
- Build and push Docker image
types:
- completed
# on:
# workflow_run:
# workflows:
# - Build and push Docker image
# types:
# - completed

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
DEPLOY_PATH: Goodstart_telegram_bot
# env:
# REGISTRY: ghcr.io
# IMAGE_NAME: ${{ github.repository }}
# DEPLOY_PATH: Goodstart_telegram_bot

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Copy docker-compose.stage.yaml via ssh
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
source: "infra/stage/docker-compose.stage.yaml"
target: ${{ env.DEPLOY_PATH }}
- name: Copy nginx.conf via ssh
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
source: "infra/stage/nginx.conf"
target: ${{ env.DEPLOY_PATH }}
- name: Copy goodstart_bot.service via ssh
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
source: "infra/stage/goodstart_bot.service"
target: ${{ env.DEPLOY_PATH }}
- name: Executing remote ssh commands to deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
timeout: 120s
script: |
cd ${{ env.DEPLOY_PATH }}
rm .env
touch .env
# jobs:
# deploy:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repo
# uses: actions/checkout@v3
# - name: Copy docker-compose.stage.yaml via ssh
# uses: appleboy/[email protected]
# with:
# host: ${{ secrets.HOST }}
# username: ${{ secrets.USER }}
# key: ${{ secrets.SSH_KEY }}
# passphrase: ${{ secrets.SSH_PASSPHRASE }}
# source: "infra/stage/docker-compose.stage.yaml"
# target: ${{ env.DEPLOY_PATH }}
# - name: Copy nginx.conf via ssh
# uses: appleboy/[email protected]
# with:
# host: ${{ secrets.HOST }}
# username: ${{ secrets.USER }}
# key: ${{ secrets.SSH_KEY }}
# passphrase: ${{ secrets.SSH_PASSPHRASE }}
# source: "infra/stage/nginx.conf"
# target: ${{ env.DEPLOY_PATH }}
# - name: Copy goodstart_bot.service via ssh
# uses: appleboy/[email protected]
# with:
# host: ${{ secrets.HOST }}
# username: ${{ secrets.USER }}
# key: ${{ secrets.SSH_KEY }}
# passphrase: ${{ secrets.SSH_PASSPHRASE }}
# source: "infra/stage/goodstart_bot.service"
# target: ${{ env.DEPLOY_PATH }}
# - name: Executing remote ssh commands to deploy
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.HOST }}
# username: ${{ secrets.USER }}
# key: ${{ secrets.SSH_KEY }}
# passphrase: ${{ secrets.SSH_PASSPHRASE }}
# timeout: 120s
# script: |
# cd ${{ env.DEPLOY_PATH }}
# rm .env
# touch .env

echo POSTGRES_DB=${{ secrets.POSTGRES_DB }} >> .env
echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
echo DB_ENGINE=${{ secrets.DB_ENGINE }} >> .env
echo DB_HOST=${{ secrets.DB_HOST }} >> .env
echo DB_PORT=${{ secrets.DB_PORT }} >> .env
echo BASE_URL=${{ secrets.BASE_URL }} >> .env
echo SECRET_KEY=${{ secrets.SECRET_KEY }} >> .env
echo DEBUG=${{ secrets.DEBUG }} >> .env
echo ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }} >> .env
echo CSRF_TRUSTED_ORIGINS=${{ secrets.CSRF_TRUSTED_ORIGINS }} >> .env
echo TELEGRAM_TOKEN=${{ secrets.TELEGRAM_TOKEN }} >> .env
echo DJANGO_SUPERUSER_USERNAME=${{ secrets.DJANGO_SUPERUSER_USERNAME }} >> .env
echo DJANGO_SUPERUSER_EMAIL=${{ secrets.HOST_DJANGO_SUPERUSER_EMAILNG }} >> .env
echo DJANGO_SUPERUSER_PASSWORD=${{ secrets.DJANGO_SUPERUSER_PASSWORD }} >> .env
echo DJANGO_SUPERUSER_FIRSTNAME=${{ secrets.DJANGO_SUPERUSER_FIRSTNAME }} >> .env
echo DJANGO_SUPERUSER_LASTNAME=${{ secrets.DJANGO_SUPERUSER_LASTNAME }} >> .env
echo DJANGO_SUPERUSER_PHONE=${{ secrets.DJANGO_SUPERUSER_PHONE }} >> .env
echo EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }} >> .env
echo EMAIL_HOST=${{ secrets.EMAIL_HOST }} >> .env
echo EMAIL_PORT=${{ secrets.EMAIL_PORT }} >> .env
echo EMAIL_ACCOUNT=${{ secrets.EMAIL_ACCOUNT }} >> .env
echo EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} >> .env
echo DEFAULT_EMAIL_ADDRESS=${{ secrets.DEFAULT_EMAIL_ADDRESS }} >> .env
echo NGINX_PORT=${{ secrets.NGINX_PORT }} >> .env
# echo POSTGRES_DB=${{ secrets.POSTGRES_DB }} >> .env
# echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
# echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
# echo DB_ENGINE=${{ secrets.DB_ENGINE }} >> .env
# echo DB_HOST=${{ secrets.DB_HOST }} >> .env
# echo DB_PORT=${{ secrets.DB_PORT }} >> .env
# echo BASE_URL=${{ secrets.BASE_URL }} >> .env
# echo SECRET_KEY=${{ secrets.SECRET_KEY }} >> .env
# echo DEBUG=${{ secrets.DEBUG }} >> .env
# echo ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }} >> .env
# echo CSRF_TRUSTED_ORIGINS=${{ secrets.CSRF_TRUSTED_ORIGINS }} >> .env
# echo TELEGRAM_TOKEN=${{ secrets.TELEGRAM_TOKEN }} >> .env
# echo DJANGO_SUPERUSER_USERNAME=${{ secrets.DJANGO_SUPERUSER_USERNAME }} >> .env
# echo DJANGO_SUPERUSER_EMAIL=${{ secrets.HOST_DJANGO_SUPERUSER_EMAILNG }} >> .env
# echo DJANGO_SUPERUSER_PASSWORD=${{ secrets.DJANGO_SUPERUSER_PASSWORD }} >> .env
# echo DJANGO_SUPERUSER_FIRSTNAME=${{ secrets.DJANGO_SUPERUSER_FIRSTNAME }} >> .env
# echo DJANGO_SUPERUSER_LASTNAME=${{ secrets.DJANGO_SUPERUSER_LASTNAME }} >> .env
# echo DJANGO_SUPERUSER_PHONE=${{ secrets.DJANGO_SUPERUSER_PHONE }} >> .env
# echo EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }} >> .env
# echo EMAIL_HOST=${{ secrets.EMAIL_HOST }} >> .env
# echo EMAIL_PORT=${{ secrets.EMAIL_PORT }} >> .env
# echo EMAIL_ACCOUNT=${{ secrets.EMAIL_ACCOUNT }} >> .env
# echo EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} >> .env
# echo DEFAULT_EMAIL_ADDRESS=${{ secrets.DEFAULT_EMAIL_ADDRESS }} >> .env
# echo NGINX_PORT=${{ secrets.NGINX_PORT }} >> .env

cd infra/stage
# cd infra/stage

# Настройка автоматического перезапуска приложения при сбое сервера
sudo cp -f /home/develop/Goodstart_telegram_bot/infra/stage/goodstart_bot.service /etc/systemd/system/goodstart_bot.service
sudo systemctl daemon-reload
sudo systemctl restart goodstart_bot.service
# # Настройка автоматического перезапуска приложения при сбое сервера
# sudo cp -f /home/develop/Goodstart_telegram_bot/infra/stage/goodstart_bot.service /etc/systemd/system/goodstart_bot.service
# sudo systemctl daemon-reload
# sudo systemctl restart goodstart_bot.service

sleep 10
docker compose -f docker-compose.stage.yaml exec backend sh -c "export RUN_BOT=false"
docker compose -f docker-compose.stage.yaml exec backend python manage.py collectstatic
docker compose -f docker-compose.stage.yaml exec backend python manage.py migrate
docker compose -f docker-compose.stage.yaml exec backend sh -c "export RUN_BOT=true"
# sleep 10
# docker compose -f docker-compose.stage.yaml exec backend sh -c "export RUN_BOT=false"
# docker compose -f docker-compose.stage.yaml exec backend python manage.py collectstatic
# docker compose -f docker-compose.stage.yaml exec backend python manage.py migrate
# docker compose -f docker-compose.stage.yaml exec backend sh -c "export RUN_BOT=true"
Loading
Loading