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