578 字
3 分钟
Igo - Cross-Platform Go Build Tool
🚀 Igo - Cross-Platform Go Build Tool
Igo
是一个强大的 跨平台 Go 构建与打包命令行工具,在 Go 原生 go build
的基础上,提供了更高级的能力:
- 一次配置,多平台打包
- 自动生成
zip
、tar
、tar.gz
等分发包 - 进度可视化
- 灵活的 YAML 配置
非常适合需要 跨平台交付二进制 的 Go 项目。
✨ 特性
- 跨平台支持:Windows、macOS、Linux 一键构建
- 灵活配置:基于 YAML,支持变量替换
- 多种打包格式:ZIP、TAR、TAR.GZ
- Go 原生命令扩展:集成 run、build 等命令
- 可定制:自定义变量、编译规则
- 进度可视化:长任务不再枯燥
⚡ 安装
前置条件
- Go 1.21+
- Git
从源码安装
git clone https://github.com/qwqxl/igo.gitcd igogo build -o igo main.go# 全局安装(可选)go install
直接安装
go install github.com/qwqxl/igo@latest
🚀 快速开始
1. 初始化项目配置
igo init# 或自定义配置文件名igo init my-config
会生成一个 igo.yaml
配置文件。
2. 编辑配置
project: name: "my-app" version: "1.0.0" main: "main.go"
build: platforms: - "windows/amd64" - "darwin/amd64" - "linux/amd64"
3. 构建项目
igo build # 所有平台igo build --platforms "windows/amd64,linux/amd64"igo build --output ./bin
4. 打包分发
igo package # 默认打包igo package --format tar.gz # 指定格式igo package --include "docs/,config/"
⚙️ 配置说明
项目信息
project: name: "your-app-name" version: "1.0.0" description: "Your app description" main: "main.go" output: "app-name"
构建配置
build: platforms: - "windows/amd64" - "darwin/amd64" - "linux/amd64" tags: ["release"] flags: ["-ldflags=-s -w"] env: CGO_ENABLED: "0" output_dir: "dist" type: "binary"
打包配置
package: include: - "README.md" - "LICENSE" exclude: - ".git" - "*.tmp" format: "zip" output_dir: "packages" compression_level: 6
环境变量
environment: APP_ENV: "production" DEBUG: "false"
自定义配置
custom: company_name: "Your Company" config_name: "igo"
📦 命令列表
igo init [config-name]
→ 初始化配置文件igo run [args...]
→ 运行 Go 程序igo build
→ 构建多平台二进制igo package
→ 打包分发igo validate
→ 校验配置igo config
→ 查看当前配置
🖥 支持平台
- Windows: amd64, 386, arm64
- macOS: amd64, arm64
- Linux: amd64, 386, arm, arm64
- FreeBSD: amd64, 386, arm, arm64
📂 支持的打包格式
- ZIP
- TAR
- TAR.GZ
🔧 变量替换
配置文件中可以用 ${}
进行替换:
custom: company: "Acme" version: "1.0.0"
build: output_dir: "dist/${custom_company}-${custom_version}"
可用变量:
${project_name}
${project_version}
${env_KEY}
${custom_key}
📚 示例
Web 应用
package: include: - "static/" - "templates/" - "config.yaml" exclude: - "*.log" - ".env"
CLI 工具
package: include: - "README.md" - "docs/" - "examples/" format: "tar.gz"
🛠 开发
git clone https://github.com/qwqxl/igo.gitcd igogo build -o igo main.gogo test ./...
📌 Roadmap
- Docker 支持
- CI/CD 集成
- 插件系统
- GUI 界面
- 云端发布
📄 License
MIT License → LICENSE
🔗 支持与反馈
Igo - Cross-Platform Go Build Tool
https://iqwq.com/posts/golang/igo/