簡體   English   中英

沒有 Go 文件...在 gitlab-ci/cd 中制作 golang deb 時

[英]no Go files in ... when on making golang deb in gitlab-ci/cd

這是關於 golang 的,我在 gitlab-ci.yml 文件中使用的代碼。 這是我no Go files in /builds/release_management的錯誤,如下所示:

$ pwd
/builds/release_management
$ echo $BasePathForBinaryFile1
cmd/main_1/
$ ls
COPYING
DebPackageGitLabDocker
README.md
cmd
deb-build
ermbuild
go.mod
publishToRemote.sh
usr
working_gitlab-ci_ableToCreateDebPackageWithNoBinary.yml
$ echo $CI_PROJECT_DIR/$BasePathForBinaryFile1
/builds/release_management/cmd/main_1/
$ GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1
no Go files in /builds/release_management
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1

這是我的工作代碼

variables:
  GOOS: linux
  GOARCH: amd64
  TagName: 1.0.71
  DebFileName: $TagName
  BasePathForBinaryFile1: cmd/main_1/
  BinaryName: main1
  BasePathForBinaryFile2: cmd/main_2/
  BinaryName: main2

build_binary:
  stage: build
  image: golang:latest
  artifacts:
    untracked: true
  script:
    - cd cmd/main_1
    - GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1
#    - GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $CI_PROJECT_DIR/$BasePathForBinaryFile1

請注意:我也嘗試過提供$CI_PROJECT_DIR/$BasePathForBinaryFile1並且這也不起作用。

雖然,這在我先做 cd 然后使用點(。)從當前構建它時有效

variables:
  GOOS: linux
  GOARCH: amd64
  TagName: 1.0.71
  DebFileName: $TagName
  BasePathForBinaryFile1: cmd/main_1/
  BinaryName: main1
  BasePathForBinaryFile2: cmd/main_2/
  BinaryName: main2

build_binary:
  stage: build
  image: golang:latest
  artifacts:
    untracked: true
  script:
    - cd cmd/main_1
    - GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName .

這是我的文件夾結構:

在此處輸入圖像描述

知道我應該修復什么來修復這個 golang 錯誤嗎?

編輯 1:此外,在執行cd $CI_PROJECT_DIR/$BasePathForBinaryFile然后ls時,它不會進入該目錄並且仍然僅顯示基本目錄的內容:

$ echo $CI_PROJECT_DIR/$BasePathForBinaryFile1
/builds/SugarBox/edge_release_management/cmd/main_1/
$ cd $CI_PROJECT_DIR/$BasePathForBinaryFile
$ ls
COPYING
DebPackageGitLabDocker
README.md
cmd
deb-build
ermbuild
go.mod
publishToRemote.sh
usr
working_gitlab-ci_ableToCreateDebPackageWithNoBinary.yml

有幾個問題:

  1. 您的配置中沒有BinaryName1所以
GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1

成為

GOOS=$GOOS GOARCH=$GOARCH go build -o cmd/main_1/

並且源文件應該在當前目錄中,而它們不在那里。 您需要修復配置以使用BinaryName1BinaryName2而不是兩次使用BinaryName

  1. 您需要將 src 目錄指定為./cmd/main_1/
  2. Edit 1部分cd不起作用,因為環境名稱不正確它應該是$BasePathForBinaryFile1但它是$BasePathForBinaryFile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM