Skip to content

Commit 74383a8

Browse files
committed
chore: add deployment steps to GitHub Actions for production environment
1 parent 6783703 commit 74383a8

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

.github/workflows/main.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,3 +152,57 @@ jobs:
152152
context: ./gateway/
153153
push: true
154154
tags: hawkxdev/taski_gateway:latest
155+
156+
deploy:
157+
runs-on: ubuntu-latest
158+
needs:
159+
# Дождёмся билда всех образов Taski
160+
- build_and_push_to_docker_hub
161+
- build_frontend_and_push_to_docker_hub
162+
- build_gateway_and_push_to_docker_hub
163+
steps:
164+
- name: Checkout repo
165+
uses: actions/checkout@v3
166+
# Копируем docker-compose.production.yml на продакшен-сервер
167+
- name: Copy docker-compose.yml via ssh
168+
uses: appleboy/scp-action@master
169+
# Передаём параметры для action appleboy/scp-action:
170+
with:
171+
host: ${{ secrets.HOST }}
172+
username: ${{ secrets.USER }}
173+
key: ${{ secrets.SSH_KEY }}
174+
passphrase: ${{ secrets.SSH_PASSPHRASE }}
175+
source: "docker-compose.production.yml"
176+
target: "taski"
177+
- name: Executing remote ssh commands to deploy
178+
uses: appleboy/ssh-action@master
179+
with:
180+
host: ${{ secrets.HOST }}
181+
username: ${{ secrets.USER }}
182+
key: ${{ secrets.SSH_KEY }}
183+
passphrase: ${{ secrets.SSH_PASSPHRASE }}
184+
# Параметр script передаёт в action appleboy/ssh-action команды,
185+
# которые нужно выполнить на сервере,
186+
# с которым установлено соединение
187+
script: |
188+
cd taski
189+
# Выполняет pull образов с Docker Hub
190+
sudo docker compose -f docker-compose.production.yml pull
191+
# Перезапускает все контейнеры в Docker Compose
192+
sudo docker compose -f docker-compose.production.yml down
193+
sudo docker compose -f docker-compose.production.yml up -d
194+
# Выполняет миграции и сбор статики
195+
sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate
196+
sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic
197+
sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/
198+
199+
send_message:
200+
runs-on: ubuntu-latest
201+
needs: deploy
202+
steps:
203+
- name: Send message
204+
uses: appleboy/telegram-action@master
205+
with:
206+
to: ${{ secrets.TELEGRAM_TO }}
207+
token: ${{ secrets.TELEGRAM_TOKEN }}
208+
message: Деплой успешно выполнен!

0 commit comments

Comments
 (0)