0

TFS CI ビルド プロセスで、IBM uDeploy コマンド ライン クライアント (udclient) への PowerShell スクリプト呼び出しをしばらく前から行っています。

私のudclient呼び出しは次のようにスクリプト化されています:

udclient.cmd -weburl $uDeployServer -authtoken $authToken "importVersions" $requestJson

... そして、私の JSON ファイル ($requestJson) の内容は次のようになります。

{
  "component": "[uDeploy component name]",
  "properties": {
    "version": "[component version]"
  }
}

これらのリクエスト、およびその後の udclient バージョンのデプロイ リクエストは、最近まで期待どおりに機能していました。しかし、数週間前に、バージョンのインポート リクエストが不思議なことに失敗し始めました。

uDeploy UI の [コンポーネント構成] の [バージョン インポート履歴] タブで、失敗したインポート リクエストを確認できます。

ただし、検査のために出力ログを開くと、空です。エラーログにはこれだけが含まれています:

「バージョンのインポートは次の理由で失敗しました: JSONObject["値"] が見つかりません。」

uDeploy UI からの手動バージョン インポートは、引き続き期待どおりに機能します。

また、CI ビルドでバージョンのインポートを完了するために手動の介入が適用されると、後続のバージョンのデプロイ リクエストは問題なく実行されます

私は Java の専門家ではありませんが、エラーは JSON ファイルに問題があることを示唆しているように思えました。ただし、JSON をテストするには (PS 5 を使用しており、PS 6 までは Test-Json を使用していません)、次の PowerShell スクリプトを実行します。

try {
    $json = Get-Content -Path [component version import].json | ConvertFrom-Json
    Write-Host "JSON is valid."
} catch {
    Write-Host "JSON is dodgy."
}

... 戻り値:

JSON は有効です。

どうしたの?JSONファイルのエンコーディングなどと関係があるのでしょうか?? アイデアと洞察を歓迎します。見てくれてありがとう。

4

1 に答える 1