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/kawaiirei0/igo.gitcd igogo build -o igo main.go# 全局安装(可选)go install直接安装
go install github.com/kawaiirei0/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 ./bin4. 打包分发
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/kawaiirei0/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/