Skip to content

Update version.txt to 1.23.14 for release#7504

Merged
rajeshkamal5050 merged 2 commits into
mainfrom
copilot/update-version-1-23-14
Apr 4, 2026
Merged

Update version.txt to 1.23.14 for release#7504
rajeshkamal5050 merged 2 commits into
mainfrom
copilot/update-version-1-23-14

Update version.txt to 1.23.14 for release

64b9ba0
Select commit
Loading
Failed to load commit list.
Azure Pipelines / azure-dev - cli succeeded Apr 4, 2026 in 1h 2m 5s

Build #20260403.51 had test failures

Details

Tests

  • Failed: 9 (0.03%)
  • Passed: 34,230 (99.58%)
  • Other: 137 (0.40%)
  • Total: 34,376

Annotations

Check failure on line 1 in TestCompletionFigAction_Run

See this annotation in the file changed.

@azure-pipelines azure-pipelines / azure-dev - cli

TestCompletionFigAction_Run

Failed
Raw output
=== RUN   TestCompletionFigAction_Run
=== PAUSE TestCompletionFigAction_Run
=== CONT  TestCompletionFigAction_Run
interface AzdEnvListItem {
	Name: string;
	DotEnvPath: string;
	HasLocal: boolean;
	HasRemote: boolean;
	IsDefault: boolean;
}

interface AzdTemplateListItem {
	name: string;
	description: string;
	repositoryPath: string;
	tags: string[];
}

interface AzdExtensionListItem {
	id: string;
	name: string;
	namespace: string;
	version: string;
	installedVersion: string;
	source: string;
}

interface AzdConfigOption {
	Key: string;
	Description: string;
	Type: string;
	AllowedValues?: string[] | null;
	Example?: string;
	EnvVar?: string;
}

const azdGenerators: Record<string, Fig.Generator> = {
	listEnvironments: {
		script: ['azd', 'env', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const envs: AzdEnvListItem[] = JSON.parse(out);
				return envs.map((env) => ({
					name: env.Name,
					displayName: env.IsDefault ? 'Default' : undefined,
				}));
			} catch {
				return [];
			}
		},
	},
	listEnvironmentVariables: {
		script: ['azd', 'env', 'get-values', '--output', 'json'],
		postProcess: (out) => {
			try {
				const envVars: Record<string, string> = JSON.parse(out);
				return Object.keys(envVars).map((key) => ({
					name: key,
				}));
			} catch {
				return [];
			}
		},
	},
	listTemplates: {
		script: ['azd', 'template', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const templates: AzdTemplateListItem[] = JSON.parse(out);
				return templates.map((template) => ({
					name: template.repositoryPath,
					description: template.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listTemplateTags: {
		script: ['azd', 'template', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const templates: AzdTemplateListItem[] = JSON.parse(out);
				const tagsSet = new Set<string>();

				// Collect all unique tags from all templates
				templates.forEach((template) => {
					if (template.tags && Array.isArray(template.tags)) {
						template.tags.forEach((tag) => tagsSet.add(tag));
					}
				});

				// Convert set to array and return as suggestions
				return Array.from(tagsSet).sort().map((tag) => ({
					name: tag,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listTemplatesFiltered: {
		custom: async (tokens, executeCommand, generatorContext) => {
			// Find if there's a -f or --filter flag in the tokens
			let filterValue: string | undefined;
			for (let i = 0; i < tokens.length; i++) {
				if ((tokens[i] === '-f' || tokens[i] === '--filter') && i + 1 < tokens.length) {
					filterValue = tokens[i + 1];
					break;
				}
			}

			// Build the azd command with filter if present
			const args = ['template', 'list', '--output', 'json'];
			if (filterValue) {
				args.push('--filter', filterValue);
			}

			try {
				const { stdout } = await executeCommand({
					command: 'azd',
					args: args,
				});

				const templates: AzdTemplateListItem[] = JSON.parse(stdout);
				return templates.map((template) => ({
					name: template.repositoryPath,
					description: template.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listExtensions: {
		script: ['azd', 'ext', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const extensions: AzdExtensionListItem[] = JSON.parse(out);
				const uniqueExtensions = new Map<string, AzdExtensionListItem>();

				extensions.forEach((ext) => {
					if (!uniqueExtensions.has(ext.id)) {
						uniqueExtensions.set(ext.id, ext);
					}
				});

				return Array.from(uniqueExtensions.values()).map((ext) => ({
					name: ext.id,
					description: ext.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listInstalledExtensions: {
		script: ['azd', 'ext', 'list', '--installed', '--outpu

Check failure on line 1 in TestCompletionFigAction_Run

See this annotation in the file changed.

@azure-pipelines azure-pipelines / azure-dev - cli

TestCompletionFigAction_Run

Failed
Raw output
=== RUN   TestCompletionFigAction_Run
=== PAUSE TestCompletionFigAction_Run
=== CONT  TestCompletionFigAction_Run
interface AzdEnvListItem {
	Name: string;
	DotEnvPath: string;
	HasLocal: boolean;
	HasRemote: boolean;
	IsDefault: boolean;
}

interface AzdTemplateListItem {
	name: string;
	description: string;
	repositoryPath: string;
	tags: string[];
}

interface AzdExtensionListItem {
	id: string;
	name: string;
	namespace: string;
	version: string;
	installedVersion: string;
	source: string;
}

interface AzdConfigOption {
	Key: string;
	Description: string;
	Type: string;
	AllowedValues?: string[] | null;
	Example?: string;
	EnvVar?: string;
}

const azdGenerators: Record<string, Fig.Generator> = {
	listEnvironments: {
		script: ['azd', 'env', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const envs: AzdEnvListItem[] = JSON.parse(out);
				return envs.map((env) => ({
					name: env.Name,
					displayName: env.IsDefault ? 'Default' : undefined,
				}));
			} catch {
				return [];
			}
		},
	},
	listEnvironmentVariables: {
		script: ['azd', 'env', 'get-values', '--output', 'json'],
		postProcess: (out) => {
			try {
				const envVars: Record<string, string> = JSON.parse(out);
				return Object.keys(envVars).map((key) => ({
					name: key,
				}));
			} catch {
				return [];
			}
		},
	},
	listTemplates: {
		script: ['azd', 'template', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const templates: AzdTemplateListItem[] = JSON.parse(out);
				return templates.map((template) => ({
					name: template.repositoryPath,
					description: template.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listTemplateTags: {
		script: ['azd', 'template', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const templates: AzdTemplateListItem[] = JSON.parse(out);
				const tagsSet = new Set<string>();

				// Collect all unique tags from all templates
				templates.forEach((template) => {
					if (template.tags && Array.isArray(template.tags)) {
						template.tags.forEach((tag) => tagsSet.add(tag));
					}
				});

				// Convert set to array and return as suggestions
				return Array.from(tagsSet).sort().map((tag) => ({
					name: tag,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listTemplatesFiltered: {
		custom: async (tokens, executeCommand, generatorContext) => {
			// Find if there's a -f or --filter flag in the tokens
			let filterValue: string | undefined;
			for (let i = 0; i < tokens.length; i++) {
				if ((tokens[i] === '-f' || tokens[i] === '--filter') && i + 1 < tokens.length) {
					filterValue = tokens[i + 1];
					break;
				}
			}

			// Build the azd command with filter if present
			const args = ['template', 'list', '--output', 'json'];
			if (filterValue) {
				args.push('--filter', filterValue);
			}

			try {
				const { stdout } = await executeCommand({
					command: 'azd',
					args: args,
				});

				const templates: AzdTemplateListItem[] = JSON.parse(stdout);
				return templates.map((template) => ({
					name: template.repositoryPath,
					description: template.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listExtensions: {
		script: ['azd', 'ext', 'list', '--output', 'json'],
		postProcess: (out) => {
			try {
				const extensions: AzdExtensionListItem[] = JSON.parse(out);
				const uniqueExtensions = new Map<string, AzdExtensionListItem>();

				extensions.forEach((ext) => {
					if (!uniqueExtensions.has(ext.id)) {
						uniqueExtensions.set(ext.id, ext);
					}
				});

				return Array.from(uniqueExtensions.values()).map((ext) => ({
					name: ext.id,
					description: ext.name,
				}));
			} catch {
				return [];
			}
		},
		cache: {
			strategy: 'stale-while-revalidate',
		}
	},
	listInstalledExtensions: {
		script: ['azd', 'ext', 'list', '--installed', '--outpu

Check failure on line 1 in Test_CLI_VsServer

See this annotation in the file changed.

@azure-pipelines azure-pipelines / azure-dev - cli

Test_CLI_VsServer

Failed
Raw output
=== RUN   Test_CLI_VsServer
=== PAUSE Test_CLI_VsServer
=== CONT  Test_CLI_VsServer
--- FAIL: Test_CLI_VsServer (12.83s)

Check failure on line 1 in Test_CLI_VsServer/ManageEnvironments

See this annotation in the file changed.

@azure-pipelines azure-pipelines / azure-dev - cli

Test_CLI_VsServer/ManageEnvironments

Failed
Raw output
=== RUN   Test_CLI_VsServer/ManageEnvironments
=== PAUSE Test_CLI_VsServer/ManageEnvironments
=== CONT  Test_CLI_VsServer/ManageEnvironments
    vs_server_test.go:218: DIR: /var/folders/xf/zt5rjbcn7_33flm02zx_md_00000gn/T/Test_CLI_VsServerManageEnvironments2325906951/001
    aspire_test.go:367: 303ms [svr-out] {"port":51768,"pid":2737,"certificateBytes":"MIIDDDCCAfSgAwIBAgIQczNWcU+DV3u2qXI3sD2A8TANBgkqhkiG9w0BAQsFADAeMRwwGgYDVQQKExNBenVyZSBEZXZlbG9wZXIgQ0xJMB4XDTI2MDQwNDAzMDkxMloXDTI2MDQxMTAzMDkxMlowHjEcMBoGA1UEChMTQXp1cmUgRGV2ZWxvcGVyIENMSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPcJZOOJ9gnzyeqXSOuvXMcEE2yzPgmCZV3RCRNziJz3rPZczp8/VgbDd/72DjvTrINMCR3rkHxSzYfvBCf0MyzCx/JkEw46fqtk6f54+eGgU2oBKhozvF1ttNNr5NVuDDcYRfXOcPfn/KFgWNjqxCAC0YJ6oJXPQTSzn6IXondioiuCBdMXr/VnJY7GFd6vdRBnsbk999f2EcTV1jyT4dObfjWY8yt3xHqCQaCXaJDgdndQ0GsK+Hhx7HSH24AOdiPnsIOUhuUaMT9FVbYEaIv9pjQ29FdpErkvrpEJvXqfZAg2o25MUNHvQI2wGNOBWAm9DhKAQAgFdbn2HRs2x9MCAwEAAaNGMEQwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEA6UzyYGpsy8RSZkkvcwuMHfmj8wX9rQ7mzkIh+IyThkuLkLxwa1bO01WOBZTqTDunRnYaI7MFepkulqtrEti0cTAEA9Q/Ek5/HZ9Cnc/q4Dy5bcSKBK3wsLdqxTmBLvMkWqF+xAp6hwH+Kf1QrXijjsEDma1i0pkLr9oQ3CToK4Nodg1y+gJ3RPVafDenyb5RV1wM5XQvSASwiTLlE39kDAW5YahsdYzHI6QCzK7HMwVbuu06rRSLpfTH+EY+uGETDLMXzX/sb+5F7RUVC9hVCHglMXlufhq8/xTA3qhqxyvaUpPS8oGhvrz2RmPTb8QlQnHeZ+aLbnl7ZbTez+A7hw==","azd":{"version":"1.23.14-pr.6108690","commit":"dfdd484665eb04a72b8c39f25e12244368c1ca52"}}
    aspire_test.go:367: 1.765s [t-out] Test run for /Users/runner/work/1/s/cli/azd/test/functional/testdata/vs-server/tests/bin/Debug/net8.0/AzdVsServerTests.dll (.NETCoreApp,Version=v8.0)
    aspire_test.go:367: 1.892s [t-out] VSTest version 17.14.1 (x64)
    aspire_test.go:367: 1.895s [t-out] 
    aspire_test.go:367: 2.051s [t-out] Starting test execution, please wait...
    aspire_test.go:367: 2.1s [t-out] A total of 1 test files matched the specified pattern.
    aspire_test.go:367: 41.085s [svr-out] [rg9FD5NFnJ8= spinner] Analyzing Aspire Application (this might take a moment...)
    aspire_test.go:367: 1m13.094s [svr-out] [rg9FD5NFnJ8= spinner] Analyzing Aspire Application (this might take a moment...)
    aspire_test.go:367: 1m33.147s [svr-out] [rg9FD5NFnJ8= spinner] Discovering resources to delete...
    aspire_test.go:367: 4m35.058s [t-out]   Failed ManageEnvironments [4 m 29 s]
    aspire_test.go:367: 4m35.058s [t-out]   Error Message:
    aspire_test.go:367: 4m35.059s [t-out]    StreamJsonRpc.RemoteInvocationException : deleting infrastructure: error deleting Azure resources: finding completed deployments: GET https://management.azure.com/subscriptions/4d042dc6-fe17-4698-a23f-ec6a8d1e98f4/providers/Microsoft.Resources/deployments/
    aspire_test.go:367: 4m35.059s [t-out] --------------------------------------------------------------------------------
    aspire_test.go:367: 4m35.059s [t-out] RESPONSE 503: 503 Service Unavailable
    aspire_test.go:367: 4m35.059s [t-out] ERROR CODE: ServerTimeout
    aspire_test.go:367: 4m35.059s [t-out] --------------------------------------------------------------------------------
    aspire_test.go:367: 4m35.059s [t-out] {
    aspire_test.go:367: 4m35.059s [t-out]   "error": {
    aspire_test.go:367: 4m35.059s [t-out]     "code": "ServerTimeout",
    aspire_test.go:367: 4m35.059s [t-out]     "message": "The request timed out. Diagnostic information: timestamp '20260404T031347Z', subscription id '4d042dc6-fe17-4698-a23f-ec6a8d1e98f4', tracking id '4727dfb2-1990-4d46-b002-89b439afafc0', request correlation id '4727dfb2-1990-4d46-b002-89b439afafc0'."
    aspire_test.go:367: 4m35.059s [t-out]   }
    aspire_test.go:367: 4m35.059s [t-out] }
    aspire_test.go:367: 4m35.059s [t-out] --------------------------------------------------------------------------------
    aspire_test.go:367: 4m35.059s [t-out] 
    aspire_test.go:367: 4m35.059s [t-out]   Stack Trace:
    aspire_test.go:367: 4m35.059s [t-out]      at Strea