2017-12-14 17 views
1

私はプロジェクトに関連するユーティリティジャー用のカスタム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) 
      } 
     } 
    } 
} 

+0

なぜ環境変数を使用しないのですか? – mkobit

+0

あなたのjenkinsインストールに環境変数を含めることができます。 –

+0

また、Jenkinsが提供するグローバル認証情報を使用することもできます。 –

答えて

2

あなたは〜/ .gradle/gradle.properties nexusUser=superuser nexusPass=superpassword

+1

はい、これは最適なソリューションだと思います.Jenkinsユーザー(実際にCIを実行しています)の下で変更する必要があることを覚えておいてください。 –

0

で外部変数を設定することができますあなたはどのウィル環境変数を注入するwithCredentials(){}ステップを使用することができますl {}ブロック内にしか見えません。

関連する問題