次の方法で共有


Subversion リポジトリをビルドする

Azure DevOps Services

オンプレミスの Subversion サーバーを Azure Pipelines と統合できます。 Subversion サーバーには、Azure Pipelines からアクセスできる必要があります。

注意

YAML パイプラインは Subversion リポジトリでは機能しません。

ホステッド エージェントからサーバーにアクセスできる場合は、ホステッド エージェントを使用して、手動、スケジュール、または CI ビルドを実行できます。 それ以外の場合は、オンプレミス サーバーにアクセスしてコードをフェッチできるセルフホステッド エージェントの設定が必要になります。

Subversion と統合するには、Subversion サービス接続を作成し、これを使用してパイプラインを作成します。 CI トリガーはポーリングを通じて機能します。 つまり、Azure Pipelines では、コードに更新があるかどうかについて Subversion サーバーを定期的にチェックします。 それがある場合、Azure Pipelines では新しい実行を開始します。

Azure Pipelines から Subversion サーバーにアクセスできない場合は、IT 部門と協力して、Azure Pipelines とサーバーの間のネットワーク パスを開きます。 たとえば、Azure Pipelines からのトラフィックのフローを許可するように、ファイアウォール規則に例外を追加できます。 許可する必要がある IP アドレスについては、Azure DevOps の IP に関するセクションを参照してください。 さらに、Azure Pipelines でサーバーの FQDN を IP アドレスに解決できるように、Subversion サーバーのパブリック DNS エントリを用意する必要があります。

Microsoft ホステッド エージェントから到達可能

また、パイプラインの実行に Microsoft ホステッド エージェントとセルフホステッド エージェントのどちらを使用するかについても決定する必要があります。 多くの場合、これは Microsoft ホステッド エージェントがサーバーに到達可能かどうかによって決まります。 それが可能かどうかをチェックするために、Microsoft ホステッド エージェントを使用する単純なパイプラインを作成して、サーバーからソース コードをチェックアウトする手順を必ず追加してください。 これに成功した場合は、Microsoft ホステッド エージェントを引き続き使用できます。

Microsoft ホステッド エージェントから到達不可

前述のセクションで説明した単純なテスト パイプラインが エラーで失敗した場合、Microsoft ホステッド エージェントは Subversion サーバーに到達できない可能性があります。 これはファイアウォールが該当するサーバーからのトラフィックをブロックしていることが原因であると考えられます。 この場合には、次の 2 つのオプションがあります。

  • IT 部門と協力して、Microsoft ホステッド エージェントと Subversion サーバーの間のネットワーク パスを開きます。 Microsoft ホステッド エージェントのネットワークに関するセクションを参照してください。

  • セルフホステッド エージェントまたはスケール セット エージェントを使用するように切り替えます。 こうしたエージェントはネットワーク内に設定できるため、Subversion サーバーにアクセスできるようになります。 そのようなエージェントには、Azure Pipelines への送信接続のみが必要です。 受信接続のためにファイアウォールを開く必要はありません。 サービス接続の作成時に指定したサーバーの名前が、セルフホステッド エージェントから解決可能なことを確認します。

Azure DevOps の IP アドレス

Azure DevOps からのトラフィックが Subversion サーバーに到達できるようにするには、「受信接続」で指定された IP アドレスまたはサービス タグをファイアウォールの許可リストに追加します。 ExpressRoute を使用する場合は、ファイアウォールの許可リストに ExpressRoute の IP 範囲も含めるようにしてください。

よく寄せられる質問

Subversion サーバー統合に関連する問題は、次のカテゴリに分類されます。

  • トリガーの失敗: リポジトリに更新をプッシュしたときに、パイプラインがトリガーされません。
  • チェックアウトの失敗: パイプラインはトリガーされますが、チェックアウト手順で失敗します。

トリガーの失敗

サーバーに変更をプッシュしましたが、パイプラインがトリガーされません。

次の各手順を実行して、失敗するトリガーをトラブルシューティングしてください。

  • Azure Pipelines から Subversion サーバーにアクセスできますか? Azure Pipelines は、変更について定期的に Subversion サーバーをポーリングします。 Subversion サーバーがファイアウォールの内側にあると、このトラフィックはサーバーに到達しない可能性があります。 「Azure DevOps の IP アドレス」を参照して、すべての必要な IP アドレスに例外を認めていることを確認してください。 こうした IP アドレスは、最初に例外ルールを設定した後で変更されている可能性があります。

  • パイプラインが一時停止または無効化されていませんか? パイプライン用のエディターを開いて、[設定] を選択して確認してください。 パイプラインが一時停止または無効化されている場合、トリガーは機能しません。

コードへの更新をプッシュしていませんが、パイプラインはトリガーされたままです。

  • Subversion の継続的インテグレーション トリガーは、ポーリングによって機能します。 各ポーリング間隔の後に、Azure Pipelines は Subversion サーバーに接続して、コードに更新があるかどうかをチェックしようとします。 Azure Pipelines が Subversion サーバーに到達できない場合 (ネットワークの問題が原因と考えられます)、コードは変更されたものと仮定して、新しい実行が開始されます。 場合によっては、Azure Pipelines によって、サーバーに到達できなかったことを示すエラー メッセージを含むダミーのビルドが作成される場合もあります。

チェックアウトの失敗

サーバーの解決ができないというエラーで、チェックアウト手順が失敗します。

Microsoft ホステッド エージェントを使用していますか? その場合、そうしたエージェントは Bitbucket サーバーに到達できない可能性があります。 詳細については、「Microsoft ホステッド エージェントから到達不可」を参照してください。