4

我在Gitlab CI虛擬構建腳本:如何在Gitlab CI的構建腳本中設置(環境)變量?

pwd 
ci_app_path=$(pwd) 
echo "INFO: current directory: $ci_app_path" 

,我得到這個輸出,當系統啓動構建過程:

pwd 
/home/kai/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1 

ci_app_path=$(pwd) 

echo "INFO: current directory: $ci_app_path" 
INFO: current directory: 

所以變量未設置(或只設置對於該行:我知道每行都單獨執行)

我聽說push/pop機制達到了我想要的功能,但找不到任何細節,如何實現它。

更新:

正如我所想的,每一行都將單獨執行。因此,變量的作用域是隻有一條線,它的定義:

腳本:

pwd 
ci_app_path=$(pwd) && echo "INFO: current directory: $ci_app_path" 

輸出:

pwd 
/home/devuser/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1 

ci_app_path=$(pwd) && echo "INFO: current directory: $ci_app_path" 
INFO: current directory: /home/kai/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1 

我不認爲寫整個腳本作爲一個單班輪是一個好主意/實踐。

如何獲取執行構建腳本時設置的變量?

P.S.

其實我不知道爲什麼整個構建腳本中不能包含空行?,否則返回:

No such file or directory 

,並在這個地方

+0

我不熟悉'gitlab',但是這是相同的面臨'make'問題的類型(也許這就是'gitlab ci'使用的問題?)。用'make',這個想法是,如果你有這麼多行,你應該把它們保存到一個外部腳本中並且讓'make'執行它。 'Makefile'不是一個shell腳本,不應該被視爲一個。 'gitlab ci'可能會採用相同的方法。 – chepner

回答

0

的時候Gitlab-CI鄉親修復構建失敗,您可以創建裏面和Gitlab-CI一個Makefile和出口變量傳遞變量,例如

PWD = $ PWD使

Makefile文件開頭答: 出口GOPATH = $(PWD)

4

Gitlab CI只是扮演shell命令所以你在* SH做什麼:

export ci_app_path=$(pwd) 
echo "INFO: current directory: $ci_app_path" 
相關問題