タグ付けされた質問 「jenkins」

オープンソースの自動化サーバーであるJenkinsに関する質問、およびソフトウェアの構築、テスト、デプロイなどのトピックのためのJenkinsの使用。特にJenkinsプラグインに関する質問には、jenkins-pluginsタグを使用してください。

2
複数のiOSプロジェクトの継続的統合インフラストラクチャ
iOS開発者として、私はこれまでに開発中のiOSプロジェクト用にCIおよびCCQ(= Continuous Code Quality)インフラストラクチャを作成しようとしていました。ほぼすべてのWebおよびAndroidプロジェクトにJenkinsとSonarQubeを使用しています(VM foreachプロジェクトを使用し、CIとCCQのインストールと構成は自動化されています)。しかし、iOSプロジェクトの場合、JenkinsはmacOSを実行しているコンピューターでビルドを行う必要があるため、そのための完璧なソリューションがあるかどうかはわかりません。 macOSを仮想化するソリューションを探していました。各プロジェクトで、仮想macOSを作成し、ビルドを処理するためにそこにJenkinsをスレーブとしてインストールします。ソリューションは完璧に見えましたが、macOSで2つ以上のVMを実行することは違法であるようです(もちろん、Macコンピューターでのみ) http://images.apple.com/legal/sla/docs/macOS1012.pdf ->ポイント2.B。したがって、これは私の場合の解決策ではありません。 私が読んだ別の一般的な解決策は、すべてのプロジェクトのすべてのビルドを処理するMacコンピューター(MacMiniかもしれません)を持つことです。この実装についてどう思いますか?いくつのプロジェクトを処理できますか?開発者は自分のプロジェクト(特にSonarQube)でいくつかの設定を行う必要があるかもしれませんが、安全ですか? 異なるポートを使用して、同じマシン上で複数のJenkinsおよびSonarQubeインスタンスを使用できますか?これは考慮すべき解決策でさえありますか? 上記のソリューションよりも優れている可能性のある他の実行可能なソリューションはありますか? 注:Jenkins + SonarQubeのデュオにはこだわりません。iOS開発に適した他のツールがある場合は、それらを共有してください。

3
Jenkinsビルドのリモートトリガーを行うときに「発火して忘れない」方法
私は、Bambooからパラメーター化されたJenkinsビルドをトリガーして、以下を実行しようとしています: 役職 - http://jenkins-url.com/job/jobname/buildWithParameters?ENVIRONMENT=dev&APPLICATION=hello-world しかし、私はすぐに201を取得し、ビルドが作成されたことを知らせます。このリクエストを待機させて、火の代わりにビルドの成功ステータスを返すにはどうすればいいですか? Parameterized-Remote-Trigger-Pluginごとに明らかに可能です: 編集:必要に応じてこれを最後に作成しました。 https://github.com/owenmorgan/jenkins-remote-builder

4
メインフレームコンポーネントをPDS形式で管理するためにJenkinsを使い始めるには、どのプラグインを使用すればよいですか?
DevOpsとメインフレームに精通しているが、Jenkinsに不慣れな人がJenkinsを使い始めたいと思っているとします。例えば: メインフレーム上の個人ファイル(PDS、つまり区分データセット)に保存されているデータの管理の実行可能性を調査します(メインフレームソフトウェアを管理するために存在する一般的なSCMソリューションによって管理されていません)。 ある種の個人的な開発環境、たとえばVirtual BoxのLinux環境(それが理にかなっている場合)でJenkinsを実行する。 ある種(最小)のJenkinsのインストールと設定が完了すると、実際の質問は「Which of the typical Jenkins plugins, if any, would be needed?」になります。私の場合、理にかなっているように見えるさまざまなJenkinsプラグインから、これらは可能性のある候補であるようです(引用はリンクされたページからです): IBM zOSコネクター。 ... IBM z / OS LPARへのFTP接続を介してその機能を提供します。z / OSでSCLMプロジェクトを構成してから、Jenkinsを介して変更を確認できます。 機能が含まれます: ユーザーJCLジョブの送信(終了時に収集されるオプションのログを使用)。 SCLMの変更をチェックアウトできるようにするプロジェクトのSCMとしてのSCLMの導入。 SCLMプロジェクトをビルドする機能は、現在、「Submit zOS Job」ビルドアクションを介してのみ実行できます。 Endevor、PDS、およびISPWプラグインのコンピュウェアソースコードのダウンロード。 ... Jenkinsユーザーは、Endevor、PDS、またはISPWメンバーをメインフレームからPCにダウンロードできます。その後、たとえばSonarQubeの分析とレポートのために、PCでソースにアクセスできます。 1番目のプラグインはSCLMに関するもので(PDSがすべてです)、2番目のプラグインはPDSのサポートを(その名前で)明示的に示しているため、両方が候補であると信じています。 私の候補リストが完全であると仮定すると(それですか?)、どちらが自分のケースに最適かを判断するのに役立つどちらかの長所と短所は何ですか? Ps:「Jenkins Kickstart」パッケージのようなものは存在しないようです(少なくとも私はまだ見つけていません)。

2
Dockerで実行されるJenkinsビルドスレーブでnpmキャッシュを有効にする方法は?
frontend.imageJenkinsビルドスレーブに使用するDockerイメージがあります。Jenkins Dockerプラグインは、このイメージからコンテナーをスピンアップし、コンテナー内にアーティファクトを構築します。これはすべてうまくいきます。この場合、frontend.imageAngularJsアプリの構築に使用されます。このAngularアプリの構築の一部は、アプリに必要なnpmパッケージをインストールすることです。 このプロセス、npm installには時間がかかり、3分かかるようです。npmは常にすべてのパッケージを毎回インストールします。 そこで、スレーブ用のボリュームを追加しました。これはホストマウントボリュームです。Dockerプラグインは、フロントエンドコンテナーを実行するたびにこのボリュームを使用します。 コマンドを実行するユーザーnpm installはjenkinsです。npmは、npm config get cache出力するコマンドで見つけることができるキャッシュを保持します/home/jenkins/.npm その/slaves/volumes/tsl.frontend:/home/jenkinsため、Webコンテナのスレーブにホストボリュームをマウントしています。 Jenkinsプロジェクトを使用してAngularアプリをビルドします。問題なくビルドされ、多くのnpmパッケージがインストールされています。Dockerホストにsshしてcmd ls /slaves/volumes/tsl.frontendを実行すると、多くのnpmパッケージが表示されます。これは、スレーブのホストボリュームマウントが機能したことを意味します。 ここで、ジェンキンスプロジェクトをもう一度ビルドします。npmは、Dockerスレーブビルドコンテナがボリュームホストマウントを使用している場合でも、すべてのパッケージを再度インストールします。キャッシュされた多くのnpmパッケージを一覧表示するcmd docker exec -it <some_clever_random_container_id> bash、cmd su jenkins、cmd npm cache lsでスレーブコンテナーにバッシングすることでも確認できます。 そのため、ホストマウントボリュームにアクセス許可chmod 777があり、アクセス許可の問題がないnpm install場合でも、キャッシュを使用できません。 Dockerスレーブコンテナーを起動するJenkinsビルドで、最初に実行するcmdがnpm cache lsあり、多くのパッケージがリストされていますが、これはホストボリュームが期待どおりに機能し、npmキャッシュインデックスの整合性が壊れていないことを意味しませんか? 通常のnpm installcmd を試しました。ローカルマシンで実行すると、最初にすべてのパッケージがインストールされ、次回はほとんどパッケージがインストールされません。また、このSOの回答とcmd npm --cache-min 9999999 installから取得したnpm cache "hack"npm --skip-installed --cache-min 9999999 install 関連する質問がStackOverflowに投稿されました。
13 docker  jenkins  npm 

2
Jenkinsビルドエグゼキュータの空きメモリを確認するにはどうすればよいですか?
JenkinsでBuild Executor Statusをクリックすると、空きディスク領域関連の統計(URI:)しか表示されません/computer。Jenkinsで空きシステムメモリ(RAM)を監視するにはどうすればよいですか? 実行者が多すぎる場合(スワップスペースが構成されていても、以下のものではない)、Jenkinsがフリーズまたはクラッシュすることが多かったためです。

1
SlackからJenkinsジョブに文字列を渡す
理想的な世界では、技術に詳しくない従業員はSlackコマンドを使用してジョブを実行し、結果を彼らに戻し、Jenkins GUIの使用を無効にすることができます。私が見つかりました。スタートスラックコマンドを使用して、ジェンキンスでビルド GitHubの上で、それは1要求するように思われることなど、いくつかの制限が持っている:我々の目的のために素晴らしいではありませんジェンキンスジョブに1比Herokuのインスタンスを、。 私の考えは、人々にのような単数のコマンドを使用し、/jenkinsその後に1つのジョブで解析され、他の下流のキックオフに使用されるパラメーターを使用することです。これにより、1つのスラックコマンド/ 1つのインスタンスが維持されますが、必要な柔軟性はすべて得られます。 問題は、Jenkinsにパラメーターを取得することです。次のワークフローのようなものを描いています。 /Jenkins job2 param1 param2Slackのユーザータイプ。これは、実行する内容を見つけるためにパラメーターを解析するアンブレラジョブを呼び出しています。 コマンドはどういうわけか傘のジェンキンスの仕事に送られます。Herokuインスタンス、直接統合、w / e。 アンブレラジョブはjob2 param1 param2文字列として受け取ります。(おそらく、単一のパラメーターの値として、おそらく複数のフィールドに事前に分割されます) Umbrellaジョブは、まだ実行されていない場合は文字列を分割し、job2パラメーターparam1とを使用して、ユーザーが実行を希望していると判断しますparam2。 Umbrellaジョブはビルドジョブを実行して、呼び出されたとおりにダウンストリームジョブを実行します。これにより、ユーザーに結果がSlackされます。 私をつまずかせているのはステップ2〜3です。SlackからJenkinsジョブに文字列(スペースを含む)を渡すにはどうすればよいですか? 私の前提全体が間違っている場合、私は自分のフレームに挑戦することにもオープンです。
12 jenkins  slack 

3
ジェンキンスvs Azure DevOpsパイプライン
Microsoftが最近発表したAzure DevOpsソリューションについていくつかの調査を行っています。 いくつかの背景、私はJenkinsを何年も使用しており、最近、コンテナー化のウサギの穴(Docker、Kubernetesなど)の調査を開始しました。 Azure DevOps Pipelinesのいくつかの側面についてはよくわかりません。フィードバックや明確さを得るのは素晴らしいことです。 TL; DR Azure DevOpsは、以前Jenkinsのオープンソースプラグインを介してJenkinsコミュニティをサポートしていたJenkinsと競合していますか? エージェントだけでなく、Azure DevOps Pipelinesを完全にオンプレミスでホストすることは可能ですか? Azure DevOpsパイプラインでセルフホストgitソリューション(GitLabオンプレミスなど)を使用することは可能ですか? 長いバージョン マイクロソフトは、Azure App ServiceのJenkinsプラグインなど、Jenkins用のさまざまなオープンソースプラグインを開発しました。多くの例があります。私には、Azure DevOps(具体的にはパイプライン)ソリューションがJenkinsと直接競合しているように見えますか、それとも何か不足していますか? 私には、Azure Pipelinesソリューションをオンプレミスで、または私の選択したクラウドプロバイダーでホストする方法はないようです。はい、自分のエージェントをホストして作業の大部分を実行できますが、パイプラインロジックの実際の実行はMicrosoftのサーバーで行われます。そして、私は並列の仕事にお金を払わなければなりません。これを、オンプレミス(または選択したクラウドプロバイダー)がホストするJenkinsインスタンスと比較します。この場合、支払いは不要で、パイプラインが実行されていることをサードパーティも認識していません。何か不足していますか? 私の知る限りでは、Azure Pipelinesは自己ホスト型リポジトリをサポートしていないため、コードをGitHubまたはAzure reposに配置します。したがって、プライベートにホストされているGitLabインスタンスがある場合、このパイプラインソリューションを使用することもできませんか? ご意見をお寄せいただきありがとうございます。

4
Jenkinsを使用したマルチ環境展開のベストプラクティス
私には3つの環境があり、それぞれ独自の構成を持つ独自の仮想ネットワーク上にあります。各環境で継続的デプロイメントを行う場合、Jenkinsの3つの個別のインスタンスが必要ですか?マルチ環境アーキテクチャーへの展開をグレードアップするいくつかのベストプラクティスは何ですか?
12 jenkins 

2
Jenkinsのsudoを使用するのは悪いことですか?
Publish Over SSHプラグインを使用して、アプリJenkinsをさまざまな環境にデプロイします。一部のデプロイジョブは、環境の準備や、アプリサーバーシステムサービスの停止や再起動などを行います。これらのコマンドの一部にはが必要ですsudo。 リモートのパブリッシュおよび実行のJenkinsジョブ内でsudoを要求することがセキュリティ上の悪い習慣になる可能性があるかどうか、私は興味があります。ターゲットホストのセキュリティポリシーを変更して、sudoなしで必要な機能を実行できるようにする必要がありますか?
11 jenkins  security 

3
Jenkins:ビルド環境としてDockerを使用する権限の問題
JenkinsをUbuntu 16.04マシンにインストールしました。Jenkins自体はコンテナーでは実行されません。yarn installノードイメージを使用して呼び出すだけです。これが私のJenkinsfileです: pipeline { agent any stages { stage('install node modules...') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } かなり簡単ですよね? jenkinsユーザー/グループは112:116であり、ノードコンテナーのuidは1000であるため、yarnプロセス(ノードユーザー1000として実行される)はのようなことはできませんmkdir /.config。 引数を渡してノードコンテナをスピンアップ-u 1000しようとしましたが、永続ディレクトリを作成しようとしたときに権限の問題にぶつかりました。 どちらかの問題のようですが、どうすれば回避できますか? ジェンキンスのログ: 以下は、ビルドが開始して失敗する場所です。 [Pipeline] sh [Pipeline_Test_Jenkins_test-4JTFYMX7KSJY6ZH44VINNGEB7WH2D2HWYZN5ABF6O32O2HBQJYXQ@2] Running shell script + docker inspect -f . node . …

1
ジェンキンスパイプラインの仕事; slackSendステップの適切な引用
これはおそらく100%のユーザーエラーですが、slackSendステップでチャネル名として変数を使用するパイプラインジョブを取得できません。 これはSlackプラグインとBuild User Varsプラグインの両方を使用します。私はBUILD_USER_FIRST_NAMESlackに戻るチャネルを特定するために使用しようとしています(つまり、ビルドを開始するチャネルがメッセージを取得するチャネルでなければなりません)。 パイプラインジョブでビルドユーザープラグインを使用する方法に関するこの記事の途中まで来ましたが、変数を置き換えると問題が発生します。 ジョブの関連部分は次のようになります。 stage ('message') { wrap([$class: 'BuildUser']) { sh "printf '%s' ${BUILD_USER_FIRST_NAME} > name.txt" } archiveArtifacts artifacts: 'name.txt' name = readFile('name.txt') echo "name is $name" //works fine, I get Alex if ( "$output" != null ) { slackSend (channel: '@$name', color: '#36A64F', message: "Job succeeded") } …

2
Jenkins PipelineでDockerを実行するときの正しい権限設定は何ですか?
新しいjenkinsパイプラインをまとめて、コードへの新しいプルリクエストをテストしようとしています。ubuntu:14.04画像でdockerを使用して、本番環境をシミュレートしています。 以下は最小の動作例です: #jenkinsfile stage('Checkout and provision'){ docker.image('ubuntu:14.04').withRun('-u root'){ checkout scm sh 'chmod -R 770 ./' sh './init-script.sh' } } そして #init-script.sh sudo add-apt-repository ppa:ondrej/php sudo apt-get update -y sudo apt-get dist-upgrade -y sudo apt-get install \ apache2 \ php \ php-mysql \ php-xml \ libapache2-mod-auth-mysql \ libapache2-mod-php \ php5-curl \ …
11 jenkins  docker 

1
job-dslファイルをJenkins 2パイプラインにアップグレードするにはどうすればよいですか?
Jenkins job-dslの大規模なリポジトリをJenkins2パイプラインに移行するための一般的な方法はありますか?同じコードベースから生成されたアーティファクトの比較より少し進んだビルドの動作をテストする方法を探しています。 実際、Ansibleを介して導入された非常に大規模なインフラストラクチャがあり、トポロジ的に本番環境と同等の検証環境を取得しているため、問題はありません。300を超えるプロジェクトリポジトリからビルドするため、自動化できる検証手法にもっと興味があります。数千のジョブがいくつかのJenkinsマスターに分散しています。


1
単一のジョブでJenkinsプラグインを無効にする方法はありますか?
ビルドタイムアウトプラグインを使用して、ジョブがスタックしたときにアラートを出します。実行時間が長いステップが含まれているため、このアラートをトリガーするジョブが1つあります。ビルドタイムアウトプラグインを無効にしたいのですが、そのジョブに対してのみ、無効にする方法はありますか?私はJenkins v2.22を使用しています。 タイムアウト時にジョブが終了しないように組み込みオプションを使用しません。sensuプラグインを使用して、尤度スタック変数の状態を監視します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.