マルチブランチパイプラインプラグインを使用してJenkinsでプロジェクトを構築しています。私は、宣言型のパイプラインの構文を使用していますし、私のJenkinsfileは次のようなものになります。マルチブランチパイプラインを使用するビルド環境のSSHキーJenkinsfile
pipeline {
agent { label 'blah' }
options {
timeout(time: 2, unit: 'HOURS')
buildDiscarder(logRotator(numToKeepStr: '5'))
}
triggers { pollSCM('H/5 * * * *') }
stages {
stage('Prepare') {
steps {
sh '''
echo "Building environment"
python3 -m venv venv && \
pip install git+ssh://[email protected]_private_repo.git
'''
}
}
}
}
をビルドはジェンキンス上で実行されると、ビルドが失敗し、私はコンソール出力をチェックするとき、それはしてPIP installコマンドに失敗しているボックスエラー:私はジェンキンスビルド環境に必要なSSHキーを設定する必要がありますが、これを行う方法を確認していないことを
Permission denied (publickey).
fatal: Could not read from remote repository.
推測しています。
コピーしようとしているレポにアクセスできないようです。あなたのJenkinsボックスの '.ssh'ディレクトリに必要な' config'ファイルを設定しましたか? –
私はそうは思わない。私は、Jenkinsfileを使用して、単一のパイプライン(jenkinsfileなし)で実行していたジョブをマルチブランチパイプラインに変換しようとしています。元のジョブでは、ジョブの設定を使用し、ビルド環境 - > ssh-agentセクションで指定されたsshキーを持っていました。マルチブランチパイプラインジョブでこれを行うためのオプションはなく、jenkinsfileでそれを行う方法に関する文書はありません –
ホスト上の '〜jenkinsuser/.ssh/id_rsa'に秘密鍵を置きます – Rik