Swarmのアップグレード

このセクションでは、Swarmパッケージ、OVA、tarballのインストール環境を新しいリリースにアップグレードする方法について説明します。

ヒント

Swarmがまだ稼働していない場合は、ここで説明する手順を実行する必要はありません。代わりに、「Swarmのインストール手順」を参照してください。

Swarmのアップグレードプロセス:

Swarmパッケージのインストール環境のアップグレード

重要
  • Swarmのランタイム依存関係は、リリースによって異なります。アップグレードを開始する前に、現在のシステムがSwarmのランタイム依存関係を満たしているかどうかを確認する必要があります。詳細については、「ランタイム依存関係」を参照してください。
  • Swarmをアップグレードする前に、PHPの要件を確認してください。詳細については、「PHP」」を参照してください。

  • Swarmをアップグレードする前に、Helixサーバの要件を確認してください。詳細については、「Helix Coreサーバの要件」を参照してください。
  • バージョン2020.1以降のHelixサーバでは、Swarmストリーム仕様ファイルの編集と表示を行うための権限が変更されました。SwarmユーザがSwarmでストリーム仕様ファイルの表示や編集を行うには、ディポ全体(//...)に対するadmin 権限が必要です。
注意
  • バージョン2017.2以前のSwarmをアップグレードしたら、Swarmのインデックスをアップグレードする必要があります。これが、アップグレードの最後の手順になります。この手順を行うことにより、[ダッシュボード]ページと[レビューリスト]ページで、レビューに対するアクティビティの履歴が正しい順序で表示されるようになります。

  • バージョン2020.2以前のSwarmをアップグレードする際に、スラッシュ(/)が含まれているuseridsが存在する場合は、/etc/apache2/sites-enabled/perforce-swarm-site.confファイルのVirtualHostブロックに「AllowEncodedSlashes NoDecode」を追加します。VirtualHostブロックの詳細については、「Apache構成」を参照してください。

Swarmのアップグレードを開始する前に

Swarmワークフロー機能Swarm 2018.2で導入されました。このバージョンでは、ワークフロー機能はデフォルトで無効になっていましたが、バージョン2019.2以降のSwarmでは、デフォルトで有効になっています。

Swarmのワークフロー機能ではなく、strictトリガとenforceトリガを使用してコミットを制御している場合は、以下の点に注意してください。

  • Swarmのワークフロー機能を使用する場合: strictトリガとenforceトリガをコメント化して、新しいワークフロートリガを使用する必要があります。
  • 注意

    既知の制約事項

    ワークフロートリガは、Swarm 2018.1以前のバージョンで使用可能な以下のトリガ機能をサポートしていません。

    • EXEMPT_FILE_COUNT
    • EXEMPT_EXTENSIONS

    引き続きこれらのトリガ機能を使用する場合は、以下の説明のように、ワークフロー機能を無効にした状態で、現在のenforceトリガとstrictトリガをそのまま使用する必要があります。

  • strictトリガ enforceトリガを引き続き使用する場合: 現在のenforceトリガとstrictトリガをそのまま使用し、ワークフロー機能を無効にしてください。ただし、これらのトリガは、今後のリリースでは使用できなくなります。

    ヒント

    Swarmconfig.phpファイルでワークフロー機能を無効にした場合、ワークフローがSwarmで処理されなくなりますが、Helixサーバがワークフロートリガスクリプトを実行するたびに、わずかなオーバーヘッドが発生します。次のワークフロートリガ行をコメント化すると、このオーバーヘッドをなくすことができます: swarm.enforce change-submitswarm.strict change-contentswarm.shelvesub shelve-submit

ワークフロー機能を使用するかどうかにより、使用する必要があるトリガが異なるため、アップグレードを開始する前に、ワークフロー機能を使用するかどうかを決めてください。トリガの要件について詳しくは、Swarmのアップグレードの「トリガの更新」セクションを参照してください。

Swarmのアップグレード

重要

Swarm 2015.2 リリースでは、パッケージ名が変更されています。ここで説明する手順を実行すると、Swarmのパッケージが最新バージョンにアップグレードされます。

ヒント

Swarm 2021.1以降、Swarmパッケージをアップグレードすると、Swarmログのローテーションを管理するためのログローテーション機能がインストールされるようになりました。パッケージのアップグレード中にSwarmの既存のカスタムログローテーション設定ファイルが見つかった場合は、新しいログローテーション設定を無効にする方法が記載された通知が表示されます。

ログローテーション設定の詳細については、「ログローテーション機能」を参照してください。

以下で説明するプロセスは、Swarmのダウンタイムを最小限に抑えることを目的としていますが、短時間のダウンタイムが発生するのを避けることはできません。ただし、Helixサーバでダウンタイムが発生することはありません。アップグレードが正常に完了すると、すべてのSwarmユーザがシステムからログアウトされます。

実稼働環境でSwarmを使用している場合は、最初にテスト環境や開発環境などでこのアップグレードプロセスのテストを行うことをお勧めします。

  1. 以下に示す各OSディストリビューションで操作を実行します。
  2. 通常、いくつかのSwarm用メジャーアップデートが毎年リリースされますが、そのほかにも、パッチによるアップデートがリリースされる場合があります。Swarmのアップデートがリリースされているかどうかを確認するには、以下のOSディストリビューションでコマンドを実行します。
ヒント

Swarmは、Redisサーバを使用してキャッシュを管理します。アップグレードを実行すると、RedisサーバがSwarmマシンにインストールされて設定されます。自分専用のRedisサーバを使用する方法については、「自分専用のRedisサーバを使用する」を参照してください。

トリガの更新

  1. 新しいSwarmトリガスクリプトをHelix Coreサーバマシンにコピーします。このトリガスクリプトは、SWARM_ROOT/p4-bin/scripts/swarm-trigger.plです。このスクリプトを使用するには、Helixサーバマシンにバージョン5.08以降のPerlをインストールする必要があります(最新バージョンをインストールすることをお勧めします)。SwarmでSSLを使用している場合は、PerlモジュールのIO::Socket::SSLも必要になります。

    警告

    この時点で既存のトリガスクリプトを上書きしないでください。スクリプトに新しい名前を付けます(swarm-trigger-new.plなど)。

  2. Helixサーバマシン上の同じディレクトリ内にswarm-trigger.confというファイルを作成して、Swarmトリガスクリプトを設定します。このスクリプトには以下を指定する必要があります。

    注意

    swarm-trigger.confファイルがすでに存在する場合は、追加の設定は不要です。

    # SWARM_HOST (required)
    # Hostname of your Swarm instance, with leading "http://" or "https://".
    SWARM_HOST="http://my-swarm-host"
    
    # SWARM_TOKEN (required)
    # The token used when talking to Swarm to offer some security. To obtain the
    # value, log in to Swarm as a super user and select 'About Swarm' to see the
    # token value.
    SWARM_TOKEN="MY-UUID-STYLE-TOKEN"
    
    # ADMIN_USER (optional) ワークフロー機能が有効になっている場合は使用しないでください(ワークフロー機能はデフォルトで有効になっています)
    # For enforcing reviewed changes, optionally specify the normal Perforce user
    # with admin privileges (to read keys); if not set, will use whatever Perforce
    # user is set in environment.
    ADMIN_USER=
    
    # ADMIN_TICKET_FILE (optional) ワークフロー機能が有効になっている場合は使用しないでください(ワークフロー機能はデフォルトで有効になっています)
    # For enforcing reviewed changes, optionally specify the location of the
    # p4tickets file if different from the default ($HOME/.p4tickets).
    # Ensure this user is a member of a group with an 'unlimited' or very long
    # timeout; then, manually login as this user from the Perforce server machine to
    # set the ticket.
    ADMIN_TICKET_FILE=				
    										
    # VERIFY_SSL (optional)
    # If HTTPS is being used on the Swarm web server, then this controls whether
    # the SSL certificate is validated or not. By default this is set to 1, which
    # means any SSL certificates must be valid. If the web server is using a self
    # signed certificate, then this must be set to 0.
    # set the ticket.
    VERIFY_SSL=1

    必須のSWARM_HOST変数とSWARM_TOKEN変数に、以前のSwarmトリガスクリプト(通常はswarm-trigger.pl)の設定を入力します。

    ヒント

    ADMIN_USER変数とADMIN_TICKET変数は、バージョン2019.1以前のSwarm'enforce triggers'で使用されていました。明示的にワークフローを無効にして、非推奨の'enforce triggers'を使用しない限り、これらの変数は削除してかまいません。

    注意

    バージョン2015.4以前のSwarmの場合: 以前のSwarmでは、Swarmのトリガスクリプトファイルをシェルスクリプトとして使用することができました (通常はswarm-trigger.sh)。

    Swarmでは、Perlトリガスクリプトファイル(通常はswarm-trigger.pl)を使用する必要があります。

  3. Linuxの場合: 以下のコマンドを実行して、スクリプトが実行可能かどうかを確認します。

    $ sudo chmod +x swarm-trigger-new.pl

  4. 新しいトリガスクリプトの名前を次のように変更します。

    Linuxの場合:

    $ mv swarm-trigger-new.pl swarm-trigger.pl

    Windowsの場合:

    C:\> ren swarm-trigger-new.pl swarm-trigger.pl

  5. Helixサーバのトリガを更新します。

    警告
    • swarm.shelvedel shelve-delete」というトリガ行は、バージョン2018.1以降のSwarmで追加され、バージョン2020.1で更新された行です。

      • バージョン2017.4以前のSwarmをアップグレードする場合:swarm.shelvedel shelve-delete」というトリガ行をHelixサーバのトリガテーブルに追加します(まだ追加されていない場合)。詳しくは、「Helixサーバのトリガテーブルを更新し、トリガスクリプトを実行します。」を参照してください。
      • バージョン2018.xまたはバージョン2019.xのSwarmをアップグレードする場合: Helixサーバのトリガテーブル内の「swarm.shelvedel shelve-delete」というトリガ行を、アップグレード先バージョンのSwarmで指定されているトリガ行に置き換えます。
    • ワークフロー機能:

      バージョン2019.2以降のSwarmでは、ワークフロー機能がデフォルトで有効になっています。ワークフロー機能を有効にするためのトリガ行は、ワークフロー機能を無効にするためのトリガ行とは異なります。

    1. Swarmトリガスクリプトを実行して、Perforceトリガテーブルに含める必要があるトリガ行をキャプチャします(WindowsとLinuxの場合はCtrl+Cキーを、macOSの場合はCommand+Cキーを使用します)。

      Linuxの場合:

      $ ./swarm-trigger.pl -o

      Windowsの場合:

      C:\> path/to/perl swarm-trigger.pl -o

    2. super 権限を持つPerforceユーザとしてp4 triggersコマンドを実行し、前述の手順でキャプチャしたすべてのswarm.*行を置き換えます(WindowsとLinuxの場合はCtrl+Vキーを、macOSの場合はCommand+Vキーを使用します)。これによって、Perforceトリガテーブルは更新されます。
    重要

    各種のトリガオプションを適用するなどの目的でSwarmのトリガ行がカスタマイズされている場合は、更新後のトリガ行でも同じカスタマイズ作業を繰り返してください。

アップグレードの確認

ヒント

Swarmを起動すると、Redisキャッシュの確認処理が実行されます。この確認処理の実行中は、Swarmにログインすることはできません。Redisキャッシュの確認処理にかかる時間は、Swarm上のユーザ数、グループ数、プロジェクト数によって異なります。メモリキャッシュを永続化すると、Swarmが起動するまでの時間を短縮することができます。メモリキャッシュを永続化するには、バックグラウンドでの保存機能を無効にして追加保存機能を有効にします(これらの設定は、redis-server.confファイルで行います)。詳しくは、「Redisサーバ構成ファイル」を参照してください。

アップグレード後のSwarmインスタンスが正しく稼働するかどうかを確認するには、以下の手順を実行します。

  1. 以下のチェンジリストを新しく作成します。
    1. 変更されたファイルが1つ以上含まれているチェンジリスト
    2. チェンジリストの説明に#reviewキーワードが含まれているチェンジリスト
  2. 作成したチェンジリストをP4Vで右クリックし、[ファイルを保留...]をクリックします。
  3. 重要

    [新しいSwarmレビューを要求...]を選択しないでください。これを選択するとAPIが使用されるため、Swarmトリガのテストが完全には実行されません。

  4. チェンジリストに対して新しいSwarmレビューが作成されたことを確認します。
    • Swarmレビューが作成されている場合は、Swarmトリガが機能します。
    • Swarmレビューが作成されていない場合は、以下の説明を参照してください。
注意

アップグレード環境の確認時に新しいSwarmレビューが作成されていない場合は、一部のSwarmトリガがHelixサーバにインストールされていない可能性があります。新しいトリガが定期的にSwarmに追加されるため、アップグレードを行う場合はこれらのトリガをインストールする必要があります。詳しくは、上記の「トリガの更新」セクションを参照してください。HelixサーバSwarmトリガを設定する方法については、「Swarm用のHelix Coreサーバの構成」を参照してください。

Swarmインデックスのアップグレード

バージョン2017.2以前のSwarmをアップグレードする場合は、インデックスをアップグレードする必要があります。これにより、[ダッシュボード]ページと[レビューリスト]ページで、レビューに対するアクティビティの履歴が正しい順序で表示されるようになります。

注意

バージョン2017.3以降のSwarmをアップグレードする場合は、インデックスをアップグレードする必要はありません。

インデックスのアップグレードプロセスは、Swarmシステムの仕様に合わせて設定することができます。詳細については、「インデックスのアップグレード」を参照してください。

以下のURLにアクセスし、admin 権限を持つユーザとしてアップグレードを実行してください。

http://SWARM-HOST/upgrade
注意

Swarmのアップグレード後に初めてSwarmの特定のページにアクセスすると、ブラウザのハードリフレッシュを実行するためのメッセージが表示される場合があります。このメッセージが表示されるのは、一部のSwarmページのUIとコンテンツが更新されているためです。この場合、ページキャッシュの情報が古くなっているため、ブラウザをハードリフレッシュしてアップグレード後のページを読み込む必要があります。例えば、Windows/Linux上でChromeを使用している場合は、CTRL + F5キーを押し、MacOSでChromeを使用している場合は、Command + Shift + Rキーを押します。

操作はこれで完了です。

Swarmのtarballインストール環境のアップグレード

警告
  • Swarmのランタイム依存関係は、リリースによって異なります。アップグレードを開始する前に、現在のシステムがSwarmのランタイム依存関係を満たしているかどうかを確認する必要があります。詳細については、「ランタイム依存関係」を参照してください。
  • 使用しているP4PHP閉じた Helix APIに対するPHPインタフェース。Helixサーバマシンと連携するPHPコードを記述することができます。を、新しいリリースのSwarmに付属しているP4PHPバージョンにアップグレードする必要があります。
    • 推奨事項に従って、Swarmに付属しているP4PHPを使用するようにPHPがすでに設定されている場合は、このアップグレードが自動的に実行されます。
    • その他の方法を使用して手動でP4PHPをインストールした場合は、以下のアップグレード手順を実行する前に、最新のSwarm tarballに含まれているP4PHPのバージョンを使用してSwarmを設定します。詳細については、「PHP構成」を参照してください。

    Swarmのパッケージ、OVA、tarballを使用したインストール:SwarmがサポートするPHP 7の各バージョン用として、2つのバージョンのP4PHPが用意されています。これらはp4-bin/bin.linux26x86_64ディレクトリにあります。

    • perforce-php7x.soはSSL 1.0.2を使用するシステムに対応しています。
    • perforce-php7x-ssl1.1.1.soは、SSL 1.1.1を使用するシステムに対応しています(デフォルト設定の場合、Ubuntu 18.04とUbuntu 20.04ではSSL 1.1.1が使用されます)。

    x」は、PHP 7のバージョンです。

    perforce.iniファイルがP4PHPの正しいバージョンを指しておらず、SSLが有効になったHelixサーバに接続している場合、以下のような動作になります。

    • Swarm Webページが読み込まれず、Connection Resetエラーが表示される。
    • Apacheのエラーログに、「undefined symbol:SSLeay」というメッセージが記録される場合がある。
  • Swarmをアップグレードする前に、PHPの要件を確認してください。詳細については、「PHP」」を参照してください。

  • Swarmをアップグレードする前に、Helixサーバの要件を確認してください。詳細については、「Helix Coreサーバの要件」を参照してください。
  • バージョン2020.1以降のHelixサーバでは、Swarmストリーム仕様ファイルの編集と表示を行うための権限が変更されました。SwarmユーザがSwarmでストリーム仕様ファイルの表示や編集を行うには、ディポ全体(//...)に対するadmin 権限が必要です。
注意

OVAのアップグレードプロセス:

注意
  • バージョン2017.2以前のSwarmをアップグレードしたら、Swarmのインデックスをアップグレードする必要があります。これが、アップグレードの最後の手順になります。この手順を行うことにより、[ダッシュボード]ページと[レビューリスト]ページで、レビューに対するアクティビティの履歴が正しい順序で表示されるようになります。

  • バージョン2020.2以前のSwarmをアップグレードする際に、スラッシュ(/)が含まれているuseridsが存在する場合は、/etc/apache2/sites-enabled/perforce-swarm-site.confファイルのVirtualHostブロックに「AllowEncodedSlashes NoDecode」を追加します。VirtualHostブロックの詳細については、「Apache構成」を参照してください。

Swarmのアップグレードを開始する前に

Swarmワークフロー機能Swarm 2018.2で導入されました。このバージョンでは、ワークフロー機能はデフォルトで無効になっていましたが、バージョン2019.2以降のSwarmでは、デフォルトで有効になっています。

Swarmのワークフロー機能ではなく、strictトリガとenforceトリガを使用してコミットを制御している場合は、以下の点に注意してください。

  • Swarmのワークフロー機能を使用する場合: strictトリガとenforceトリガをコメント化して、新しいワークフロートリガを使用する必要があります。
  • 注意

    既知の制約事項

    ワークフロートリガは、Swarm 2018.1以前のバージョンで使用可能な以下のトリガ機能をサポートしていません。

    • EXEMPT_FILE_COUNT
    • EXEMPT_EXTENSIONS

    引き続きこれらのトリガ機能を使用する場合は、以下の説明のように、ワークフロー機能を無効にした状態で、現在のenforceトリガとstrictトリガをそのまま使用する必要があります。

  • strictトリガ enforceトリガを引き続き使用する場合: 現在のenforceトリガとstrictトリガをそのまま使用し、ワークフロー機能を無効にしてください。ただし、これらのトリガは、今後のリリースでは使用できなくなります。

    ヒント

    Swarmconfig.phpファイルでワークフロー機能を無効にした場合、ワークフローがSwarmで処理されなくなりますが、Helixサーバがワークフロートリガスクリプトを実行するたびに、わずかなオーバーヘッドが発生します。次のワークフロートリガ行をコメント化すると、このオーバーヘッドをなくすことができます: swarm.enforce change-submitswarm.strict change-contentswarm.shelvesub shelve-submit

ワークフロー機能を使用するかどうかにより、使用する必要があるトリガが異なるため、アップグレードを開始する前に、ワークフロー機能を使用するかどうかを決めてください。トリガの要件について詳しくは、Swarmのアップグレードの「トリガの更新」セクションを参照してください。

Swarmのアップグレード

以下で説明するプロセスは、Swarmのダウンタイムを最小限に抑えることを目的としていますが、短時間のダウンタイムが発生するのを避けることはできません。ただし、Helixサーバでダウンタイムが発生することはありません。アップグレードが正常に完了すると、すべてのSwarmユーザがシステムからログアウトされます。

実稼働環境でSwarmを使用している場合は、最初にテスト環境や開発環境などでこのアップグレードプロセスのテストを行うことをお勧めします。

CentOS/RHEL: PHP 7.xとApache 2.4のインストール

CentOSとRHELにはデフォルトでPHP 7.xとApache 2.4がインストールされていないため、Swarmをアップグレードする前にシステムをアップグレードする必要があります。このプロセスを実行する必要があるのは、初めてPHP 7.xにアップグレードする場合だけです。

Swarmマシン上でRedisの設定を行う

アップグレードするSwarmのバージョンに応じて、以下のいずれかの手順を実行してください。

これで、Swarmマシンに対してSwarm Redisサービスが設定されました。次に、Swarmのアップグレードを行います。詳細については、「のアップグレードSwarm」を参照してください。

のアップグレードSwarm

このセクションでは、付属のアーカイブファイルを使用してSwarmをアップグレードする手順について説明します。SWARM_ROOTは、Swarmの現在のインストール場所を表しています。

ヒント

OVAのインストール環境の場合は、SWARM_ROOT/opt/perforce/swarmになります。

  1. 新しいTARファイルをhttps://www.perforce.com/downloads/helix-swarmからダウンロードします。

  2. 以下のコマンドを実行して、新しいswarm.tgzを展開します。

    $ tar -zxf swarm.tgz

    swarm.tgzの内容が、swarm-versionという名前の最上位フォルダに展開されます。versionは、ダウンロードされたバージョンです。このディレクトリは、下記の例ではSWARM_NEWに置き換えられています。

  3. SWARM_NEWを、SWARM_ROOTのピアになるように移動します。

    $ mv SWARM_NEW SWARM_ROOT/../
  4. SWARM_ROOT/data/config.phpファイルをSWARM_ROOTからSWARM_NEWへコピーします。

    $ cp -p SWARM_ROOT/data/config.php SWARM_NEW/data/
  5. キュートークンディレクトリを作成します。

    $  mkdir SWARM_NEW/data/queue
  6. 既存のトリガトークンをコピーします。

     $ sudo cp -pR SWARM_ROOT/data/queue/tokens SWARM_NEW/data/queue/
  7. 新しいSwarmのデータディレクトリに正しい所有権を割り当てます。

    $ sudo chown -R www-data SWARM_NEW/data
    注意

    上記のwww-dataユーザはWebサーバユーザ名の一例です。この名前はディストリビューションやカスタマイズに応じて異なります。例えば、Red Hat/Fedora/CentOSのユーザは一般的にapache、Debian/Ubuntuのユーザはwww-data、SuSEのユーザはwwwrun、macOSのユーザは_wwwです。

トリガの更新

  1. 新しいSwarmトリガスクリプトをHelix Coreサーバマシンにコピーします。このトリガスクリプトは、SWARM_ROOT/p4-bin/scripts/swarm-trigger.plです。このスクリプトを使用するには、Helixサーバマシンにバージョン5.08以降のPerlをインストールする必要があります(最新バージョンをインストールすることをお勧めします)。SwarmでSSLを使用している場合は、PerlモジュールのIO::Socket::SSLも必要になります。

    警告

    この時点で既存のトリガスクリプトを上書きしないでください。スクリプトに新しい名前を付けます(swarm-trigger-new.plなど)。

  2. Helixサーバマシン上の同じディレクトリ内にswarm-trigger.confというファイルを作成して、Swarmトリガスクリプトを設定します。このスクリプトには以下を指定する必要があります。

    注意

    swarm-trigger.confファイルがすでに存在する場合は、追加の設定は不要です。

    # SWARM_HOST (required)
    # Hostname of your Swarm instance, with leading "http://" or "https://".
    SWARM_HOST="http://my-swarm-host"
    
    # SWARM_TOKEN (required)
    # The token used when talking to Swarm to offer some security. To obtain the
    # value, log in to Swarm as a super user and select 'About Swarm' to see the
    # token value.
    SWARM_TOKEN="MY-UUID-STYLE-TOKEN"
    
    # ADMIN_USER (optional) ワークフロー機能が有効になっている場合は使用しないでください(ワークフロー機能はデフォルトで有効になっています)
    # For enforcing reviewed changes, optionally specify the normal Perforce user
    # with admin privileges (to read keys); if not set, will use whatever Perforce
    # user is set in environment.
    ADMIN_USER=
    
    # ADMIN_TICKET_FILE (optional) ワークフロー機能が有効になっている場合は使用しないでください(ワークフロー機能はデフォルトで有効になっています)
    # For enforcing reviewed changes, optionally specify the location of the
    # p4tickets file if different from the default ($HOME/.p4tickets).
    # Ensure this user is a member of a group with an 'unlimited' or very long
    # timeout; then, manually login as this user from the Perforce server machine to
    # set the ticket.
    ADMIN_TICKET_FILE=				
    										
    # VERIFY_SSL (optional)
    # If HTTPS is being used on the Swarm web server, then this controls whether
    # the SSL certificate is validated or not. By default this is set to 1, which
    # means any SSL certificates must be valid. If the web server is using a self
    # signed certificate, then this must be set to 0.
    # set the ticket.
    VERIFY_SSL=1

    必須のSWARM_HOST変数とSWARM_TOKEN変数に、以前のSwarmトリガスクリプト(通常はswarm-trigger.pl)の設定を入力します。

    ヒント

    ADMIN_USER変数とADMIN_TICKET変数は、バージョン2019.1以前のSwarm'enforce triggers'で使用されていました。明示的にワークフローを無効にして、非推奨の'enforce triggers'を使用しない限り、これらの変数は削除してかまいません。

    注意

    バージョン2015.4以前のSwarmの場合: 以前のSwarmでは、Swarmのトリガスクリプトファイルをシェルスクリプトとして使用することができました (通常はswarm-trigger.sh)。

    Swarmでは、Perlトリガスクリプトファイル(通常はswarm-trigger.pl)を使用する必要があります。

  3. Linuxの場合: 以下のコマンドを実行して、スクリプトが実行可能かどうかを確認します。

    $ sudo chmod +x swarm-trigger-new.pl

  4. 新しいトリガスクリプトの名前を次のように変更します。

    Linuxの場合:

    $ mv swarm-trigger-new.pl swarm-trigger.pl

    Windowsの場合:

    C:\> ren swarm-trigger-new.pl swarm-trigger.pl

  5. Helixサーバのトリガを更新します。

    警告
    • swarm.shelvedel shelve-delete」というトリガ行は、バージョン2018.1以降のSwarmで追加され、バージョン2020.1で更新された行です。

      • バージョン2017.4以前のSwarmをアップグレードする場合:swarm.shelvedel shelve-delete」というトリガ行をHelixサーバのトリガテーブルに追加します(まだ追加されていない場合)。詳しくは、「Helixサーバのトリガテーブルを更新し、トリガスクリプトを実行します。」を参照してください。
      • バージョン2018.xまたはバージョン2019.xのSwarmをアップグレードする場合: Helixサーバのトリガテーブル内の「swarm.shelvedel shelve-delete」というトリガ行を、アップグレード先バージョンのSwarmで指定されているトリガ行に置き換えます。
    • ワークフロー機能:

      バージョン2019.2以降のSwarmでは、ワークフロー機能がデフォルトで有効になっています。ワークフロー機能を有効にするためのトリガ行は、ワークフロー機能を無効にするためのトリガ行とは異なります。

    1. Swarmトリガスクリプトを実行して、Perforceトリガテーブルに含める必要があるトリガ行をキャプチャします(WindowsとLinuxの場合はCtrl+Cキーを、macOSの場合はCommand+Cキーを使用します)。

      Linuxの場合:

      $ ./swarm-trigger.pl -o

      Windowsの場合:

      C:\> path/to/perl swarm-trigger.pl -o

    2. super 権限を持つPerforceユーザとしてp4 triggersコマンドを実行し、前述の手順でキャプチャしたすべてのswarm.*行を置き換えます(WindowsとLinuxの場合はCtrl+Vキーを、macOSの場合はCommand+Vキーを使用します)。これによって、Perforceトリガテーブルは更新されます。
    重要

    各種のトリガオプションを適用するなどの目的でSwarmのトリガ行がカスタマイズされている場合は、更新後のトリガ行でも同じカスタマイズ作業を繰り返してください。

古いSwarmインスタンスを新しいSwarmインスタンスで置き換える

以下のコマンドを実行して、古いSwarmを新しいSwarmに置き換えます。この手順ではダウンタイムが生じます。

$ sudo apache2ctl stop; mv SWARM_ROOT SWARM.old; mv SWARM_NEW SWARM_ROOT; sudo apache2ctl start

注意

Swarm起動時に以下のエラーメッセージが表示される場合は、Swarmが使用しているP4PHPのバージョンが正しくありません。Swarm tarballには最新のバージョンのP4PHPが含まれていますが、SwarmがそのバージョンのP4PHPを使用するように設定する必要があります。P4PHPの新しいバージョンを使用するようSwarmを設定する手順については、「PHP構成」を参照してください。

P4PHPバージョンのエラーメッセージの画像

Swarm構成キャッシュの削除

Swarm構成キャッシュを削除すると、アップグレード後のSwarmで、新しいモジュールと更新されたモジュールが強制的に使用されるようになります。Swarm構成キャッシュを削除するには、admin ユーザとして、以下のcurl要求を実行します。

curl -u "username:password" -X DELETE "https://myswarm.url/api/v10/cache/config/"

構成キャッシュの詳しい削除方法については、「Swarm構成キャッシュファイルの削除(v9以降)」を参照してください。

アップグレードの確認

ヒント

Swarmを起動すると、Redisキャッシュの確認処理が実行されます。この確認処理の実行中は、Swarmにログインすることはできません。Redisキャッシュの確認処理にかかる時間は、Swarm上のユーザ数、グループ数、プロジェクト数によって異なります。メモリキャッシュを永続化すると、Swarmが起動するまでの時間を短縮することができます。メモリキャッシュを永続化するには、バックグラウンドでの保存機能を無効にして追加保存機能を有効にします(これらの設定は、redis-server.confファイルで行います)。詳しくは、「Redisサーバ構成ファイル」を参照してください。

新しいSwarmインスタンスが正しく稼働するかどうかを確認するには、以下の手順を実行します。

  1. 以下のチェンジリストを新しく作成します。
    1. 変更されたファイルが1つ以上含まれているチェンジリスト
    2. チェンジリストの説明に#reviewキーワードが含まれているチェンジリスト
  2. 作成したチェンジリストをP4Vで右クリックし、[ファイルを保留...]をクリックします。
  3. 重要

    [新しいSwarmレビューを要求...]を選択しないでください。これを選択するとAPIが使用されるため、Swarmトリガのテストが完全には実行されません。

  4. チェンジリストに対して新しいSwarmレビューが作成されたことを確認します。
    • Swarmレビューが作成されている場合は、Swarmトリガが機能します。
    • Swarmレビューが作成されていない場合は、以下の説明を参照してください。
注意

アップグレード環境の確認時に新しいSwarmレビューが作成されていない場合は、一部のSwarmトリガがHelixサーバにインストールされていない可能性があります。新しいトリガが定期的にSwarmに追加されるため、アップグレードを行う場合はこれらのトリガをインストールする必要があります。詳しくは、上記の「トリガの更新」セクションを参照してください。HelixサーバSwarmトリガを設定する方法については、「Swarm用のHelix Coreサーバの構成」を参照してください。

Swarmインデックスのアップグレード

バージョン2017.2以前のSwarmをアップグレードする場合は、インデックスをアップグレードする必要があります。これにより、[ダッシュボード]ページと[レビューリスト]ページで、レビューに対するアクティビティの履歴が正しい順序で表示されるようになります。

注意

バージョン2017.3以降のSwarmをアップグレードする場合は、インデックスをアップグレードする必要はありません。

インデックスのアップグレードプロセスは、Swarmシステムの仕様に合わせて設定することができます。詳細については、「インデックスのアップグレード」を参照してください。

以下のURLにアクセスし、admin 権限を持つユーザとしてアップグレードを実行してください。

http://SWARM-HOST/upgrade
注意

Swarmのアップグレード後に初めてSwarmの特定のページにアクセスすると、ブラウザのハードリフレッシュを実行するためのメッセージが表示される場合があります。このメッセージが表示されるのは、一部のSwarmページのUIとコンテンツが更新されているためです。この場合、ページキャッシュの情報が古くなっているため、ブラウザをハードリフレッシュしてアップグレード後のページを読み込む必要があります。例えば、Windows/Linux上でChromeを使用している場合は、CTRL + F5キーを押し、MacOSでChromeを使用している場合は、Command + Shift + Rキーを押します。

操作はこれで完了です。