2017-06-07 4 views
0

私はJenkins(ビルド、デプロイメント)とVSTS(ソースコントロール)との継続的な配信を試みています。 、VSTSとJenkinsによる連続配信

  1. 開発者分岐し、マスタの変更を行い、別の開発者は、いくつかのシステム(ジェンキンスまたはVSTS)を検出するPRを検討し、最終的にマスター
  2. にそれをマージプル要求
  3. を作成します。これは、所望のワークフローですPRは、マスタにマージして...されたことを
    1. は、バックマスターする
    2. はバージョン変更をコミットレポ内のファイルに保存されているバージョン番号をインクリメント
    3. を構築し、私はジェンキンスタスクを習得し、実行するためのマージを検出するために、VSTS内サービスフックを使用していた

を展開。 VSTSは、私が使用することができます3つのフックがあります:コードは

  • プルリクエストを押し完了ビルド
    1. を私はPR番目のオプションのみ起こるという印象の下にあった

    を作成したコミットマージ合併したが、そうではない。ブランチへの追加コミットは、PRに関連付けられている間にフックをトリガーします。これは、不必要な展開の束を引き起こします。

    私はJenkinsにVSTS内の変更を検出させることができたと思いました。 cronのようなスケジュールを取る「Poll SCM」オプションがあります。全く紛らわしいことは、X分ごとに正確に何がポーリングされるのかを設定できるようには見えないということです(どのブランチがレポか)。

    PRがマスターにマージされている場合のみ、ジェンキンスのタスクをトリガーするオプションは何ですか?私はVSTSの "Code push"サービスフックを使用しますが、Jenkinsがバージョンをインクリメントするときにマスターにプッシュするので、無限ループに入ります。

    enter image description here

  • 答えて

    1

    の下にこれらのステップを参照してください。(除外支店フィルタとパスフィルタを設定し

  • をマスター
  • 選択トリガのための新しいビルド定義を作成し、継続的インテグレーションを有効

    1. バージョン番号ファイルを変更する必要があります)
    2. タスクを追加してバージョン番号ファイル(PowerShellなど)を変更します
    3. コマンドラインタスクを追加します(ツール:git;引数:config --global user.email "[email protected]"; (作業ディレクトリ:$(build.sourcesdirectory))
    4. コマンドラインタスクを追加する(ツール:git;引数:config --global user.name "あなたの名前");作業フォルダ:$(build.sourcesdirectory)
    5. 追加コマンドラインタスク(ツール:git;引数:add [変更されたファイル]);作業フォルダ:$(build。gitの;引数:sourcesdirectory))
    6. コマンドラインタスク(ツールを追加-m「更新バージョンを」コミット;作業フォルダ:$(build.sourcesdirectory))
    7. 追加コマンドラインタスク(ツール:gitの;引数:プッシュ原点HEAD:$(Build.SourceBranchName)「;作業フォルダ:$(build.sourcesdirectory))
    8. はジェンキンスジョブ
  • +0

    興味深いをトリガーするJenkins Queue Job taskを追加し、そのジェンキンスタスクをトリガするVSTS」ビルドサービスを使うのか? – Langdon

    +0

    @ Langdonはい、そうです。 –

    +0

    良い見て、おかげで、提案!あなたが言ったようにまったくまっすぐではありませんでした。ビルド・ユーザーがコミットする権限、スクリプトがoauthトークンにアクセスできるようにする権限、ビルドでgitを使用できるようにするために必要な多くのステップがありました。あなたは正しい方向に私を指摘しました! – Langdon

    関連する問題