如何使用适用于Windows的GitLab管道进行构建

时间:2019-06-19 09:29:59

标签: go gitlab gitlab-ci

我有以下.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?

1 个答案:

答案 0 :(得分:1)

这不是gitlab问题,而是一个go问题。

从Go 1.5版开始,交叉编译变得非常容易。

GOOS=windows GOARCH=386 go build -o hello.exe hello.go

您现在可以在Windows计算机上运行hello.exe