Add deployment workflow for Gitea Actions
Some checks failed
Deploy Project BC / deploy (push) Failing after 41s

This commit is contained in:
Oleg 2025-06-09 19:44:04 +00:00
parent 4e0d6b6f56
commit 1cfb69af0a

View File

@ -0,0 +1,57 @@
name: Deploy Project BC
on:
push: # Запускать при событии push
branches:
- main # Только для ветки main (или master, или ваша основная ветка)
jobs:
deploy:
runs-on: ubuntu-latest # Указываем метку раннера, на котором должна выполняться задача.
# Убедитесь, что ваш зарегистрированный раннер имеет эту метку.
# Можно использовать и более специфичную, например, 'self-hosted' или имя вашего сервера, если вы так его пометили.
steps:
- name: Checkout repository
uses: actions/checkout@v3 # Стандартное действие для скачивания кода репозитория на раннер
- name: Setup Node.js # Если вам нужно определенная версия Node.js для npm install
uses: actions/setup-node@v3
with:
node-version: '18' # Укажите нужную вам LTS или другую версию Node.js
- name: Install Dependencies
run: | # Выполняем команды в рабочей директории раннера (куда был склонирован репозиторий)
echo "Current directory: $(pwd)"
if [ -f package.json ]; then
echo "package.json found. Installing dependencies..."
npm install --omit=dev
else
echo "package.json not found. Skipping npm install."
fi
working-directory: ./ # Указывает, что npm install нужно выполнять в корне склонированного репозитория
# Если package.json для bc.js в подпапке server/, то:
# working-directory: ./server
- name: Execute Deploy Script on Server
uses: appleboy/ssh-action@master # Популярное действие для выполнения команд по SSH
with:
host: ${{ secrets.DEPLOY_HOST }} # IP или домен вашего сервера, где нужно выполнить деплой
username: ${{ secrets.DEPLOY_USER }} # Имя пользователя для SSH-доступа
key: ${{ secrets.SSH_PRIVATE_KEY }} # Приватный SSH-ключ для доступа
port: ${{ secrets.DEPLOY_PORT || 22 }} # Порт SSH, по умолчанию 22
script: |
echo "Starting deployment on server for project bc..."
cd /home/nodejs/bc/ # Путь к рабочей копии проекта на сервере
git fetch origin main # Или ваша основная ветка
git reset --hard origin/main
# Если npm install должен выполняться на сервере деплоя, а не на раннере:
# if [ -f package.json ]; then
# echo "Installing server-side npm dependencies..."
# npm install --omit=dev
# fi
echo "Restarting PM2 process for bc..."
pm2 restart bc # Имя или ID вашего bc приложения в PM2
echo "Deployment for bc finished."