71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
name: Build and Deploy Frontend via SSH
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Build project
|
|
run: npm run build
|
|
|
|
- name: Create Gitea Release
|
|
uses: actions/gitea-release-action@v1
|
|
with:
|
|
release_name: ${{ gitea.ref_name }}
|
|
release_notes: |
|
|
## Релиз ${{ gitea.ref_name }}
|
|
|
|
${{ (github.event.head_commit.message != '' && format('📝 {0}', github.event.head_commit.message)) || '' }}
|
|
|
|
### 📦 Что изменилось
|
|
${{ github.event.head_commit.message || 'Автоматический релиз через CI/CD' }}
|
|
|
|
---
|
|
|
|
### 🔧 Технические детали
|
|
- **Тег:** `${{ gitea.ref_name }}`
|
|
- **Ветка:** `${{ gitea.ref }}`
|
|
- **Автор:** ${{ gitea.actor }}
|
|
|
|
### 🚀 Деплой
|
|
- ✅ Сервер обновлён автоматически
|
|
|
|
---
|
|
|
|
> Релиз создан автоматически через Gitea Actions
|
|
draft: false
|
|
prerelease: false
|
|
env:
|
|
GITEA_API_KEY: ${{ secrets.ACCESS_TOKEN }}
|
|
|
|
- name: Install SSH key
|
|
uses: webfactory/ssh-agent@v0.9.0
|
|
with:
|
|
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
|
|
|
|
- name: Deploy via SCP
|
|
run: |
|
|
tar -czf frontend.tar.gz -C dist .
|
|
scp -o StrictHostKeyChecking=no frontend.tar.gz ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/tmp/
|
|
ssh -o StrictHostKeyChecking=no ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << 'EOF'
|
|
mkdir -p /opt/uvpn.shop/frontend
|
|
rm -rf /opt/uvpn.shop/frontend/*
|
|
tar -xzf /tmp/frontend.tar.gz -C /opt/uvpn.shop/frontend
|
|
rm /tmp/frontend.tar.gz
|
|
EOF |