在Azure DevOps Server (TFS 2019) 流水线传递参数

为本地Azure DevOps Server构建AI助手:MCP协议与48个工具实战 在软件工程领域,持续集成与交付(CI/CD)和项目管理是提升团队协作效率的核心。其原理在于通过自动化工具链,将代码提交、构建、测试和部署等环节串联,实现快速、可靠的软件交付。MCP(Model Context Protocol)作为一种新兴的协议,其技术价值在于为AI助手提供了一个标准化的接口,使其能够安全、统一地访问和操作各类开发工具与数据,从而打破AI与本地开发环境之间的壁垒。这一设计特别适用于有严格数据隐私和合规要求的企业内网场景。本文聚焦于如何利用MCP协议,为本地部署的Azure DevOps S 阅读详情

变量概述

在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散、各自独立的任务之间相关影响并共享数据。在流水线中使用变量,可以在各任务之间相互调用关键性的数据。顾名思义,变量是一个可以在流水线中变化值。在CI/CD的执行流水线中,我们都需要使用到各种用途的字符、数字,对象这些字符、数据的定义,我们可以采用变量的方式实现,而不需要在代码中硬编码。系统在运行流水线的过程中,将这些定义的变量自动替换为我需要的值。例如在线部署过程中,我们将用户名和密码等信息存储在变量中,这样不仅让配置过程更加直观,还提高的流水线的重用性。

在DevOps Server 的变量中,有一部分变量是系统自动设置的,我们不能自由修改,例如生成名称、生成编号等。这些系统预先定义的变量,一般在命名格式上有固定的前缀, 例如system、build、Agent等。例如Build.DifinitionName,标识生成流水线的名称。

在这篇文章中,我们主要介绍如何管理和使用用户自定义的变量,以及在不同的代理、不同的流水线中,我们如何使用这些变量。

新增变量

可以在生成流水线和发布流水线中分别定义变量。如下图,我们在生产流水线定义变量:

1)在生成流水线清单中选择需要编辑流水线

2)选择编辑按钮

3)选择变量按钮

4)点击添加按钮,新增变量。

我们一般使用点(.)或者下划线(_)隔开变量中的单词,以便提高变量的可读性,例如user.name,login.name。

5)在变量的值中填写默认值。也可以参考后面的内容,在流水线执行过程中为变量赋值。

image

在流水线中读取变量、为变量赋值

我们可以在各种流水线任务中读取变量值,也可以流水线中为变量赋值。Azure DevOps Server提供了多种机制,可以让用户在流水线中读取变量值:

1)在流水线读取参数。

可以将变量值作为参数的方式传输到任务脚本中,例如在命令行、python、PowerShell等中使用变量

下图是在Python脚本中读取自定义的变量

image

当任务执行的时候,可以在日志中看到输出的变量值

image

2)在流水线中设置变量值

如果在流水线中,需要按照需求更改变量值,可以使用Azure DevOps Server 提供的接口来修改变量值。例如PowerShell的脚本如下

Write-Host "##vso[task.setvariable variable=login.name]zhanghongjun"
Write-Host "##vso[task.setvariable variable=login.password;issecret=true]mypassword"

使用shell脚本如下:

#!/bin/bash
echo "##vso[task.setvariable variable=login.name]zhanghongjun"
echo "##vso[task.setvariable variable=login.password;issecret=true]mypassword"

变量组:在流水线之间共享变量值

如果需要在流水线中共享变量,可以使用变量组。使用变量组存储要在多个管道中控制和可用的值。变量组在Pipelines Hub的“库”选项卡中定义和管理。创建变量组的操作如下:

image

在流水线之间传递变量值

有不少用户提出了这个问题,是否可以在不同的流水线之间传递变量值,答案是不能,至少目前版本DevOps Server 2019不能。

在下面的这样一个场景中,有这样的需求:我们使用Maven编译和打包项目代码,在部署过程使用容器Docker作为部署环境;需要创建Docker镜像时,使用Maven的POM文件中的版本号作为容器的名称,这样用户就非常方便的能够查询到镜像中部署的软件版本。为了解决这样的问题,目前我们使用的解决方案是在编译过程中使用脚本获取POM文件中的版本号,然后将其用来命名Maven的数据文件名称,例如company-cms-1.0.1.jar;然后在制作镜像的过程中,分析这个名称,使用其中的版本号作为镜像名称。

微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang

--End--

TFS 2010架构升级:从工具拼盘到事件驱动协作中枢 Team Foundation Server(TFS)是微软面向企业级软件开发的统一协作平台,其核心能力涵盖版本控制、工作项跟踪、持续构建与报表分析。TFS 2010标志着从松散工具集向集成化协作中枢的关键演进,依托Application Tier统一宿主、Service Broker异步通信与事件驱动架构,实现签入→构建→测试→反馈的分钟级闭环。该版本首次引入变更集(Changeset)原子性模型和状态机驱动的工作项流程引擎,大幅提升协同精度与审计合规性。技术价值体现在端到端流程耗时压缩80%、权限继承支 阅读详情

相关推荐

微软技术生态四层能力地图:从开发平台到交付通道

微软技术体系并非零散工具集合,而是一个分层演进的有机生态。其底层是.NET运行时与开发平台,提供跨平台应用执行环境;中间层涵盖SQL Server、Active Directory等基础产品,解决状态持久化与身份治理;上层Enterprise Products如Dynamics 365、SharePoint则将技术能力翻译为业务建模语言;最外层Delivery Channel通过Web、移动、桌面与云协同实现价值触达。理解这一结构,有助于规避盲目追新、产品误用与云迁移失焦等典型误区。尤其在Power Pla

489

使用TFS玩转Docker自动化部署

简介 本文将介绍如何通过微软的Team Foundation Server平台,结合Docker完成程序的持续集成、持续部署。这里小编以.NET Core为例向大家分享整个DevOps流水线的搭建过程以及思路,其他语言平台均适用。 作者:周文洋 LEANSOFT研发总监,认证 Scrum Master,曾为多家客户提供微软Team Foundation Serv...

788

TFS2010 入门使用步骤图解说明详细截图说明doc

TFS2010 入门使用步骤图解说明详细截图说明doc 每个步骤都有详细说明加截图说明

CI/CD 码农的流水线(Azure DevOps Server 2019 使用)

一、简介 Azure DevOps Server 2019是微软原TFS的升级版本,也是一个支持本地离线开发的版本,对应有一个在线云托管版本的Azure DevOps Service2019。 Azure DevOps为支持团队提供开发人员服务,以计划工作,协作进行代码开发以及生成和部署应用程序。Azure DevOps支持一种文化和一组流程,这些流程和流程将开发人员,项目经理和贡献者聚集在一起,以完成软件开发。它使组织可以比传统软件开发方法更快地创建和改进产品。 其内容管理组织方式为先在Azu...

zhujisoft的专栏 2万+

【模型解读】【代码复现】Segment Anything Model(SAM)

Meta AI的一个新的人工智能模型,只需一次点击就能 "分割出 "任何图像中的任何物体! SAM是一个可提示的分割系统,对不熟悉的物体和图像具有zero-shot的概括性,并且不需要额外的训练。

lalula的博客 2万+

游戏安全逆向实战:如何用010Editor绕过ACE反作弊的文件校验(附详细步骤)

本文详细介绍了如何通过逆向工程思维和010Editor工具,针对PC游戏中ACE反作弊系统的文件校验机制进行分析与绕过。文章以实战案例为核心,逐步拆解了定位校验逻辑、解析校验数据文件、计算并替换哈希值的关键步骤,为安全研究人员提供了一种在用户态(Ring 3)层面进行轻量化对抗的思路与方法。

iii12的专栏 744

VS2019菜单栏没有团队选项解决方法

新安装了Visual Studio 2019结果菜单栏没有“团队”菜单,导致没办法连接TFS服务器,查了下网上也并没有对应解决方法(甚至遇见这个问题的都没有/笑哭,所以这个方法写出来也大概没什么用) 最后找到的解决方法是,点击文件->源代码管理->高级->工作区,点击即可设置远程TFS服务器 又查阅了下文档,发现TFS已经更名了“Azure DevOps Se...

weixin_30609331的博客 2447

[UE5蓝图基础二]1.[1d混合空间] 走和跑的动画切换(shift切换)

再双击”run”进去 我们需要给他指定一个动画姿势,这里就需要给他我们前面做的”1d”混合空间,然后可以看到”1d” 上有个speed参数,代表的速度 从前面的逻辑来看需要通过控制速度来切换动画,那么必然不能写死速度,把速度提升为变量传递进来即可,所以就得到以下蓝图节点。混合空间的概念:混合空间就是可以将角色多个动画混合在一起 ,我们创建动画类就是创建个”Animation”文件夹 在文件夹内创建混合空间。我们目前要实现的是一个走和跑的功能 那么创建1d即可。到这一步混合空间已经做完 下一步做”动画蓝图”

qq_30584617的博客 3300

TFS 2010架构演进:从工具集到ALM平台的范式重构

应用生命周期管理(ALM)是现代软件工程的核心范式,其本质在于打通需求、开发、测试、构建与交付的全链路可追溯性。TFS 2010标志着ALM从松散工具集成迈向统一数据平台的关键转折,依托双库架构(TfsConfigurationDatabase + TfsCollectionDatabase)实现跨域实体全局唯一标识,使工作项、变更集、构建记录等关键对象原生支持因果链式查询。其技术价值体现在流程自动化(WITD状态机)、构建可编程化(WF4工作流引擎)与权限/定制边界显式化三大突破,广泛应用于金融、制造等强

weixin_40192258的博客 476

在Kintex-7 FPGA上实现皮秒级时间测量:手把手教你搭建CARRY4进位链TDC(附源码与约束)

本文详细介绍了在Kintex-7 FPGA上利用CARRY4进位链实现皮秒级时间测量(TDC)的完整方案。从CARRY4的物理特性分析到硬件架构设计,再到校准方法与精度提升技巧,手把手教你构建测量精度达53ps的TDC系统,并附源码与约束文件,助力激光雷达、高能物理等精密计时应用开发。

weixin_42550052的博客 447

致远OA系统表单相关操作记录(一)

致远OA系统表单相关操作

weixin_59666050的博客 6107

VS Code vs VS 2019:个人Web开发中DevOps就绪型编辑器的选择逻辑

现代Web开发中的代码编辑器,早已超越语法高亮与自动补全,演变为承载DevOps实践的‘数字工作台’。其核心价值在于支撑自动化、环境可复现、低认知负荷与跨平台一致性——这正是Flask、Django、FastAPI等脚本驱动型服务在MVP验证与单人迭代场景下的刚性需求。VS Code凭借纯文本配置(如launch.json、settings.json)、对venv/poetry的原生兼容、Git与GitHub Actions的无缝集成,将开发环境本身变成可版本化、可审计、可自动化的基础设施;而VS 2019

weixin_33725126的博客 382

小红书直播弹幕采集

本文主要介绍小红书直播间弹幕的采集,便于进行直播数据监控与直播数据进行分析。

tdl320721的博客 2544

在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)

概述Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具。使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcode项目,使用web浏览器在DevOps服务器上,实现一键编译、测试和发布等工作,省却测试发布过程中复杂的流程,大幅提高测试发布的效率,提高开发和测试团队之间的协作效率。本文已经某银行的IOS手机银行移...

Azure DevOps Server(原名TFS) 391

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统(深度学习模型+UI界面+训练数据集)

随着人工智能技术在农业领域的深入应用,基于深度学习的害虫检测系统已成为智慧农业的重要组成部分。本文详细介绍了一种基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统,涵盖算法原理、数据集构建、模型训练、系统实现及完整代码。该系统能够实时检测并识别多种农作物害虫,为农业生产提供精准的病虫害监测解决方案。

YOLO 273

大模型——Ollama简明教程

在这篇文章中,我们将了解如何使用 Ollama、如何在 Ollama 中创建自己的模型 以及如何使用 Ollama 构建聊天机器人。这是深入研究 Ollama 的第一部分,以及我所学到的有关本地 LLM 的知识以及如何将它们用于基于推理的应用程序。在这篇文章中,你将了解——

1700

使用TFS CI/CD 完成 VSTS 插件自动化部署和发布

Visual Studio Team Service 经过了13年的版本演进和5年的在线运营,现在已经是最成熟的商用DevOps工具链,Marketplace作为VSTS...

dotNET跨平台 3637

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

还原Azure DevOps Server (TFS)中误删除的生成流水线

流水线历史记录DevOps Server流水线的历史记录有完善的版本日志,用户可以随时回退到修改过程中的任何一个版本,还能比较差异。这个历史记录功能可以和代码库中的版本控制媲美。图一:生成历史记录但是,如果实施工程师辛辛苦苦配置的复杂流水线,不小心被一个小白删除了,而你翻遍了Azure DevOps Server 的所有菜单也找不到流水线的回收站菜单,此时估计你跳楼的心都有了。图二:生成定义中的...

Azure DevOps Server(原名TFS) 292

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

DevOps系列之GitLab-06配置运行流水线2

1. GitLab CI/CD基础配置 翻译成中文后阅读。 1.1 通用管道 1.1.1 通用管道 管道权限、取消冗余管道、跳过历史部署作业; 可以自定义配置文件路径, 默认实在根目录下 设置git策略,超时时间,制品文件大小限制,测试覆盖率等。 1.1.2管道状态 可以在项目中以图标的方式展示项目运行情况。 创建README.md文件 可以看到流水线的运行状态 1.1.3覆盖报告 操作与管道状态类似。 1.2Auto De...

lee_yanyi的博客 1822

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devops===》参数化构建

一、参数化构建 1.通过git branches (标签)部署 先在远程仓库给代码创建标签 在Jenkins上定义标签参数 保存===》选择标签===》构建 到Jenkins服务器指定目录查看 到gitlab服务器指定目录查看 2.字符串参数 3.密码参数 保存===》选择标签===》构建===》控制台输出查看输出结果 4.凭证参数 5.布尔参数 6.隐藏参数 7.下拉参数 8.级联参数 ...

Elaina_fang✨✨✨的博客 455

动态临时变量为 Azure DevOps Pipeline 变量自定义锦上添花

大家好,我是本期的微软MVP实验室研究员贠乾。Azure Pipeline 本身已经提供了内置变量。不同于上述方式,今天我将带来如何在 Azure DevOps Pipeline 运行时创建、使用动态临时变量,实现变量的动态自定义。接下来让我们在实验中一探究竟吧! 思路浅析 在我们分享的 Azure Terraform 系列文中有介绍到关于 Terraform 的状态文件远程存储的问题,我们在 Azure DevOps Pipeline 的 Task Job 加 azure_cli_script .

微软技术栈 1210

Azure DevOps Server: 使用Rest Api获取拉取请求Pull Request中的变更文件清单

需求:Azure DevOps Server 的拉取请求模块,为开发团队提供了强大而且灵活的代码评审功能。拉取请求中变更文件清单,对质量管理人员,是一个宝贵的材料。质量保障人员可以从代码清单中分析不通文件的修改频率、不通文件对应需求类型的关联关系的功能。通过对这些数据的分析,可以深度挖掘开发过程中积累的数据的价值。下面介绍如何使用Azure DevOps Server 提供的Rest Api 轻易...

weixin_30298497的博客 635

高级进阶:Azure DevOps搞定.NET Core编译版本号自增

点击上方蓝字关注“汪宇杰博客”熟悉.NET Framework的人知道,我们可以通过指定AssemblyVersion为10.0.*来让编译器自增版本号。但是.NET C...

dotNET跨平台 1553

TFS2018 获取所有Build变量及变量值

添加一个Command Line 步骤,Tool设置为cmd,并设置参数为/k set 注意:若在执行时出现如下报错信息,Tool的值改成cmd.exe 2018-07-20T02:31:36.0416435Z ##[debug]Fail on standard error: 'False' 2018-07-20T02:31:36.0416435Z ##[debug]Modi...

weixin_30265171的博客 213
上一篇: Azure DevOps Server:Git权限设置
下一篇: 在Azure DevOps Server的代理服务器安装Python环境
Azure DevOps
博客等级 码龄6年 219粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值