私はプロジェクトに関連するユーティリティジャー用のカスタムNexusを持っています。私はこれらの瓶を作るためにジェンキンスを持っています。Jenkinsfileに格納された認証情報をJenkinsfile内のカスタムNexusにデプロイするにはどうすればよいですか?
プロジェクトではgradleを、パイプラインを定義するにはJenkinsfileを使用します。最後の段階として、Nexusにアーチファクトを展開するビルド作業が必要です。
ソースレポジトリ内のNexusの資格情報(およびそのためにgradleスクリプトやJenkinsfileのいずれもない)を望んでいないので、Jenkins Credentialsプラグインに資格情報エントリを設定します。ネクサス。
これらの資格情報をJenkinsfile内から参照して、Nexusに配備するために使用する方法を教えてください。
は現在、私の展開の段階は次のようになります。
stage('Publish') {
sh "gradle upload"
}
は私がすべてで、この目的のためのGradle使用することはできますか?私はそれをローカルで使うことができると知っていますが、Jenkinsfile内から別のコマンドを使用するのは大丈夫です。
はGradleので、私は、タスクを定義するためにこれを使用します(。私はローカル環境変数としてユーザーとパスワードを設定することはもちろん、ジェンキンス上のオプションではありません。)
def nexusUser = "$System.env.NEXUS_USER"
def nexusPass = "$System.env.NEXUS_PASS"
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://nexus.example.com/repository/maven-releases/") {
authentication(userName: nexusUser, password: nexusPass)
}
}
}
}
なぜ環境変数を使用しないのですか? – mkobit
あなたのjenkinsインストールに環境変数を含めることができます。 –
また、Jenkinsが提供するグローバル認証情報を使用することもできます。 –