# GitCodeStatic 打包脚本说明文档 ## 打包脚本概述 本项目提供了多个构建脚本,支持在不同平台下构建和打包 GitCodeStatic 项目: - `build-all.sh` - Unix/Linux/macOS 下的全平台构建脚本 - `build-all.bat` - Windows 下的全平台构建脚本 - `build.ps1` - Windows PowerShell 构建脚本(单平台) - `build-linux.sh` - Linux 专用构建脚本 - `build-macos.sh` - macOS 专用构建脚本 ## 使用方法 ### 快速构建全平台包 **Linux/macOS:** ```bash cd scripts chmod +x build-all.sh ./build-all.sh [版本号] [输出目录] ``` **Windows:** ```batch cd scripts build-all.bat [版本号] [输出目录] ``` ### 参数说明 - `版本号`: 可选,默认为 "latest" - `输出目录`: 可选,默认为 "dist" ### 示例 ```bash # 使用默认参数构建 ./build-all.sh # 指定版本号 ./build-all.sh v1.2.3 # 指定版本号和输出目录 ./build-all.sh v1.2.3 releases ``` ## 支持的平台 脚本会为以下平台构建二进制文件和安装包: | 平台 | 架构 | 二进制文件 | 压缩包格式 | |------|------|-----------|-----------| | Windows | amd64 | gitcodestatic.exe | .zip | | Linux | amd64 | gitcodestatic | .tar.gz | | Linux | arm64 | gitcodestatic | .tar.gz | | macOS | amd64 | gitcodestatic | .tar.gz | | macOS | arm64 | gitcodestatic | .tar.gz | ## 输出结构 构建完成后,每个平台的包都包含以下文件: ``` gitcodestatic-{平台}-{架构}-{版本}/ ├── gitcodestatic[.exe] # 主程序 ├── web/ # Web 前端文件 │ ├── index.html │ └── static/ ├── configs/ # 配置文件 │ └── config.yaml ├── README.md # 项目说明 ├── QUICKSTART.md # 快速开始指南 ├── start.[sh|bat] # 启动脚本 └── [使用说明.txt|README_{平台}.md] # 平台特定说明 ``` ## 启动脚本 每个包都包含平台特定的启动脚本: **Windows (`start.bat`):** ```batch @echo off echo Starting GitCodeStatic Server... echo Web UI: http://localhost:8080 gitcodestatic.exe pause ``` **Unix/Linux (`start.sh`):** ```bash #!/bin/bash echo "Starting GitCodeStatic Server..." echo "Web UI: http://localhost:8080" chmod +x "./gitcodestatic" ./gitcodestatic ``` ## 特殊说明 ### CGO 处理 - **Windows amd64**: 启用 CGO (CGO_ENABLED=1) 用于 SQLite 支持 - **其他平台**: 禁用 CGO (CGO_ENABLED=0) 以简化交叉编译 ### 压缩格式 - **Windows**: 使用 ZIP 格式压缩 - **Unix/Linux/macOS**: 使用 tar.gz 格式压缩 ### 兼容性 - 构建脚本自动检测可用的压缩工具 - 如果系统缺少特定工具,会尝试使用替代方案 ## 前置要求 ### 必需: - Go 1.21+ - Git (用于版本信息) ### 可选(用于压缩): - **Linux/macOS**: tar, gzip - **Windows**: PowerShell (内置压缩) 或 zip 命令 ## 故障排除 ### 常见问题 1. **权限错误** ```bash chmod +x scripts/*.sh ``` 2. **Go 模块错误** ```bash go mod tidy go mod download ``` 3. **交叉编译失败** - 确保 Go 版本 >= 1.21 - 检查网络连接(可能需要下载工具链) 4. **压缩失败** - Windows: 确保 PowerShell 可用 - Unix: 安装 tar 和 gzip ### 调试模式 设置环境变量启用详细输出: ```bash export GOOS_DEBUG=1 ./build-all.sh ``` ## 自定义构建 如需自定义构建过程,可以修改脚本中的以下部分: 1. **平台列表**: 编辑 `PLATFORMS` 数组 2. **构建标志**: 修改 `go build -ldflags` 参数 3. **包含文件**: 调整文件复制逻辑 4. **压缩设置**: 更改压缩格式或参数 ## 部署建议 构建完成后的包可以直接部署到目标服务器: 1. **解压包文件**到目标目录 2. **运行启动脚本**或直接执行二进制文件 3. **访问 Web 界面**: http://localhost:8080 4. **查看 API 文档**: http://localhost:8080/swagger/ ## 版本管理 脚本会在构建时自动注入版本信息: ```bash go build -ldflags "-X main.Version=v1.2.3" ``` 版本号可通过程序参数或环境变量查看: ```bash ./gitcodestatic --version ```