Files
action_test/.gitea/workflows/test.yml
2025-07-12 12:32:12 +08:00

178 lines
4.8 KiB
YAML

name: 网站测试和部署
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test:
runs-on: ubuntu-latest
name: 网站测试
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 设置Node.js环境
uses: actions/setup-node@v4
with:
node-version: '18'
- name: 安装HTML验证工具
run: |
npm install -g html-validate
- name: 检查文件结构
run: |
echo "检查项目文件..."
ls -la
echo "检查HTML文件是否存在..."
if [ -f "index.html" ]; then
echo "✅ index.html 文件存在"
else
echo "❌ index.html 文件不存在"
exit 1
fi
- name: HTML语法验证
run: |
echo "验证HTML语法..."
html-validate index.html || echo "HTML验证完成"
- name: 检查HTML内容
run: |
echo "检查HTML内容..."
if grep -q "KaGaMi" index.html; then
echo "✅ 页面包含正确的用户名"
else
echo "❌ 页面不包含用户名"
exit 1
fi
if grep -q "大学生" index.html; then
echo "✅ 页面包含身份信息"
else
echo "❌ 页面不包含身份信息"
exit 1
fi
- name: 检查页面标题
run: |
echo "检查页面标题..."
if grep -q "<title>KaGaMi的个人网站</title>" index.html; then
echo "✅ 页面标题正确"
else
echo "❌ 页面标题不正确"
exit 1
fi
- name: 统计代码信息
run: |
echo "代码统计信息:"
echo "HTML文件行数: $(wc -l < index.html)"
echo "HTML文件大小: $(du -h index.html | cut -f1)"
echo "项目总文件数: $(find . -type f | wc -l)"
- name: 生成测试报告
run: |
echo "生成测试报告..."
date > test-report.txt
echo "测试项目: KaGaMi个人网站" >> test-report.txt
echo "测试状态: 通过" >> test-report.txt
echo "HTML文件大小: $(du -h index.html | cut -f1)" >> test-report.txt
echo "测试时间: $(date)" >> test-report.txt
cat test-report.txt
- name: 上传测试报告
uses: actions/upload-artifact@v4
with:
name: test-report
path: test-report.txt
retention-days: 30
deploy-test:
needs: test
runs-on: ubuntu-latest
name: 部署测试
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 模拟部署过程
run: |
echo "开始模拟部署..."
mkdir -p deploy
cp index.html deploy/
echo "部署文件列表:"
ls -la deploy/
echo "✅ 部署模拟完成"
- name: 验证部署结果
run: |
echo "验证部署结果..."
if [ -f "deploy/index.html" ]; then
echo "✅ 部署文件存在"
else
echo "❌ 部署文件不存在"
exit 1
fi
- name: 生成部署报告
run: |
echo "生成部署报告..."
date > deploy-report.txt
echo "部署项目: KaGaMi个人网站" >> deploy-report.txt
echo "部署状态: 成功" >> deploy-report.txt
echo "部署时间: $(date)" >> deploy-report.txt
echo "部署分支: ${{ github.ref_name }}" >> deploy-report.txt
cat deploy-report.txt
- name: 上传部署报告
uses: actions/upload-artifact@v4
with:
name: deploy-report
path: deploy-report.txt
retention-days: 30
security-check:
runs-on: ubuntu-latest
name: 安全检查
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 检查敏感信息
run: |
echo "检查是否包含敏感信息..."
# 检查是否有密码等敏感信息
if grep -i "password\|secret\|key\|token" index.html; then
echo "⚠️ 发现可能的敏感信息,请检查"
else
echo "✅ 未发现敏感信息"
fi
# 检查是否有恶意脚本
if grep -i "script.*src.*http" index.html; then
echo "⚠️ 发现外部脚本引用,请检查"
else
echo "✅ 未发现外部脚本引用"
fi
- name: 内容合规检查
run: |
echo "检查内容合规性..."
# 检查是否包含正面内容
if grep -q "学习\|成长\|积极" index.html; then
echo "✅ 内容积极向上"
else
echo "⚠️ 建议添加更多积极内容"
fi
echo "✅ 安全检查完成"