0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Pipelines で object 型のパラメーターを JSON に変換する

Last updated at Posted at 2021-01-06

object 型パラメーターの定義

Azure Pipelines ではテンプレートを使って Object 型のパラメーターを作ることができます (Variable では今のところ文字列しか定義できません)。
したがって、Object を定義するにはテンプレートにパラメーターとして渡すしか方法がありません。
次の例では obj という object 型のパラメーターを定義して、template.yml というテンプレートを実行しています。

実行用 YAML ファイル (ci.yml)

name: convert_to_json
trigger: none

jobs:
  - template: template.yml
    parameters:
      obj:
        name: Alice
        country: Japan
        prefecture: Tokyo
        friends:
          - Bob
          - Carol
          - Dave

function を使って object を JSON に変換する

Azure Pipelines の YAML では Expression という表記方法の中で built-in の function を使うことができます。
JSON への変換は convertToJSON() という function を使って実行します。
function の一覧はこちらにありますが、convertToJSON() という function はありません・・・
次のテンプレートを使って JSON を出力します。

テンプレート YAML ファイル (template.yml)

parameters:
  - name: obj
    type: object

jobs:
  - job: ConvertToJson
    pool:
      vmImage: "windows-latest"
    variables:
      output_path: '$(Build.ArtifactStagingDirectory)\output.json'
    steps:
      - task: PowerShell@2
        inputs:
          targetType: 'inline'
          script: |
            # Print JSON and save as a file
            $str = '${{  convertToJson(parameters.obj) }}'
            Write-Host "$($str)"

実行結果

Starting: PowerShell
==============================================================================
Task         : PowerShell
Description  : Run a PowerShell script on Linux, macOS, or Windows
Version      : 2.179.1
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
==============================================================================
Generating script.
========================== Starting Command Output ===========================
"C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\a\_temp\c3f8672b-faf6-4539-9529-c0ff6834e8fc.ps1'"
{
  "name": "Alice",
  "country": "Japan",
  "prefecture": "Tokyo",
  "friends": [
    "Bob",
    "Carol",
    "Dave"
  ]
}
Finishing: PowerShell

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?