Helix Swarm - 'swarm.job' の構文エラー

Helix Swarm - 'swarm.job' の構文エラー

Helix Core 2017.1 サーバーで Helix Swarm 2018.2 サーバー用に swarm-triggers を設定しようとしていますが (両方とも docker-compose を使用してオーケストレーションされた別々の docker コンテナー内)、結果をパイプしようとすると上記のエラーが発生しswarm-trigger.pl -oますp4 triggers -i

# both with and without config file -c fails
/root/swarm-trigger.pl -c /root/swarm-trigger.conf -o > /root/generated_triggers.txt
# Tried both with and without the %quote% parts, stripped out using sed.
#sed -i -e 's/%quote//g' -e 's/%%/%/g' /root/generated_triggers.txt         
sed '/^\s*#/d' -i /root/generated_triggers.txt                                                                   
cat /root/generated_triggers.txt | p4 triggers -i 

元のパイプ コマンドも同じエラーで失敗します。

/root/swarm-trigger.pl -c /root/swarm-trigger.conf -o | sed -e 's/%quote//g' -e 's/%%/%/g' | sed '/^\s*#/d' | p4 triggers -i
/root/swarm-trigger.pl -c /root/swarm-trigger.conf -o | sed '/^\s*#/d' | p4 triggers -i

エラーdocker-composeログ:

perforce    | + sed '/^\s*#/d'
perforce    | + /root/swarm-trigger.pl -c /root/swarm-trigger.conf -o
perforce    | + p4 triggers -i
perforce    | Error in triggers specification.
perforce    | Error detected at line 1.
perforce    | Syntax error in 'swarm.job'.
perforce    | /run.sh exited 1

失敗するファイルは次のとおりですp4 triggers -i:

[root@9877302137d8 /]# cat /root/generated_triggers.txt 
swarm.job        form-commit    job    "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t job           -v %formname%"
swarm.user       form-commit    user   "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t user          -v %formname%"
swarm.userdel    form-delete    user   "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t userdel       -v %formname%"
swarm.group      form-commit    group  "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t group         -v %formname%"
swarm.groupdel   form-delete    group  "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t groupdel      -v %formname%"
swarm.changesave form-save      change "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t changesave    -v %formname%"
swarm.shelve     shelve-commit  //...  "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t shelve        -v %change%"
swarm.commit     change-commit  //...  "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t commit        -v %change%"
swarm.shelvedel  shelve-delete  //...  "%quote%/root/swarm-trigger.pl%quote% -c %quote%/root/swarm-trigger.conf%quote% -t shelvedel     -v %change% -w %client% -u %user% -d %quote%%clientcwd%%quote% -a %quote%%argsQuoted%%quote% -s %quote%%serverVersion%%quote%"

これを私たちの実稼働Helix Coreサーバーの結果と比較したところ、私が見つけた唯一の違いは、swarm-trigger.plをデポに入れなかったことです。しかし、あなたの指示では、これは問題ではありません(ステップ6b

答え1

p4 triggers -i問題は、次のように、のみを含む行を、ストリーミングされるコンテンツの先頭に追加しなかったことですTriggers:

/root/swarm-trigger.pl -c /root/swarm-trigger.conf -o | sed '/^\s*#/d' | awk '{print "Triggers:" $0;}' | p4 triggers -i

Perforce トリガーに単純に追加することはできないため、次のようにする必要があります。

p4 triggers -o > tmp
/root/swarm-trigger.pl -c /root/swarm-trigger.conf -o | sed '/^\s*#/d' >> tmp
p4 triggers -i < tmp

関連情報