我有以下.gitlab-ci.yml ...
stages:
- test
- build
- art
image: golang:1.9.2
variables:
BIN_NAME: example
ARTIFACTS_DIR: artifacts
GO_PROJECT: example
GOPATH: /go
before_script:
- mkdir -p ${GOPATH}/src/${GO_PROJECT}
- mkdir -p ${CI_PROJECT_DIR}/${ARTIFACTS_DIR}
- go get -u github.com/golang/dep/cmd/dep
- cp -r ${CI_PROJECT_DIR}/* ${GOPATH}/src/${GO_PROJECT}/
- cd ${GOPATH}/src/${GO_PROJECT}
test:
stage: test
script:
# Run all tests
go test -run ''
build:
stage: build
script:
# Compile and name the binary as `hello`
- go build -o hello
- pwd
- ls -l hello
# Execute the binary
- ./hello
# Move to gitlab build directory
- mv ./hello ${CI_PROJECT_DIR}
artifacts:
paths:
- ./hello
这在Linux上很好用,但是我现在需要做同样的事情,以便它构建Windows可执行文件。
然后,我计划运行预定的脚本来下载工件。
另一个选择是我在Windows服务器上运行一个虚拟linux服务器,并使用它运行我的go二进制文件。 我知道我需要将图像更改为Windows,但看不到在线找到合适的图像(为golang配置的图像)。
还是可以让该docker映像构建Windows exe?
答案 0 :(得分:1)
这不是gitlab问题,而是一个go问题。
从Go 1.5版开始,交叉编译变得非常容易。
GOOS=windows GOARCH=386 go build -o hello.exe hello.go
您现在可以在Windows计算机上运行hello.exe