diff --git a/.gitea/workflows/build-and-docker.yml b/.gitea/workflows/build-and-docker.yml deleted file mode 100644 index 333ef84..0000000 --- a/.gitea/workflows/build-and-docker.yml +++ /dev/null @@ -1,228 +0,0 @@ -name: Build and Docker Pipeline - -on: - push: - branches: [main] - workflow_dispatch: - schedule: - - cron: '0 2 * * *' # 每天凌晨2点运行 - -env: - REGISTRY: gitea.tailnet-68f9.ts.net - IMAGE_NAME: ben/modelscope-builder - -jobs: - # 任务1: 环境检查和基础构建 - build-info: - runs-on: ubuntu - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Runner Environment Info - run: | - echo "=== DSW Runner 环境信息 ===" - echo "主机名: $(hostname)" - echo "操作系统: $(uname -a)" - echo "CPU 信息:" - nproc - cat /proc/cpuinfo | grep "model name" | head -1 - echo "内存信息:" - free -h - echo "磁盘空间:" - df -h - echo "当前时间: $(date)" - echo "运行用户: $(whoami)" - echo "工作目录: $(pwd)" - - - name: Check Tools Availability - run: | - echo "=== 检查可用工具 ===" - echo "Git 版本:" - git --version - echo "Docker 版本:" - docker --version || echo "Docker 未安装" - echo "Go 版本:" - go version || echo "Go 未安装" - echo "Node.js 版本:" - node --version || echo "Node.js 未安装" - echo "Python 版本:" - python3 --version || echo "Python3 未安装" - echo "=== 网络连通性测试 ===" - ping -c 2 gitea.tailnet-68f9.ts.net || echo "无法 ping Gitea" - curl -s -o /dev/null -w "Gitea HTTP 状态: %{http_code}\n" https://gitea.tailnet-68f9.ts.net || echo "无法访问 Gitea HTTPS" - - # 任务2: 构建一个示例 Go 应用 - build-go-app: - runs-on: ubuntu - needs: build-info - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: '1.21' - - - name: Create Sample Go App - run: | - mkdir -p ./sample-app - cat > ./sample-app/main.go << 'EOF' - package main - - import ( - "fmt" - "net/http" - "os" - "time" - ) - - func main() { - port := os.Getenv("PORT") - if port == "" { - port = "8080" - } - - http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Hello from DSW Runner! Time: %s\n", time.Now().Format(time.RFC3339)) - }) - - http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - fmt.Fprintln(w, "OK") - }) - - fmt.Printf("Server starting on port %s...\n", port) - if err := http.ListenAndServe(":"+port, nil); err != nil { - fmt.Printf("Server error: %v\n", err) - } - } - EOF - - cat > ./sample-app/go.mod << 'EOF' - module sample-app - - go 1.21 - EOF - - - name: Build Go App - run: | - cd ./sample-app - echo "开始构建 Go 应用..." - go build -v -o app main.go - echo "构建完成!" - ls -lh app - file app - - - name: Test Binary - run: | - cd ./sample-app - echo "测试二进制文件..." - ./app & - APP_PID=$! - sleep 2 - curl -s http://localhost:8080/ || echo "服务测试失败" - kill $APP_PID || true - echo "测试完成" - - - name: Upload Build Artifact - uses: actions/upload-artifact@v4 - with: - name: go-app-binary - path: ./sample-app/app - retention-days: 7 - - # 任务3: Docker 镜像构建(如果 Docker 可用) - build-docker: - runs-on: ubuntu - needs: build-go-app - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Download Build Artifact - uses: actions/download-artifact@v4 - with: - name: go-app-binary - path: ./sample-app/ - - - name: Make Binary Executable - run: chmod +x ./sample-app/app - - - name: Create Dockerfile - run: | - cat > ./sample-app/Dockerfile << 'EOF' - FROM alpine:latest - - RUN apk add --no-cache ca-certificates - - WORKDIR /app - COPY app /app/ - - EXPOSE 8080 - - ENV PORT=8080 - - CMD ["./app"] - EOF - - - name: Build Docker Image - run: | - if command -v docker &> /dev/null; then - echo "Docker 可用,开始构建镜像..." - cd ./sample-app - docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} . - docker tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - echo "镜像构建完成!" - docker images | grep ${{ env.IMAGE_NAME }} - else - echo "Docker 不可用,跳过镜像构建" - fi - - - name: Test Docker Container - run: | - if command -v docker &> /dev/null; then - echo "测试 Docker 容器..." - docker run -d --name test-app -p 8081:8080 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - sleep 3 - curl -s http://localhost:8081/ || echo "容器测试失败" - docker stop test-app - docker rm test-app - echo "容器测试完成" - fi - - - name: Push Docker Image (if credentials available) - run: | - if command -v docker &> /dev/null; then - echo "尝试推送镜像到仓库..." - echo "注意: 需要配置 Docker 登录凭证" - # docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - # docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - fi - - # 任务4: 清理和报告 - cleanup-and-report: - runs-on: ubuntu - needs: [build-info, build-go-app, build-docker] - if: always() - steps: - - name: Generate Report - run: | - echo "=== 构建报告 ===" - echo "工作流运行时间: ${{ github.run_duration }}" - echo "触发事件: ${{ github.event_name }}" - echo "提交 SHA: ${{ github.sha }}" - echo "分支: ${{ github.ref }}" - echo "=== 任务状态 ===" - echo "build-info: ${{ needs.build-info.result }}" - echo "build-go-app: ${{ needs.build-go-app.result }}" - echo "build-docker: ${{ needs.build-docker.result }}" - - - name: Cleanup Docker - run: | - if command -v docker &> /dev/null; then - echo "清理 Docker 资源..." - docker system prune -f || true - echo "清理完成" - fi diff --git a/.gitea/workflows/hello-world.yml b/.gitea/workflows/hello-world.yml deleted file mode 100644 index b9871d8..0000000 --- a/.gitea/workflows/hello-world.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Hello World Test - -on: - push: - branches: [main] - workflow_dispatch: - -jobs: - hello: - runs-on: ubuntu - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Say Hello - run: | - echo "Hello from DSW Runner!" - echo "Current time: $(date)" - echo "Hostname: $(hostname)" - echo "Working directory: $(pwd)" - ls -la diff --git a/.gitea/workflows/no-action-test.yml b/.gitea/workflows/no-action-test.yml new file mode 100644 index 0000000..1d84b4d --- /dev/null +++ b/.gitea/workflows/no-action-test.yml @@ -0,0 +1,24 @@ +name: No Action Test + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu:host + steps: + - run: | + echo "========================================" + echo "TEST START" + echo "========================================" + echo "Step 1: Hello" + echo "Step 2: $(date)" + echo "Step 3: $(whoami)" + echo "Step 4: $(hostname)" + echo "Step 5: $(pwd)" + echo "Step 6: $(uname -a)" + echo "========================================" + echo "TEST END" + echo "========================================" diff --git a/.gitea/workflows/pure-shell-test.yml b/.gitea/workflows/pure-shell-test.yml deleted file mode 100644 index 88fdcd7..0000000 --- a/.gitea/workflows/pure-shell-test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Pure Shell Test - -on: - push: - branches: [main] - workflow_dispatch: - -jobs: - test: - runs-on: ubuntu:host - steps: - - run: echo "Step 1 - Hello from Runner" - - run: echo "Step 2 - Current dir is $(pwd)" - - run: echo "Step 3 - User is $(whoami)" - - run: echo "Step 4 - Time is $(date)" - - run: | - echo "Step 5 - System info" - uname -a diff --git a/.gitea/workflows/simple-build.yml b/.gitea/workflows/simple-build.yml deleted file mode 100644 index 111ed5c..0000000 --- a/.gitea/workflows/simple-build.yml +++ /dev/null @@ -1,230 +0,0 @@ -name: Simple DSW Build Test - -on: - push: - branches: [main] - workflow_dispatch: - -jobs: - # 任务1: 基础环境检查 - check-env: - runs-on: ubuntu - steps: - - name: Print Environment - run: | - echo "========================================" - echo "DSW Runner 环境检查" - echo "========================================" - echo "时间: $(date)" - echo "主机名: $(hostname)" - echo "当前目录: $(pwd)" - echo "用户: $(whoami)" - echo "" - echo "=== 系统信息 ===" - uname -a - echo "" - echo "=== CPU ===" - nproc - cat /proc/cpuinfo | grep "model name" | head -1 - echo "" - echo "=== 内存 ===" - free -h - echo "" - echo "=== 磁盘 ===" - df -h - echo "========================================" - - # 任务2: 检查工具 - check-tools: - runs-on: ubuntu - needs: check-env - steps: - - name: Check Available Tools - run: | - echo "=== 检查可用工具 ===" - - echo -n "Git: " - git --version 2>/dev/null || echo "未安装" - - echo -n "Docker: " - docker --version 2>/dev/null || echo "未安装" - - echo -n "Go: " - go version 2>/dev/null || echo "未安装" - - echo -n "Node.js: " - node --version 2>/dev/null || echo "未安装" - - echo -n "Python3: " - python3 --version 2>/dev/null || echo "未安装" - - echo -n "Make: " - make --version 2>/dev/null | head -1 || echo "未安装" - - echo -n "GCC: " - gcc --version 2>/dev/null | head -1 || echo "未安装" - - echo "=== PATH ===" - echo $PATH - - # 任务3: 网络测试(只测内网) - network-test: - runs-on: ubuntu - needs: check-env - steps: - - name: Network Connectivity - run: | - echo "=== 网络连通性测试(仅内网) ===" - - echo "测试访问 Gitea:" - curl -s -o /dev/null -w "状态码: %{http_code}\n" --max-time 10 https://gitea.tailnet-68f9.ts.net || echo "❌ 无法访问" - - echo "" - echo "测试 DNS 解析:" - nslookup gitea.tailnet-68f9.ts.net || echo "DNS 解析失败" - - # 任务4: 实际工作 - 本地构建 - build-sample: - runs-on: ubuntu - needs: [check-env, check-tools] - steps: - - name: Build Simple C Program - run: | - echo "=== 编译简单 C 程序 ===" - cat > /tmp/hello.c << 'EOF' - #include - #include - - int main() { - printf("Hello from DSW Runner!\n"); - printf("Build time: %s\n", __TIME__); - printf("Date: %s\n", __DATE__); - return 0; - } - EOF - - if command -v gcc &> /dev/null; then - gcc -o /tmp/hello /tmp/hello.c && /tmp/hello - else - echo "GCC 未安装,跳过编译" - fi - - - name: Python Script Test - run: | - echo "=== 运行 Python 脚本 ===" - python3 << 'EOF' - import platform - import datetime - import os - - print("Python 系统信息:") - print(f" 系统: {platform.system()}") - print(f" 版本: {platform.release()}") - print(f" 机器: {platform.machine()}") - print(f" 处理器: {platform.processor()}") - print(f" Python 版本: {platform.python_version()}") - print(f" 当前时间: {datetime.datetime.now()}") - print(f" 工作目录: {os.getcwd()}") - print(f" 用户: {os.getenv('USER', 'unknown')}") - print("\n✅ Python 脚本执行成功!") - EOF - - - name: Create Artifact - run: | - echo "=== 创建构建产物 ===" - mkdir -p /tmp/artifacts - echo "Build completed at $(date)" > /tmp/artifacts/build-info.txt - echo "Runner: $(hostname)" >> /tmp/artifacts/build-info.txt - echo "User: $(whoami)" >> /tmp/artifacts/build-info.txt - cat /tmp/artifacts/build-info.txt - - # 任务5: Docker 测试(如果可用,使用本地镜像) - docker-test: - runs-on: ubuntu - needs: check-tools - steps: - - name: Test Docker - run: | - echo "=== Docker 测试 ===" - if command -v docker &> /dev/null; then - echo "Docker 版本:" - docker --version - - echo "" - echo "Docker 信息:" - docker info 2>/dev/null | head -20 || echo "无法获取 Docker 信息" - - echo "" - echo "本地镜像列表:" - docker images 2>/dev/null || echo "无法列出镜像" - - echo "" - echo "运行中的容器:" - docker ps 2>/dev/null || echo "无法列出容器" - else - echo "Docker 未安装,跳过测试" - fi - - # 任务6: 压力测试 - 计算密集型任务 - stress-test: - runs-on: ubuntu - needs: [check-env, check-tools] - steps: - - name: CPU Stress Test - run: | - echo "=== CPU 压力测试 ===" - python3 << 'EOF' - import time - import multiprocessing - - def cpu_task(n): - """计算斐波那契数列""" - if n <= 1: - return n - a, b = 0, 1 - for _ in range(2, n + 1): - a, b = b, a + b - return b - - print(f"CPU 核心数: {multiprocessing.cpu_count()}") - print("开始计算...") - - start = time.time() - # 计算第 35 个斐波那契数 1000 次 - for i in range(1000): - result = cpu_task(35) - - elapsed = time.time() - start - print(f"计算完成! 耗时: {elapsed:.2f} 秒") - print(f"结果: {result}") - print("✅ CPU 压力测试通过!") - EOF - - - name: Memory Test - run: | - echo "=== 内存测试 ===" - python3 << 'EOF' - import sys - - # 创建大列表测试内存 - print("分配 100MB 内存...") - big_list = [0] * (100 * 1024 * 1024 // 8) # 100MB - print(f"列表大小: {len(big_list)} 个元素") - print(f"内存使用: ~100MB") - print("✅ 内存测试通过!") - EOF - - # 任务7: 总结报告 - report: - runs-on: ubuntu - needs: [check-env, check-tools, network-test, build-sample, docker-test, stress-test] - if: always() - steps: - - name: Generate Report - run: | - echo "========================================" - echo "DSW Runner 测试报告" - echo "========================================" - echo "所有任务已完成!" - echo "运行时间: $(date)" - echo "========================================"