Add setup script to seed azdo project
This commit is contained in:
@@ -1,243 +1,243 @@
|
||||
{
|
||||
"options": [
|
||||
{
|
||||
"options": [
|
||||
{
|
||||
"enabled": true,
|
||||
"definition": {
|
||||
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
|
||||
},
|
||||
"inputs": {
|
||||
"branchFilters": "[\"+refs/heads/*\"]",
|
||||
"additionalFields": "{}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"enabled": false,
|
||||
"definition": {
|
||||
"id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
|
||||
},
|
||||
"inputs": {
|
||||
"workItemType": "Task",
|
||||
"assignToRequestor": "true",
|
||||
"additionalFields": "{}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"BuildConfiguration": {
|
||||
"value": "release",
|
||||
"allowOverride": true
|
||||
},
|
||||
"BuildPlatform": {
|
||||
"value": "any cpu",
|
||||
"allowOverride": true
|
||||
},
|
||||
"system.debug": {
|
||||
"value": "false",
|
||||
"allowOverride": true
|
||||
}
|
||||
},
|
||||
"properties": {},
|
||||
"tags": [],
|
||||
"_links": [],
|
||||
"buildNumberFormat": "$(date:yyyyMMdd)$(rev:.r)",
|
||||
"jobAuthorizationScope": 1,
|
||||
"jobTimeoutInMinutes": 60,
|
||||
"jobCancelTimeoutInMinutes": 5,
|
||||
"process": {
|
||||
"phases": [
|
||||
{
|
||||
"steps": [
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"definition": {
|
||||
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "Use NuGet 4.4.1",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "2c65196a-54fd-4a02-9be8-d9d1837b7c5d",
|
||||
"versionSpec": "0.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"branchFilters": "[\"+refs/heads/*\"]",
|
||||
"additionalFields": "{}"
|
||||
"versionSpec": "4.4.1",
|
||||
"checkLatest": "false"
|
||||
}
|
||||
},
|
||||
{
|
||||
"enabled": false,
|
||||
"definition": {
|
||||
"id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "NuGet restore",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"workItemType": "Task",
|
||||
"assignToRequestor": "true",
|
||||
"additionalFields": "{}"
|
||||
"command": "restore",
|
||||
"solution": "$(Parameters.solution)",
|
||||
"selectOrConfig": "select",
|
||||
"feedRestore": "",
|
||||
"includeNuGetOrg": "true",
|
||||
"nugetConfigPath": "",
|
||||
"externalEndpoints": "",
|
||||
"noCache": "false",
|
||||
"disableParallelProcessing": "false",
|
||||
"packagesDirectory": "",
|
||||
"verbosityRestore": "Detailed",
|
||||
"searchPatternPush": "$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg",
|
||||
"nuGetFeedType": "internal",
|
||||
"feedPublish": "",
|
||||
"publishPackageMetadata": "true",
|
||||
"allowPackageConflicts": "false",
|
||||
"externalEndpoint": "",
|
||||
"verbosityPush": "Detailed",
|
||||
"searchPatternPack": "**/*.csproj",
|
||||
"configurationToPack": "$(BuildConfiguration)",
|
||||
"outputDir": "$(Build.ArtifactStagingDirectory)",
|
||||
"versioningScheme": "off",
|
||||
"includeReferencedProjects": "false",
|
||||
"versionEnvVar": "",
|
||||
"requestedMajorVersion": "1",
|
||||
"requestedMinorVersion": "0",
|
||||
"requestedPatchVersion": "0",
|
||||
"packTimezone": "utc",
|
||||
"includeSymbols": "false",
|
||||
"toolPackage": "false",
|
||||
"buildProperties": "",
|
||||
"basePath": "",
|
||||
"verbosityPack": "Detailed",
|
||||
"arguments": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"BuildConfiguration": {
|
||||
"value": "release",
|
||||
"allowOverride": true
|
||||
},
|
||||
"BuildPlatform": {
|
||||
"value": "any cpu",
|
||||
"allowOverride": true
|
||||
},
|
||||
"system.debug": {
|
||||
"value": "false",
|
||||
"allowOverride": true
|
||||
}
|
||||
},
|
||||
"properties": {},
|
||||
"tags": [],
|
||||
"_links": [],
|
||||
"buildNumberFormat": "$(date:yyyyMMdd)$(rev:.r)",
|
||||
"jobAuthorizationScope": 1,
|
||||
"jobTimeoutInMinutes": 60,
|
||||
"jobCancelTimeoutInMinutes": 5,
|
||||
"process": {
|
||||
"phases": [
|
||||
{
|
||||
"steps": [
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "Use NuGet 4.4.1",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "2c65196a-54fd-4a02-9be8-d9d1837b7c5d",
|
||||
"versionSpec": "0.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"versionSpec": "4.4.1",
|
||||
"checkLatest": "false"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "NuGet restore",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"command": "restore",
|
||||
"solution": "$(Parameters.solution)",
|
||||
"selectOrConfig": "select",
|
||||
"feedRestore": "",
|
||||
"includeNuGetOrg": "true",
|
||||
"nugetConfigPath": "",
|
||||
"externalEndpoints": "",
|
||||
"noCache": "false",
|
||||
"disableParallelProcessing": "false",
|
||||
"packagesDirectory": "",
|
||||
"verbosityRestore": "Detailed",
|
||||
"searchPatternPush": "$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg",
|
||||
"nuGetFeedType": "internal",
|
||||
"feedPublish": "",
|
||||
"publishPackageMetadata": "true",
|
||||
"allowPackageConflicts": "false",
|
||||
"externalEndpoint": "",
|
||||
"verbosityPush": "Detailed",
|
||||
"searchPatternPack": "**/*.csproj",
|
||||
"configurationToPack": "$(BuildConfiguration)",
|
||||
"outputDir": "$(Build.ArtifactStagingDirectory)",
|
||||
"versioningScheme": "off",
|
||||
"includeReferencedProjects": "false",
|
||||
"versionEnvVar": "",
|
||||
"requestedMajorVersion": "1",
|
||||
"requestedMinorVersion": "0",
|
||||
"requestedPatchVersion": "0",
|
||||
"packTimezone": "utc",
|
||||
"includeSymbols": "false",
|
||||
"toolPackage": "false",
|
||||
"buildProperties": "",
|
||||
"basePath": "",
|
||||
"verbosityPack": "Detailed",
|
||||
"arguments": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "PowerShell Script",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"targetType": "inline",
|
||||
"filePath": "",
|
||||
"arguments": "",
|
||||
"script": "# Write your PowerShell commands here.\n\nWrite-Host \"Hello World\"\n",
|
||||
"errorActionPreference": "stop",
|
||||
"warningPreference": "default",
|
||||
"informationPreference": "default",
|
||||
"verbosePreference": "default",
|
||||
"debugPreference": "default",
|
||||
"failOnStderr": "false",
|
||||
"showWarnings": "false",
|
||||
"ignoreLASTEXITCODE": "false",
|
||||
"pwsh": "false",
|
||||
"workingDirectory": "",
|
||||
"runScriptInSeparateScope": "false"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Agent job 1",
|
||||
"refName": "Job_1",
|
||||
"condition": "succeeded()",
|
||||
"target": {
|
||||
"executionOptions": {
|
||||
"type": 0
|
||||
},
|
||||
"allowScriptsAuthAccessOption": false,
|
||||
"type": 1
|
||||
},
|
||||
"jobAuthorizationScope": 1
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "PowerShell Script",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"targetType": "inline",
|
||||
"filePath": "",
|
||||
"arguments": "",
|
||||
"script": "# Write your PowerShell commands here.\n\nWrite-Host \"Hello World\"\n",
|
||||
"errorActionPreference": "stop",
|
||||
"warningPreference": "default",
|
||||
"informationPreference": "default",
|
||||
"verbosePreference": "default",
|
||||
"debugPreference": "default",
|
||||
"failOnStderr": "false",
|
||||
"showWarnings": "false",
|
||||
"ignoreLASTEXITCODE": "false",
|
||||
"pwsh": "false",
|
||||
"workingDirectory": "",
|
||||
"runScriptInSeparateScope": "false"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Agent job 1",
|
||||
"refName": "Job_1",
|
||||
"condition": "succeeded()",
|
||||
"target": {
|
||||
"agentSpecification": {
|
||||
"identifier": "windows-latest"
|
||||
}
|
||||
"executionOptions": {
|
||||
"type": 0
|
||||
},
|
||||
"allowScriptsAuthAccessOption": false,
|
||||
"type": 1
|
||||
},
|
||||
"type": 1
|
||||
"jobAuthorizationScope": 1
|
||||
}
|
||||
],
|
||||
"target": {
|
||||
"agentSpecification": {
|
||||
"identifier": "windows-latest"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"properties": {
|
||||
"cleanOptions": "0",
|
||||
"labelSources": "0",
|
||||
"labelSourcesFormat": "$(build.buildNumber)",
|
||||
"reportBuildStatus": "true",
|
||||
"gitLfsSupport": "false",
|
||||
"skipSyncSource": "false",
|
||||
"checkoutNestedSubmodules": "false",
|
||||
"fetchDepth": "0"
|
||||
},
|
||||
"id": "",
|
||||
"type": "TfsGit",
|
||||
"name": "REPOTOREPLACE",
|
||||
"url": "",
|
||||
"defaultBranch": "refs/heads/main",
|
||||
"clean": "false",
|
||||
"checkoutSubmodules": false
|
||||
"type": 1
|
||||
},
|
||||
"repository": {
|
||||
"properties": {
|
||||
"cleanOptions": "0",
|
||||
"labelSources": "0",
|
||||
"labelSourcesFormat": "$(build.buildNumber)",
|
||||
"reportBuildStatus": "true",
|
||||
"gitLfsSupport": "false",
|
||||
"skipSyncSource": "false",
|
||||
"checkoutNestedSubmodules": "false",
|
||||
"fetchDepth": "0"
|
||||
},
|
||||
"processParameters": {
|
||||
"inputs": [
|
||||
{
|
||||
"aliases": [],
|
||||
"options": {},
|
||||
"properties": {},
|
||||
"name": "solution",
|
||||
"label": "Solution",
|
||||
"defaultValue": "**\\*.sln",
|
||||
"required": true,
|
||||
"type": "filePath",
|
||||
"helpMarkDown": "The path to the Visual Studio solution file or NuGet packages.config. Wildcards can be used. For example, `**\\\\*.sln` for all sln files in all sub folders."
|
||||
}
|
||||
]
|
||||
"id": "",
|
||||
"type": "TfsGit",
|
||||
"name": "REPOTOREPLACE",
|
||||
"url": "",
|
||||
"defaultBranch": "refs/heads/main",
|
||||
"clean": "false",
|
||||
"checkoutSubmodules": false
|
||||
},
|
||||
"processParameters": {
|
||||
"inputs": [
|
||||
{
|
||||
"aliases": [],
|
||||
"options": {},
|
||||
"properties": {},
|
||||
"name": "solution",
|
||||
"label": "Solution",
|
||||
"defaultValue": "**\\*.sln",
|
||||
"required": true,
|
||||
"type": "filePath",
|
||||
"helpMarkDown": "The path to the Visual Studio solution file or NuGet packages.config. Wildcards can be used. For example, `**\\\\*.sln` for all sln files in all sub folders."
|
||||
}
|
||||
]
|
||||
},
|
||||
"quality": 1,
|
||||
"authoredBy": {
|
||||
"displayName": "David Kalmin",
|
||||
"url": "https://spsprodcus5.vssps.visualstudio.com/A8ceff4ff-6429-4de3-9c39-fd7f0b1fb05a/_apis/Identities/a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"_links": {
|
||||
"avatar": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
}
|
||||
},
|
||||
"quality": 1,
|
||||
"authoredBy": {
|
||||
"displayName": "David Kalmin",
|
||||
"url": "https://spsprodcus5.vssps.visualstudio.com/A8ceff4ff-6429-4de3-9c39-fd7f0b1fb05a/_apis/Identities/a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"_links": {
|
||||
"avatar": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
}
|
||||
},
|
||||
"id": "a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"uniqueName": "[email protected]",
|
||||
"imageUrl": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0",
|
||||
"descriptor": "aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
"id": "a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"uniqueName": "[email protected]",
|
||||
"imageUrl": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0",
|
||||
"descriptor": "aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
},
|
||||
"drafts": [],
|
||||
"queue": {
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126"
|
||||
}
|
||||
},
|
||||
"drafts": [],
|
||||
"queue": {
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126"
|
||||
}
|
||||
},
|
||||
"name": "Azure Pipelines",
|
||||
"url": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126",
|
||||
"pool": {
|
||||
"name": "Azure Pipelines",
|
||||
"isHosted": true
|
||||
}
|
||||
},
|
||||
"id": 10,
|
||||
"name": "valet-classic-test-import1",
|
||||
"uri": "vstfs:///Build/Definition/10",
|
||||
"path": "\\",
|
||||
"type": 2,
|
||||
"queueStatus": 0,
|
||||
"revision": 1,
|
||||
"createdDate": "2022-02-17T19:05:52.500Z",
|
||||
"name": "Azure Pipelines",
|
||||
"url": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126",
|
||||
"pool": {
|
||||
"name": "Azure Pipelines",
|
||||
"isHosted": true
|
||||
}
|
||||
},
|
||||
"id": 10,
|
||||
"name": "valet-classic-test-import1",
|
||||
"uri": "vstfs:///Build/Definition/10",
|
||||
"path": "\\",
|
||||
"type": 2,
|
||||
"queueStatus": 0,
|
||||
"revision": 1,
|
||||
"createdDate": "2022-02-17T19:05:52.500Z"
|
||||
}
|
||||
|
||||
@@ -1,243 +1,243 @@
|
||||
{
|
||||
"options": [
|
||||
{
|
||||
"options": [
|
||||
{
|
||||
"enabled": true,
|
||||
"definition": {
|
||||
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
|
||||
},
|
||||
"inputs": {
|
||||
"branchFilters": "[\"+refs/heads/*\"]",
|
||||
"additionalFields": "{}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"enabled": false,
|
||||
"definition": {
|
||||
"id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
|
||||
},
|
||||
"inputs": {
|
||||
"workItemType": "Task",
|
||||
"assignToRequestor": "true",
|
||||
"additionalFields": "{}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"BuildConfiguration": {
|
||||
"value": "release",
|
||||
"allowOverride": true
|
||||
},
|
||||
"BuildPlatform": {
|
||||
"value": "any cpu",
|
||||
"allowOverride": true
|
||||
},
|
||||
"system.debug": {
|
||||
"value": "false",
|
||||
"allowOverride": true
|
||||
}
|
||||
},
|
||||
"properties": {},
|
||||
"tags": [],
|
||||
"_links": [],
|
||||
"buildNumberFormat": "$(date:yyyyMMdd)$(rev:.r)",
|
||||
"jobAuthorizationScope": 1,
|
||||
"jobTimeoutInMinutes": 60,
|
||||
"jobCancelTimeoutInMinutes": 5,
|
||||
"process": {
|
||||
"phases": [
|
||||
{
|
||||
"steps": [
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"definition": {
|
||||
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "Use NuGet 4.4.1",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "2c65196a-54fd-4a02-9be8-d9d1837b7c5d",
|
||||
"versionSpec": "0.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"branchFilters": "[\"+refs/heads/*\"]",
|
||||
"additionalFields": "{}"
|
||||
"versionSpec": "4.4.1",
|
||||
"checkLatest": "false"
|
||||
}
|
||||
},
|
||||
{
|
||||
"enabled": false,
|
||||
"definition": {
|
||||
"id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "NuGet restore",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"workItemType": "Task",
|
||||
"assignToRequestor": "true",
|
||||
"additionalFields": "{}"
|
||||
"command": "restore",
|
||||
"solution": "$(Parameters.solution)",
|
||||
"selectOrConfig": "select",
|
||||
"feedRestore": "",
|
||||
"includeNuGetOrg": "true",
|
||||
"nugetConfigPath": "",
|
||||
"externalEndpoints": "",
|
||||
"noCache": "false",
|
||||
"disableParallelProcessing": "false",
|
||||
"packagesDirectory": "",
|
||||
"verbosityRestore": "Detailed",
|
||||
"searchPatternPush": "$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg",
|
||||
"nuGetFeedType": "internal",
|
||||
"feedPublish": "",
|
||||
"publishPackageMetadata": "true",
|
||||
"allowPackageConflicts": "false",
|
||||
"externalEndpoint": "",
|
||||
"verbosityPush": "Detailed",
|
||||
"searchPatternPack": "**/*.csproj",
|
||||
"configurationToPack": "$(BuildConfiguration)",
|
||||
"outputDir": "$(Build.ArtifactStagingDirectory)",
|
||||
"versioningScheme": "off",
|
||||
"includeReferencedProjects": "false",
|
||||
"versionEnvVar": "",
|
||||
"requestedMajorVersion": "1",
|
||||
"requestedMinorVersion": "0",
|
||||
"requestedPatchVersion": "0",
|
||||
"packTimezone": "utc",
|
||||
"includeSymbols": "false",
|
||||
"toolPackage": "false",
|
||||
"buildProperties": "",
|
||||
"basePath": "",
|
||||
"verbosityPack": "Detailed",
|
||||
"arguments": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"BuildConfiguration": {
|
||||
"value": "release",
|
||||
"allowOverride": true
|
||||
},
|
||||
"BuildPlatform": {
|
||||
"value": "any cpu",
|
||||
"allowOverride": true
|
||||
},
|
||||
"system.debug": {
|
||||
"value": "false",
|
||||
"allowOverride": true
|
||||
}
|
||||
},
|
||||
"properties": {},
|
||||
"tags": [],
|
||||
"_links": [],
|
||||
"buildNumberFormat": "$(date:yyyyMMdd)$(rev:.r)",
|
||||
"jobAuthorizationScope": 1,
|
||||
"jobTimeoutInMinutes": 60,
|
||||
"jobCancelTimeoutInMinutes": 5,
|
||||
"process": {
|
||||
"phases": [
|
||||
{
|
||||
"steps": [
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "Use NuGet 4.4.1",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "2c65196a-54fd-4a02-9be8-d9d1837b7c5d",
|
||||
"versionSpec": "0.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"versionSpec": "4.4.1",
|
||||
"checkLatest": "false"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "NuGet restore",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"command": "restore",
|
||||
"solution": "$(Parameters.solution)",
|
||||
"selectOrConfig": "select",
|
||||
"feedRestore": "",
|
||||
"includeNuGetOrg": "true",
|
||||
"nugetConfigPath": "",
|
||||
"externalEndpoints": "",
|
||||
"noCache": "false",
|
||||
"disableParallelProcessing": "false",
|
||||
"packagesDirectory": "",
|
||||
"verbosityRestore": "Detailed",
|
||||
"searchPatternPush": "$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg",
|
||||
"nuGetFeedType": "internal",
|
||||
"feedPublish": "",
|
||||
"publishPackageMetadata": "true",
|
||||
"allowPackageConflicts": "false",
|
||||
"externalEndpoint": "",
|
||||
"verbosityPush": "Detailed",
|
||||
"searchPatternPack": "**/*.csproj",
|
||||
"configurationToPack": "$(BuildConfiguration)",
|
||||
"outputDir": "$(Build.ArtifactStagingDirectory)",
|
||||
"versioningScheme": "off",
|
||||
"includeReferencedProjects": "false",
|
||||
"versionEnvVar": "",
|
||||
"requestedMajorVersion": "1",
|
||||
"requestedMinorVersion": "0",
|
||||
"requestedPatchVersion": "0",
|
||||
"packTimezone": "utc",
|
||||
"includeSymbols": "false",
|
||||
"toolPackage": "false",
|
||||
"buildProperties": "",
|
||||
"basePath": "",
|
||||
"verbosityPack": "Detailed",
|
||||
"arguments": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "PowerShell Script",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"targetType": "inline",
|
||||
"filePath": "",
|
||||
"arguments": "",
|
||||
"script": "# Write your PowerShell commands here.\n\nWrite-Host \"Hello World\"\n",
|
||||
"errorActionPreference": "stop",
|
||||
"warningPreference": "default",
|
||||
"informationPreference": "default",
|
||||
"verbosePreference": "default",
|
||||
"debugPreference": "default",
|
||||
"failOnStderr": "false",
|
||||
"showWarnings": "false",
|
||||
"ignoreLASTEXITCODE": "false",
|
||||
"pwsh": "false",
|
||||
"workingDirectory": "",
|
||||
"runScriptInSeparateScope": "false"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Agent job 1",
|
||||
"refName": "Job_1",
|
||||
"condition": "succeeded()",
|
||||
"target": {
|
||||
"executionOptions": {
|
||||
"type": 0
|
||||
},
|
||||
"allowScriptsAuthAccessOption": false,
|
||||
"type": 1
|
||||
},
|
||||
"jobAuthorizationScope": 1
|
||||
},
|
||||
{
|
||||
"environment": {},
|
||||
"enabled": true,
|
||||
"continueOnError": false,
|
||||
"alwaysRun": false,
|
||||
"displayName": "PowerShell Script",
|
||||
"timeoutInMinutes": 0,
|
||||
"retryCountOnTaskFailure": 0,
|
||||
"condition": "succeeded()",
|
||||
"task": {
|
||||
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
|
||||
"versionSpec": "2.*",
|
||||
"definitionType": "task"
|
||||
},
|
||||
"inputs": {
|
||||
"targetType": "inline",
|
||||
"filePath": "",
|
||||
"arguments": "",
|
||||
"script": "# Write your PowerShell commands here.\n\nWrite-Host \"Hello World\"\n",
|
||||
"errorActionPreference": "stop",
|
||||
"warningPreference": "default",
|
||||
"informationPreference": "default",
|
||||
"verbosePreference": "default",
|
||||
"debugPreference": "default",
|
||||
"failOnStderr": "false",
|
||||
"showWarnings": "false",
|
||||
"ignoreLASTEXITCODE": "false",
|
||||
"pwsh": "false",
|
||||
"workingDirectory": "",
|
||||
"runScriptInSeparateScope": "false"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Agent job 1",
|
||||
"refName": "Job_1",
|
||||
"condition": "succeeded()",
|
||||
"target": {
|
||||
"agentSpecification": {
|
||||
"identifier": "windows-latest"
|
||||
}
|
||||
"executionOptions": {
|
||||
"type": 0
|
||||
},
|
||||
"allowScriptsAuthAccessOption": false,
|
||||
"type": 1
|
||||
},
|
||||
"type": 1
|
||||
"jobAuthorizationScope": 1
|
||||
}
|
||||
],
|
||||
"target": {
|
||||
"agentSpecification": {
|
||||
"identifier": "windows-latest"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"properties": {
|
||||
"cleanOptions": "0",
|
||||
"labelSources": "0",
|
||||
"labelSourcesFormat": "$(build.buildNumber)",
|
||||
"reportBuildStatus": "true",
|
||||
"gitLfsSupport": "false",
|
||||
"skipSyncSource": "false",
|
||||
"checkoutNestedSubmodules": "false",
|
||||
"fetchDepth": "0"
|
||||
},
|
||||
"id": "",
|
||||
"type": "TfsGit",
|
||||
"name": "REPOTOREPLACE",
|
||||
"url": "",
|
||||
"defaultBranch": "refs/heads/main",
|
||||
"clean": "false",
|
||||
"checkoutSubmodules": false
|
||||
"type": 1
|
||||
},
|
||||
"repository": {
|
||||
"properties": {
|
||||
"cleanOptions": "0",
|
||||
"labelSources": "0",
|
||||
"labelSourcesFormat": "$(build.buildNumber)",
|
||||
"reportBuildStatus": "true",
|
||||
"gitLfsSupport": "false",
|
||||
"skipSyncSource": "false",
|
||||
"checkoutNestedSubmodules": "false",
|
||||
"fetchDepth": "0"
|
||||
},
|
||||
"processParameters": {
|
||||
"inputs": [
|
||||
{
|
||||
"aliases": [],
|
||||
"options": {},
|
||||
"properties": {},
|
||||
"name": "solution",
|
||||
"label": "Solution",
|
||||
"defaultValue": "**\\*.sln",
|
||||
"required": true,
|
||||
"type": "filePath",
|
||||
"helpMarkDown": "The path to the Visual Studio solution file or NuGet packages.config. Wildcards can be used. For example, `**\\\\*.sln` for all sln files in all sub folders."
|
||||
}
|
||||
]
|
||||
"id": "",
|
||||
"type": "TfsGit",
|
||||
"name": "REPOTOREPLACE",
|
||||
"url": "",
|
||||
"defaultBranch": "refs/heads/main",
|
||||
"clean": "false",
|
||||
"checkoutSubmodules": false
|
||||
},
|
||||
"processParameters": {
|
||||
"inputs": [
|
||||
{
|
||||
"aliases": [],
|
||||
"options": {},
|
||||
"properties": {},
|
||||
"name": "solution",
|
||||
"label": "Solution",
|
||||
"defaultValue": "**\\*.sln",
|
||||
"required": true,
|
||||
"type": "filePath",
|
||||
"helpMarkDown": "The path to the Visual Studio solution file or NuGet packages.config. Wildcards can be used. For example, `**\\\\*.sln` for all sln files in all sub folders."
|
||||
}
|
||||
]
|
||||
},
|
||||
"quality": 1,
|
||||
"authoredBy": {
|
||||
"displayName": "David Kalmin",
|
||||
"url": "https://spsprodcus5.vssps.visualstudio.com/A8ceff4ff-6429-4de3-9c39-fd7f0b1fb05a/_apis/Identities/a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"_links": {
|
||||
"avatar": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
}
|
||||
},
|
||||
"quality": 1,
|
||||
"authoredBy": {
|
||||
"displayName": "David Kalmin",
|
||||
"url": "https://spsprodcus5.vssps.visualstudio.com/A8ceff4ff-6429-4de3-9c39-fd7f0b1fb05a/_apis/Identities/a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"_links": {
|
||||
"avatar": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
}
|
||||
},
|
||||
"id": "a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"uniqueName": "[email protected]",
|
||||
"imageUrl": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0",
|
||||
"descriptor": "aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
"id": "a886d3a4-5700-6920-a3e4-6dadf46e7614",
|
||||
"uniqueName": "[email protected]",
|
||||
"imageUrl": "https://dev.azure.com/microsoft-bootcamp/_apis/GraphProfile/MemberAvatars/aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0",
|
||||
"descriptor": "aad.YTg4NmQzYTQtNTcwMC03OTIwLWEzZTQtNmRhZGY0NmU3NjE0"
|
||||
},
|
||||
"drafts": [],
|
||||
"queue": {
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126"
|
||||
}
|
||||
},
|
||||
"drafts": [],
|
||||
"queue": {
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126"
|
||||
}
|
||||
},
|
||||
"name": "Azure Pipelines",
|
||||
"url": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126",
|
||||
"pool": {
|
||||
"name": "Azure Pipelines",
|
||||
"isHosted": true
|
||||
}
|
||||
},
|
||||
"id": 10,
|
||||
"name": "valet-classic-test-import2",
|
||||
"uri": "vstfs:///Build/Definition/10",
|
||||
"path": "\\",
|
||||
"type": 2,
|
||||
"queueStatus": 0,
|
||||
"revision": 1,
|
||||
"createdDate": "2022-02-17T19:05:52.500Z",
|
||||
"name": "Azure Pipelines",
|
||||
"url": "https://dev.azure.com/microsoft-bootcamp/_apis/build/Queues/126",
|
||||
"pool": {
|
||||
"name": "Azure Pipelines",
|
||||
"isHosted": true
|
||||
}
|
||||
},
|
||||
"id": 10,
|
||||
"name": "valet-classic-test-import2",
|
||||
"uri": "vstfs:///Build/Definition/10",
|
||||
"path": "\\",
|
||||
"type": 2,
|
||||
"queueStatus": 0,
|
||||
"revision": 1,
|
||||
"createdDate": "2022-02-17T19:05:52.500Z"
|
||||
}
|
||||
|
||||
Executable
+178
@@ -0,0 +1,178 @@
|
||||
#!/usr/bin/env ruby
|
||||
require "json"
|
||||
require "net/http"
|
||||
require "optparse"
|
||||
require "pathname"
|
||||
require "pry"
|
||||
|
||||
options = {
|
||||
code_assets_dir: "code",
|
||||
pipeline_assets_dir: "pipelines",
|
||||
root_dir: File.join(ENV["CODESPACE_VSCODE_FOLDER"], "azure_devops/bootstrap")
|
||||
}
|
||||
|
||||
OptionParser.new do |opt|
|
||||
opt.on('--organization ORGANIZATION') { |o| options[:organization] = o }
|
||||
opt.on('--project PROJECT') { |o| options[:project] = o }
|
||||
opt.on('--access-token ACCESS_TOKEN') { |o| options[:access_token] = o }
|
||||
end.parse!
|
||||
|
||||
[:organization, :project, :access_token].each do |key|
|
||||
raise OptionParser::MissingArgument, key if options[key].nil?
|
||||
end
|
||||
|
||||
def post_request(uri, body, access_token)
|
||||
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
||||
request = Net::HTTP::Post.new(uri)
|
||||
request.basic_auth "", access_token
|
||||
request.body = body.to_json
|
||||
request.content_type = 'application/json'
|
||||
|
||||
response = http.request request
|
||||
|
||||
yield(response) if block_given?
|
||||
|
||||
sleep(5)
|
||||
|
||||
JSON.parse(response.body)
|
||||
end
|
||||
end
|
||||
|
||||
def create_project(options)
|
||||
organization = options[:organization]
|
||||
project = options[:project]
|
||||
access_token = options[:access_token]
|
||||
|
||||
puts "Creating project #{project} in organization #{organization}..."
|
||||
uri = URI("https://dev.azure.com/#{organization}/_apis/projects?api-version=6.0")
|
||||
|
||||
project_to_create = {
|
||||
name: project,
|
||||
description: "Project to be used for Valet Labs",
|
||||
capabilities: {
|
||||
versioncontrol: {
|
||||
sourceControlType: "Git"
|
||||
},
|
||||
processTemplate: {
|
||||
templateTypeId: "6b724908-ef14-45cf-84f8-768b5384da45"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post_request(uri, project_to_create, access_token) do |response|
|
||||
raise "Error creating project (#{response.code}:#{response.message})" unless response.code.start_with?("20")
|
||||
end
|
||||
end
|
||||
|
||||
def create_repository(options)
|
||||
organization = options[:organization]
|
||||
project = options[:project]
|
||||
# use the default repository created when the project is created
|
||||
repository = options[:project]
|
||||
access_token = options[:access_token]
|
||||
root_dir = options[:root_dir]
|
||||
directories = [options[:code_assets_dir], options[:pipeline_assets_dir]]
|
||||
|
||||
puts "Creating repository #{repository}..."
|
||||
uri = URI("https://dev.azure.com/#{organization}/#{project}/_apis/git/repositories/#{repository}/pushes?api-version=7.1-preview.2")
|
||||
|
||||
root = Pathname.new(root_dir)
|
||||
repository_to_create = {
|
||||
refUpdates: [{
|
||||
name: "refs/heads/main",
|
||||
oldObjectId: "0000000000000000000000000000000000000000"
|
||||
}],
|
||||
commits: [{
|
||||
comment: "Initial commit.",
|
||||
changes: directories.map do |directory|
|
||||
Dir[File.join(root_dir, directory, "**/*")].reject {|f| File.directory?(f) }.map do |entry|
|
||||
{
|
||||
changeType: "add",
|
||||
item: {
|
||||
path: File.join("/", Pathname.new(entry).relative_path_from(root).to_s)
|
||||
},
|
||||
newContent: {
|
||||
content: File.read(entry),
|
||||
contentType: "rawText"
|
||||
}
|
||||
}
|
||||
end
|
||||
end.flatten
|
||||
}]
|
||||
}
|
||||
|
||||
post_request(uri, repository_to_create, access_token) do |response|
|
||||
raise "Error creating repository (#{response.code}:#{response.message})" unless response.code.start_with?("20")
|
||||
end
|
||||
end
|
||||
|
||||
def create_yaml_pipelines(options, repository)
|
||||
organization = options[:organization]
|
||||
project = options[:project]
|
||||
repository_name = repository.dig("repository", "name")
|
||||
repository_id = repository.dig("repository", "id")
|
||||
access_token = options[:access_token]
|
||||
root_dir = options[:root_dir]
|
||||
pipeline_assets_dir = options[:pipeline_assets_dir]
|
||||
|
||||
puts "Creating yaml pipelines..."
|
||||
|
||||
uri = URI("https://dev.azure.com/#{organization}/#{project}/_apis/pipelines?api-version=6.0-preview.1")
|
||||
root = Pathname.new(root_dir)
|
||||
Dir[File.join(root_dir, pipeline_assets_dir, "yml", "*")].each do |entry|
|
||||
puts "Creating pipeline #{entry}..."
|
||||
|
||||
pipeline_to_create = {
|
||||
folder: "pipelines",
|
||||
name: File.basename(entry, ".yml"),
|
||||
configuration: {
|
||||
type: "yaml",
|
||||
path: File.join("/", Pathname.new(entry).relative_path_from(root).to_s),
|
||||
repository: {
|
||||
id: repository_id,
|
||||
name: repository_name,
|
||||
type: "azureReposGit"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post_request(uri, pipeline_to_create, access_token) do |response|
|
||||
raise "Error creating pipeline (#{response.code}:#{response.message})" unless response.code.start_with?("20")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def create_classic_pipelines(options, repository)
|
||||
organization = options[:organization]
|
||||
project = options[:project]
|
||||
repository_name = repository.dig("repository", "name")
|
||||
repository_id = repository.dig("repository", "id")
|
||||
access_token = options[:access_token]
|
||||
root_dir = options[:root_dir]
|
||||
pipeline_assets_dir = options[:pipeline_assets_dir]
|
||||
|
||||
puts "Creating classic pipelines..."
|
||||
|
||||
uri = URI("https://dev.azure.com/#{organization}/#{project}/_apis/build/definitions?api-version=7.1-preview.7")
|
||||
root = Pathname.new(root_dir)
|
||||
Dir[File.join(root_dir, pipeline_assets_dir, "classic", "*")].each do |entry|
|
||||
puts "Creating pipeline #{entry}..."
|
||||
|
||||
pipeline_to_create = JSON.parse(File.read(entry))
|
||||
|
||||
pipeline_to_create["repository"]["name"] = repository_name
|
||||
pipeline_to_create["repository"]["id"] = repository_id
|
||||
|
||||
post_request(uri, pipeline_to_create, access_token) do |response|
|
||||
raise "Error creating pipeline (#{response.code}:#{response.message})" unless response.code.start_with?("20")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
create_project(options)
|
||||
repository = create_repository(options)
|
||||
create_yaml_pipelines(options, repository)
|
||||
create_classic_pipelines(options, repository)
|
||||
|
||||
puts "Success!"
|
||||
Reference in New Issue
Block a user