@@ -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