GitHub actions中的不同系统之间的构建该如何解决#11
CNB现在的单Linux系统用来构建项目的二进制软件有点吃力了,无法支持其他的系统架构,我现有的项目基本都是需要构建linux、Windows、macOS的,但是CNB无法构建,后续会这么做
#6
只是构建二进制的话,除了依赖换环境这个思路外,还可以看一下所使用的编程语言本身是否支持跨平台构建。 比如 golang,可以通过如下的方式来构建出对应平台的二进制文件。
releases: @echo "Building for multiple platforms..." @mkdir -p dist @GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_linux_amd64 @GOOS=linux GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_linux_arm64 @GOOS=windows GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_windows_amd64.exe @GOOS=windows GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_windows_arm64.exe @GOOS=darwin GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_darwin_amd64 @GOOS=darwin GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o dist/git-cnb_darwin_arm64
完整流程可以参考 (git-cnb)[https://cnb.cool/looc/git-cnb] 项目,自定构建多平台的二进制文件后上传到 release 附件,通过提供一件安装二进制命令的工具。
如果编程语言不支持,还有两条路可以走
CNB现在的单Linux系统用来构建项目的二进制软件有点吃力了,无法支持其他的系统架构,我现有的项目基本都是需要构建linux、Windows、macOS的,但是CNB无法构建,后续会这么做