go build

This commit is contained in:
徐晓伟 2023-10-01 22:37:43 +08:00
parent f8a3ae00a3
commit 3c95e509a0
3 changed files with 77 additions and 1 deletions

3
.gitignore vendored
View File

@ -33,3 +33,6 @@ build/
.vscode/
/*.exe
/gitlab-go-windows-*
/gitlab-go-linux-*
/gitlab-go-darwin-*

View File

@ -1,6 +1,43 @@
stages:
- build
- sync
build:golang:1.21:
stage: build
image: golang:1.21
script:
- go version
- go env -w GOPROXY=https://goproxy.cn,direct
- GOOS=windows GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-windows-amd64.exe .
- GOOS=windows GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-windows-arm64.exe .
- GOOS=linux GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-amd64 .
- GOOS=linux GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-arm64 .
- GOOS=darwin GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-darwin-amd64 .
- GOOS=darwin GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-darwin-arm64 .
- ./gitlab-go-linux-amd64 --version
- ./gitlab-go-linux-amd64
artifacts:
name: "${CI_JOB_NAME}"
expire_in: 1 week
paths:
- gitlab-go-linux-*
build:golang:1.21-alpine3.18:
stage: build
image: golang:1.21-alpine3.18
script:
- go version
- go env -w GOPROXY=https://goproxy.cn,direct
- GOOS=linux GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-alpine-amd64 .
- GOOS=linux GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-alpine-arm64 .
- ./gitlab-go-linux-alpine-amd64 --version
- ./gitlab-go-linux-alpine-amd64
artifacts:
name: "${CI_JOB_NAME}"
expire_in: 1 week
paths:
- gitlab-go-linux-*
# 嵌入
include:
# 同步代码

View File

@ -46,5 +46,41 @@ go test -v
### build
```shell
go build main.go
go build
# GOOS=设置构建的目标操作系统darwin | freebsd | linux | windows
# GOARCH=设置构建的目标操作系统386 | amd64 | arm | arm64
# -v打印编译过程中的详细信息
# -ldflags设置在编译时传递给链接器的参数
# -trimpath去掉所有包含 go path 的路径
# -o指定构建后输出的文件名
```
- Windows
- amd64
```shell
GOOS=windows GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-windows-amd64.exe .
```
- arm64
```shell
GOOS=windows GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-windows-arm64.exe .
```
- Linux
- amd64
```shell
GOOS=linux GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-amd64 .
```
- arm64
```shell
GOOS=linux GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-linux-arm64 .
```
- Darwin
- amd64
```shell
GOOS=darwin GOARCH=amd64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-darwin-amd64 .
```
- arm64
```shell
GOOS=darwin GOARCH=arm64 go build -v -ldflags "-s -w -buildid=" -trimpath -o gitlab-go-darwin-arm64 .
```