2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
不太確定這里的用例,你也可以實(shí)際編譯包嗎?在那種情況下,也許go build -v
可以為您完成這項(xiàng)工作。來(lái)自go help build
:
-v print the names of packages as they are compiled.

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
我的愿望是找到類(lèi)似于 go build 選項(xiàng)的東西,如果目標(biāo)包是最新的,它基本上會(huì)吐出 true 或 false。如果有人找到可以解決這個(gè)問(wèn)題的工具(地球上我現(xiàn)在正在看著你),我會(huì)很高興。
我能找到解決問(wèn)題的最接近解決方案的方法是運(yùn)行此命令:
go build -n cmd/some-target
如果輸出是:
touch some-target
然后,它必須是最新的。如果輸出是一長(zhǎng)串命令,則不是。如果不是最新的。然后您可以使用以下方法獲取包名稱(chēng):
go build -v
獲取包的名稱(chēng)并將其移動(dòng)到 CI 過(guò)程的下一階段(構(gòu)建目標(biāo)、測(cè)試目標(biāo)、構(gòu)建映像等)。
顯然,它有點(diǎn)老套,需要自行推出解決方案,具體細(xì)節(jié)可能需要根據(jù)您的具體需求進(jìn)行更改。正如 @zacho314 提到的,它還需要保存 go build 緩存的狀態(tài),但大多數(shù)現(xiàn)代 CI 技術(shù)都有解決方案。我確定我現(xiàn)在會(huì)做類(lèi)似的事情。
- 2 回答
- 0 關(guān)注
- 174 瀏覽
添加回答
舉報(bào)