t1
This commit is contained in:
@ -1,178 +1,37 @@
|
||||
name: 网站测试和部署
|
||||
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验证工具
|
||||
- name: 基本测试
|
||||
run: |
|
||||
npm install -g html-validate
|
||||
|
||||
- name: 检查文件结构
|
||||
run: |
|
||||
echo "检查项目文件..."
|
||||
echo "🚀 开始测试..."
|
||||
echo "📁 当前目录: $(pwd)"
|
||||
echo "📋 文件列表:"
|
||||
ls -la
|
||||
echo "检查HTML文件是否存在..."
|
||||
if [ -f "index.html" ]; then
|
||||
echo "✅ index.html 文件存在"
|
||||
else
|
||||
echo "❌ index.html 文件不存在"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 测试完成!"
|
||||
|
||||
- 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: 设置Docker构造环境
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: 模拟部署过程
|
||||
- name: 构造Node.js Hello World程序
|
||||
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 "✅ 安全检查完成"
|
||||
echo "🐳 构造Node.js Hello World程序..."
|
||||
cat << 'EOF' > Dockerfile
|
||||
FROM node:18-alpine
|
||||
WORKDIR /app
|
||||
RUN echo '{"name": "hello-world", "version": "1.0.0", "main": "app.js"}' > package.json
|
||||
RUN echo 'console.log("Hello World from Node.js Docker! 🎉")' > app.js
|
||||
CMD ["node", "app.js"]
|
||||
EOF
|
||||
docker build -t nodejs-hello-world:latest .
|
||||
echo "✅ Node.js Hello World镜像构造完成!"
|
||||
|
||||
Reference in New Issue
Block a user