私があなたの質問を正しく理解している場合、依存関係としてgitlabからプライベートプロジェクトをプルできるようにnpmを実行するCIパイプラインが必要です。
その場合、gitlabのdeploy keysメカニズムを使用することができます(hereを参照)。
最初にSSH鍵ペアを生成します。これにはssh-keygen -t rsa
を使用できます。
プライベートレポジトリのgitlabページに移動し、Deploy Keys
の設定を探します。ここでは、生成したばかりの公開鍵を貼り付ける必要があります。
次に、CIでnpmを実行するプロジェクトに行き、Variables
ページを探します。たとえば、名前がSSH_PRIVATE_KEY
の新しいプライベート変数を作成し、そこに生成した秘密鍵を貼り付けます。秘密鍵は、あなたのCI環境に使用できるように
最後に、あなたの.gitlab-ci.yml
ファイルに次の行を追加します。その中には、自分のプライベートリポジトリを引っ張ることができるように
- '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環境は今、セットアップする必要があります。
非常に関連しています(2番目の回答を確認してください):http://stackoverflow.com/q/28728665/1233251 –
@ E_net4はい。私もその投稿を参照してください。しかし、それはgithubを使用しています。私は両方を試みた。 gitlabはgithubと同じ方法を使用していないようです。 –
http://stackoverflow.com/a/43774869/2179157 –