This repository has been archived on 2026-03-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Workflow config file is invalid. Please check your config file: model.ReadWorkflow: yaml: line 60: mapping values are not allowed in this context
starmen1265 9d32b4ac97
Test CI / 快速测试 (push) Successful in 12s
fix: 使用本地专用镜像 gitea-runner-php
- 创建 Dockerfile 包含 PHP + Node.js + Git + SSH
- 所有 workflow 使用本地镜像避免拉取延迟
- 需要先构建镜像: docker build -t gitea-runner-php:latest .
2026-03-01 01:05:31 +08:00

104 lines
3.2 KiB
YAML

name: Deploy
on:
push:
branches: [main, develop]
workflow_dispatch:
inputs:
environment:
description: '部署环境'
required: true
default: 'staging'
type: choice
options:
- staging
- production
jobs:
# 部署到测试环境
deploy-staging:
name: 部署测试环境
runs-on: linux
container:
image: gitea-runner-php:latest
if: github.ref == 'refs/heads/develop'
steps:
- name: 设置 SSH 密钥
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed255
echo "Host micecola.top" >> ~/.ssh/config
echo " StrictHostKeyChecking no" >> ~/.ssh/config
- name: 部署到测试服务器
run: |
echo "开始部署到测试环境..."
ssh root@micecola.top << 'EOF'
cd /var/www/kb-web-test
# 备份
BACKUP_DIR="/var/www/kb-web-test-backups"
mkdir -p $BACKUP_DIR
CURRENT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
tar -czf "$BACKUP_DIR/backup_${CURRENT_COMMIT}_$(date +%Y%m%d_%H%M%S).tar.gz" . 2>/dev/null || true
# 更新代码
git fetch origin
git reset --hard origin/develop
# 安装依赖
composer install --no-dev --prefer-dist --no-interaction
# 设置权限
chown -R www-data:www-data . 2>/dev/null || true
echo "✅ 测试环境部署完成"
EOF
- name: 完成
run: echo "🚀 测试环境部署完成: http://micecola.top:8080"
# 部署到正式环境
deploy-production:
name: 部署正式环境
runs-on: linux
container:
image: gitea-runner-php:latest
if: github.ref == 'refs/heads/main'
steps:
- name: 设置 SSH 密钥
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed255
echo "Host micecola.top" >> ~/.ssh/config
echo " StrictHostKeyChecking no" >> ~/.ssh/config
- name: 备份并部署
run: |
echo "开始部署到正式环境..."
ssh root@micecola.top << 'EOF'
# 备份
BACKUP_DIR="/var/www/kb-web-prod-backups"
mkdir -p $BACKUP_DIR
cd /var/www/kb-web-prod
CURRENT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
tar -czf "$BACKUP_DIR/backup_${CURRENT_COMMIT}_$(date +%Y%m%d_%H%M%S).tar.gz" . 2>/dev/null || true
# 保留最近 10 个备份
cd $BACKUP_DIR && ls -t | tail -n +11 | xargs -r rm -f
# 部署
cd /var/www/kb-web-prod
git fetch origin
git reset --hard origin/main
composer install --no-dev --prefer-dist --no-interaction
chown -R www-data:www-data . 2>/dev/null || true
echo "✅ 正式环境部署完成"
EOF
- name: 完成
run: echo "🚀 正式环境部署完成: https://kb.micecola.top"