Some checks failed
Deploy Project BC / deploy (push) Failing after 6s
82 lines
4.8 KiB
YAML
82 lines
4.8 KiB
YAML
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." |