Azure Devops中的variable group建议或者只能(?)添加string类型的value。基于此我们想在variable group实现array或者hashtable的传递的核心思路就是先定义出合适易转换的字符串,

然后将字符串转为我们想要的array和hashtable。为了测试,我在的variable group中预先添加了arraystring 和 hashstring,一定要注意我设置的方法,value值格式会影响整个过程。

利用rest api 去get一下值,我们可以得到如下:

PS C:\Users\wenbo> $group.variables

arraystring                 hashstring
----------- ----------
@{value=wbubuntu,wbubuntu2} @{value=@{"key"="value";"key2"="value2"}}

我们看下类型:

PS C:\Users\wenbo> $group.variables.arraystring.value.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ---- --------
True True String System.Object PS C:\Users\wenbo> $group.variables.hashstring.value.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object

两个都是string,在做参数传递的时候,我们希望值是array和hashtable

1.转array string,此处的转换方法和你写的value值有关系,自己对应即可

PS C:\Users\wenbo> $array = $group.variables.arraystring.value.Split(",")

PS C:\Users\wenbo> $array
wbubuntu
wbubuntu2 PS C:\Users\wenbo> $array.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array

2.转hashtable

PS C:\Users\wenbo> $hash = Invoke-Expression $group.variables.hashstring.value

PS C:\Users\wenbo> $hash

Name                           Value
---- -----
key value
key2 value2 PS C:\Users\wenbo> $hash.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Hashtable System.Object

Azure DevOps的variable group实现array和hashtable参数的传递的更多相关文章

  1. Azure DevOps 利用rest api设置variable group

    我们在Azure DevOps中设置参数的时候,可以使用build,release各自的variables,但是各自的变量不能共用.此时我们需要使用variable group,它允许跨Build和R ...

  2. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  3. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

  4. [Azure DevOps] 编译时自动修改版本号

    1. 需求 在使用 Pipeline 自动化 CI/CD 流程的过程中,我还还需要自动修改程序集的版本号.这个功能 EdiWang 和LeoLaw 都写文章讲解过做法.不过我的项目基本都是 .Net ...

  5. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

  6. Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

    一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会 ...

  7. Azure Terraform(十一)Azure DevOps Pipeline 内的动态临时变量的使用

    思路浅析 在我们分析的 Azure Terraform 系列文中有介绍到关于 Terraform 的状态文件远程存储的问题,我们在  Azure DevOps Pipeline 的 Task Job ...

  8. Azure Devops/Tfs 编译的时候自动修改版本号

    看到阿迪王那边出品了一个基于Azure Devops自增版本号  链接 http://edi.wang/post/2019/3/1/incremental-build-number-for-net-c ...

  9. 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化

    介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...

随机推荐

  1. mybatis-generator数据库注释实体类生成以及generatorConfig文件配置

    项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人 ...

  2. keil mdk 菜单 “project” 崩溃问题解决

    今天发现我的 Keil MDK5.28z win10系统上面,点击 Project 菜单立即崩溃.网上找到了解决方法 简单粗暴的处理方法:重装keil ,但是依然点击 project 崩溃. 通过搜索 ...

  3. 14 Vue列表渲染

    列表渲染 用 v-for 把一个数组对应为一组元素(for循环) 我们可以用 v-for 指令基于一个数组来渲染一个列表. v-for 指令需要使用 item in items 形式的特殊语法, 其中 ...

  4. SpringMVC数据格式化

    SpringMVC数据格式化 1. 使用Formatter格式化数据 Converter可以将一种类型转换成另一种类型,是任意Object之间的类型转换. Formatter则只能进行String与任 ...

  5. TDOA 之 基站接收数据

    基站主要 接收同步节点发来的同步信号,代码里定义为S信息. 以及标签节点发来的定位信号,代码中定义为T信号. 代码中使用中断以及帧过滤功能,对模块只接收自己关心设定好的信息,通过中断告知上层,而不是长 ...

  6. LeetCode 269. Alien Dictionary

    原题链接在这里:https://leetcode.com/problems/alien-dictionary/ 题目: There is a new alien language which uses ...

  7. 自定义简单算法MVC框架

    什么是MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,   它是一种软件设计典范,用一种业务逻辑.数据 ...

  8. HTML 005 标题

    <h1>这是一个标题.</h1> <h2>这是一个标题.</h2> <h3>这是一个标题.</h3> HTML 标题 在 HTM ...

  9. 发布一个npm package

    1. 创建一个package.json文件 发布到npm registry的包必须包含一个packge.json文件. 1. 必需name字段 要求: 1. 只能是一个单词,但是可以包含-或_ 2. ...

  10. Greenplum 常用数据字典

    一.数据库集群信息 1.gp_segment_configration 2.pg_filespace_entry 这两个表是在pg_global表空间下面的,是全局表. 用来查看集群segment信息 ...