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
kb-web/.gitea/workflows/deploy.yml
T
Workflow config file is invalid. Please check your config file: model.ReadWorkflow: yaml: line 63: mapping values are not allowed in this context
starmen1265 9427294682
Test CI / 快速测试 (push) Has been cancelled
fix: 使用 container 指定 PHP 镜像
- test.yml / ci.yml: 使用 composer:latest 镜像 (含 PHP)
- deploy.yml: 使用 alpine:latest 镜像 + SSH 密钥配置
- 解决 runner 默认环境缺少 PHP 的问题
2026-03-01 01:01:06 +08:00

110 lines
3.3 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: alpine:latest
if: github.ref == 'refs/heads/develop'
steps:
- name: 安装依赖
run: apk add --no-cache openssh-client bash
- 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: alpine:latest
if: github.ref == 'refs/heads/main'
steps:
- name: 安装依赖
run: apk add --no-cache openssh-client bash
- 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"