如果我正確理解你的問題,你希望你的CI管道運行npm能夠從你的gitlab中拉出一個私人項目作爲依賴。
在這種情況下,您可以在gitlab中使用deploy keys機制(請參閱here)。
首先生成SSH密鑰對。你可以使用ssh-keygen -t rsa
。
然後轉到私有存儲庫的gitlab頁面並找到Deploy Keys
設置。在那裏你應該粘貼你剛剛生成的公鑰。
然後轉到在CI中運行npm的項目並找到Variables
頁面。例如,創建一個名稱爲SSH_PRIVATE_KEY
的新私有變量,並粘貼您在那裏生成的私鑰。
最後,在.gitlab-ci.yml
文件中添加以下,這樣你的私鑰將提供給您的CI環境:
- 'which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)'
# Run ssh-agent (inside the build environment)
- eval $(ssh-agent -s)
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
您的CI環境現在應該設置,使得可以拉你的私人資料庫。
重度相關(檢查第二個答案):http://stackoverflow.com/q/28728665/1233251 –
@ E_net4是的。我也看到那篇文章。但是那個使用github。我嘗試了兩個。但似乎gitlab不使用與github相同的方式。 –
http://stackoverflow.com/a/43774869/2179157 –