TFS(本地)发布管道-发现并使用部署组中另一台计算机的名称

时间:2019-12-11 16:16:16

标签: tfs tfsbuild

我在计算机A 上部署了一个网站(站点A ),这取决于部署在< strong>机器B 。

A机和B机在同一个部署组中,按标签(分别为{#define N 800000 #include <iostream> #include <cstdlib> #include <time.h> #include <chrono> using namespace std; void Exchange(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int Partition(int A[], int p, int r) { int x = A[r]; int i = p - 1; for (int j = p; j <= r; j++) { if (A[j] < x) { i++; Exchange(&A[i], &A[j]); } } Exchange(&A[i + 1], &A[r]); return i + 1; } int RPartition(int A[], int p, int r) { srand(time(NULL)); int i = p + rand() % (p - r); Exchange(&A[i], &A[r]); return Partition(A, p, r); } void QuickSort(int A[], int p, int r) { if (p < r) { int q = RPartition(A, p, r); QuickSort(A, p, q - 1); QuickSort(A, q + 1, r); } } void Stampa(int A[], int n) { for (int i = 0; i < n; i++) { cout << A[i] << "\n"; } } int main() { srand(50000); int A[N]; for (int i = 0; i < N; i++) { A[i] = rand(); } cout << "Array non ordinato\n"; Stampa(A, N); auto start = std::chrono::system_clock::now(); QuickSort(A, 0, N - 1); auto end = std::chrono::system_clock::now(); cout << "\nArray ordinato\n"; Stampa(A, N); std::chrono::duration<double> elapsed = end - start; cout << "Elapsed time: " << elapsed.count() << "s"; } App)进行区分,并且我有2个部署阶段(每个标签一个)将代码推送到各自的盒子

我需要在站点A的配置中写入一个值,以告诉它服务B的位置。

是否有一种方法可以发现服务B部署到的计算机的名称,以使部署真正保持动态?

换一种说法,我可以发现具有给定部署标签的计算机的名称并将其用于变量中吗?

我尝试在部署代理上运行本地Powershell来更新变量,但是该更新似乎无法将其返回给控制代理,因此它无法在计算机之间传递值。

我的后退只是使用已知的服务器名称并将值写入配置中,但考虑到系统其余部分的动态性,这感觉像是一次巨大的黑客攻击。

我正在使用TFS 2018本地-基于GUI的部署管道(没有YAML)

1 个答案:

答案 0 :(得分:1)

predefined agent variables允许您在管道中引用计算机名称。

1,例如,可以通过将预定义变量包装在“ $()”中来引用计算机名称。 <script> export default { name: "container", data() { return { showLabel: false, container: "Container here ..." }; }, methods: { highlightIn(){ this.showLabel = true; }, highlightOut(){ this.showLabel = false; } } }; </script>

enter image description here

  

此方法将从代理功能中的Agent.Name属性获取代理名称。

enter image description here

2,还有另一个解决方法。您还可以在脚本下面的脚本中添加powershell任务,以获取承载代理和assign it to a variable的本地计算机名称。

  

您需要在管道的“变量”标签中定义一个变量(例如,MachineName)

enter image description here

"$(Agent.MachineName)" or "$(Agent.Name)"

enter image description here

  

第二种方法将从本地计算机的属性中获取计算机名称。

enter image description here