bc/.gitea/workflows/deploy.yml
svoboda200786@gmail.com 1807418274
Some checks failed
Deploy Project BC / deploy (push) Failing after 6s
test47
2025-06-10 08:43:47 +03:00

82 lines
4.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Deploy Project BC
on:
push: # Запускать при событии push
branches:
- main # Только для ветки main (или master, или ваша основная ветка)
jobs:
deploy:
runs-on: ubuntu-latest # Указываем метку раннера, на котором должна выполняться задача.
# Убедитесь, что ваш зарегистрированный раннер имеет эту метку.
# Можно использовать и более специфичную, например, 'self-hosted' или имя вашего сервера, если вы так его пометили.
steps:
- name: Network Diagnostics Inside Container FIRST
run: |
echo "===== Running Network Diagnostics ====="
echo "--- /etc/resolv.conf inside container ---"
cat /etc/resolv.conf
echo "--- nslookup google.com ---"
nslookup google.com || echo "nslookup google.com failed or nslookup not available"
echo "--- nslookup Gitea Host (pavel-chagovsky.com) ---"
nslookup pavel-chagovsky.com || echo "nslookup pavel-chagovsky.com failed or nslookup not available"
echo "--- Trying to curl Gitea by IP (81.177.140.16) and path /gitea/ ---"
curl -kvL --connect-timeout 5 https://81.177.140.16/gitea/ || echo "Curl to Gitea by IP failed"
echo "===== Network Diagnostics Finished ====="
- name: Network Diagnostics Inside Container
run: |
echo "--- /etc/resolv.conf inside container ---"
cat /etc/resolv.conf
echo "--- Pinging google.com ---"
ping -c 3 google.com
echo "--- Pinging Gitea Host (pavel-chagovsky.com) ---"
ping -c 3 pavel-chagovsky.com
echo "--- nslookup Gitea Host (pavel-chagovsky.com) ---"
nslookup pavel-chagovsky.com
echo "--- Trying to curl Gitea by IP (replace YOUR_GITEA_IP and PORT if not 443) ---"
curl -kv https://81.177.140.16/gitea/
- 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."