diff --git a/azure_devops/2-audit.md b/azure_devops/2-audit.md index 1a2d327..d9d58f9 100644 --- a/azure_devops/2-audit.md +++ b/azure_devops/2-audit.md @@ -28,7 +28,7 @@ You will now perform an audit against the bootstrapped Azure DevOps project. Ans 2. Run the following command from the root directory: ```bash - gh valet audit azure-devops --output-dir tmp/audit --namespace valet + gh valet audit azure-devops --output-dir tmp/audit ``` __Note__: The Azure DevOps organization and project name can be omitted from the `audit` command because they were persisted in the `.env.local` file in the [configure lab](./1-configure.md). You can optionally provide these arguments on the command line with the `--azure-devops-organization` and `--azure-devops-project` CLI options. @@ -172,4 +172,4 @@ Each pipeline will have a variety of files written that include: ### Next lab -[Perform a dry-run migration of an Azure DevOps pipeline](3-dry-run.md) +[Forecast potential build runner usage](3-forecast.md) diff --git a/azure_devops/6-forecast.md b/azure_devops/3-forecast.md similarity index 88% rename from azure_devops/6-forecast.md rename to azure_devops/3-forecast.md index 0937dba..cb188a9 100644 --- a/azure_devops/6-forecast.md +++ b/azure_devops/3-forecast.md @@ -26,9 +26,11 @@ Answer the following questions before running the `forecast` command: 2. Run the following command from the root directory: ```bash - gh valet forecast azure-devops --output-dir ./tmp/forecast_reports --azure-devops-project :project + gh valet forecast azure-devops --output-dir ./tmp/forecast_reports ``` + __Note__: The Azure DevOps organization and project name can be omitted from the `forecast` command because they were persisted in the `.env.local` file in the [configure lab](./1-configure.md). You can optionally provide these arguments on the command line with the `--azure-devops-organization` and `--azure-devops-project` CLI options. + 3. The command will output a message that says "No jobs found" because no jobs have been executed in your bootstrapped project. ![img](https://user-images.githubusercontent.com/18723510/187690315-6312088d-9888-4c55-9bbf-c6f2687fa547.png) @@ -40,7 +42,7 @@ Answer the following questions before running the `forecast` command: 5. Run the following `forecast` command while specifying the path to the sample json files: ```bash - gh valet forecast azure-devops -o ./tmp/forecast_reports --source-file-path azure_devops/bootstrap/jobs.json + gh valet forecast azure-devops --output-dir ./tmp/forecast_reports --source-file-path azure_devops/bootstrap/jobs.json ``` 6. The command will list all the files written to disk when the command succeeds. @@ -99,4 +101,4 @@ Additionally, these metrics are defined for each queue of runners defined in Azu ## Next steps -This concludes all labs for migrating Azure DevOps pipelines to Actions with Valet! +[Perform a dry-run migration of an Azure DevOps pipeline](4-dry-run.md) diff --git a/azure_devops/3-dry-run.md b/azure_devops/4-dry-run.md similarity index 95% rename from azure_devops/3-dry-run.md rename to azure_devops/4-dry-run.md index da6ac9a..dc15aac 100644 --- a/azure_devops/3-dry-run.md +++ b/azure_devops/4-dry-run.md @@ -13,7 +13,7 @@ In this lab you will use the `dry-run` command to convert an Azure DevOps pipeli You will perform a dry run for a pipeline in the bootstrapped Azure DevOps project. Answer the following questions before running this command: 1. What is the id of the pipeline to convert? - - __:id__. This id can be found by: + - __:pipeline_id__. This id can be found by: - Navigating to the build pipelines in the bootstrapped Azure DevOps project - Selecting the pipeline with the name "valet-pipeline1" - Inspecting the URL to locate the pipeline id @@ -27,7 +27,7 @@ You will perform a dry run for a pipeline in the bootstrapped Azure DevOps proje 2. Run the following command from the root directory: ```bash - gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id -o tmp/dry-run-lab + gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id --output-dir tmp/dry-run-lab ``` 3. The command will list all the files written to disk when the command succeeds. @@ -90,4 +90,4 @@ Despite these two pipelines using different syntax they will function equivalent ## Next lab -[Use custom transformers to customize Valet's behavior](./4-custom-transformers.md) +[Use custom transformers to customize Valet's behavior](./5-custom-transformers.md) diff --git a/azure_devops/4-custom-transformers.md b/azure_devops/5-custom-transformers.md similarity index 98% rename from azure_devops/4-custom-transformers.md rename to azure_devops/5-custom-transformers.md index e3edce9..c46a28b 100644 --- a/azure_devops/4-custom-transformers.md +++ b/azure_devops/5-custom-transformers.md @@ -33,7 +33,7 @@ You will perform a dry-run for a pipeline in the bootstrapped Azure DevOps proje 2. Run the following command from the root directory: ```bash - gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id -o tmp/dry-run-lab + gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id --output-dir tmp/dry-run-lab ``` 3. The command will list all the files written to disk when the command succeeds. @@ -127,7 +127,7 @@ This method can use any valid ruby syntax and should return a `Hash` that repres Now you can perform another `dry-run` command and use the `--custom-transformers` CLI option to provide this custom transformer. Run the following command within your codespace terminal: ```bash -gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id -o tmp/dry-run-lab --custom-transformers transformers.rb +gh valet dry-run azure-devops pipeline --pipeline-id :pipeline_id --output-dir tmp/dry-run-lab --custom-transformers transformers.rb ``` Open the workflow that is generated and inspect the contents. Now the `DotnetCoreCLI@2` steps are converted using the customized behavior! @@ -232,4 +232,4 @@ That's it! At this point you have overridden Valet's default behavior by customi ## Next lab -[Perform a production migration of an Azure DevOps pipeline](5-migrate.md) +[Perform a production migration of an Azure DevOps pipeline](6-migrate.md) diff --git a/azure_devops/5-migrate.md b/azure_devops/6-migrate.md similarity index 97% rename from azure_devops/5-migrate.md rename to azure_devops/6-migrate.md index 43e17a1..f735447 100644 --- a/azure_devops/5-migrate.md +++ b/azure_devops/6-migrate.md @@ -57,4 +57,4 @@ At this point, the migration has completed and you have successfully migrated an ### Next lab -[Forecast potential build runner usage](6-forecast.md) +This concludes all labs for migrating Azure DevOps pipelines to Actions with Valet! diff --git a/azure_devops/bootstrap/azure_devops.tgz b/azure_devops/bootstrap/azure_devops.tgz new file mode 100644 index 0000000..cdc27b2 Binary files /dev/null and b/azure_devops/bootstrap/azure_devops.tgz differ diff --git a/azure_devops/bootstrap/code/Bootcamp.sln b/azure_devops/bootstrap/code/Bootcamp.sln deleted file mode 100644 index 005c7db..0000000 --- a/azure_devops/bootstrap/code/Bootcamp.sln +++ /dev/null @@ -1,56 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B26D43AA-4A35-4035-9E99-48EF9A3E64DD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Attendee", "src\Attendee\Attendee.csproj", "{2804EC63-670C-4970-85E4-2A63C9327FF8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{348A52EC-7046-4D1A-88DB-55B025C2BB68}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AttendeeTest", "test\AttendeeTest\AttendeeTest.csproj", "{DED76823-F195-46D4-8509-5692E3431D53}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|x64.ActiveCfg = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|x64.Build.0 = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|x86.ActiveCfg = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Debug|x86.Build.0 = Debug|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|Any CPU.Build.0 = Release|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|x64.ActiveCfg = Release|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|x64.Build.0 = Release|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|x86.ActiveCfg = Release|Any CPU - {2804EC63-670C-4970-85E4-2A63C9327FF8}.Release|x86.Build.0 = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|x64.ActiveCfg = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|x64.Build.0 = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|x86.ActiveCfg = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Debug|x86.Build.0 = Debug|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|Any CPU.Build.0 = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|x64.ActiveCfg = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|x64.Build.0 = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|x86.ActiveCfg = Release|Any CPU - {DED76823-F195-46D4-8509-5692E3431D53}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2804EC63-670C-4970-85E4-2A63C9327FF8} = {B26D43AA-4A35-4035-9E99-48EF9A3E64DD} - {DED76823-F195-46D4-8509-5692E3431D53} = {348A52EC-7046-4D1A-88DB-55B025C2BB68} - EndGlobalSection -EndGlobal diff --git a/azure_devops/bootstrap/code/src/Attendee/Attendee.cs b/azure_devops/bootstrap/code/src/Attendee/Attendee.cs deleted file mode 100644 index 5fd4008..0000000 --- a/azure_devops/bootstrap/code/src/Attendee/Attendee.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Attendees -{ - public class Attendee - { - public bool AddAttendee(string added) - { - if (added == "exists") - return true; - - return false; - } - } -} diff --git a/azure_devops/bootstrap/code/src/Attendee/Attendee.csproj b/azure_devops/bootstrap/code/src/Attendee/Attendee.csproj deleted file mode 100644 index f208d30..0000000 --- a/azure_devops/bootstrap/code/src/Attendee/Attendee.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - - net5.0 - - - diff --git a/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeExists.cs b/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeExists.cs deleted file mode 100644 index 12134ca..0000000 --- a/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeExists.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using Xunit; -using Xunit.Extensions; -using Attendees; - -namespace AttendeeTest -{ - public class AttendeeTest - { - [Fact] - public void AttendeeExistsReturnTrue() - { - Attendee attendee = new Attendee(); - bool doesExist = attendee.AddAttendee("doesnotexist"); - Assert.False(doesExist, "The attendee does not exist"); - } - } -} diff --git a/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeTest.csproj b/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeTest.csproj deleted file mode 100644 index 8f533dd..0000000 --- a/azure_devops/bootstrap/code/test/AttendeeTest/AttendeeTest.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - net5.0 - - false - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/azure_devops/bootstrap/jobs.json b/azure_devops/bootstrap/jobs.json deleted file mode 100644 index c44cdaf..0000000 --- a/azure_devops/bootstrap/jobs.json +++ /dev/null @@ -1,1262 +0,0 @@ -[ - { - "id": "011e1ec8-6569-5e69-4f06-baf193d1351e", - "request_id": 4278, - "build_id": 4567, - "build_number": "20220405.1", - "result": "succeeded", - "queue_time": "2022-09-01T17:43:43.73Z", - "start_time": "2022-09-01T17:43:46.2405003Z", - "finish_time": "2022-09-01T17:44:41.4733333Z", - "assign_time": "2022-09-01T17:43:43.98Z", - "definition_id": 220, - "runner_name": "MacBook", - "os_description": "Darwin", - "runner_group": "Default" - }, - { - "id": "011e1ec8-6569-5e69-4f06-baf193d1351e", - "request_id": 4273, - "build_id": 4558, - "build_number": "20220405.2", - "result": "succeeded", - "queue_time": "2022-09-01T00:29:56.47Z", - "start_time": "2022-09-01T00:29:59.3679242Z", - "finish_time": "2022-09-01T00:30:21.0533333Z", - "assign_time": "2022-09-01T00:29:56.6966667Z", - "definition_id": 217, - "runner_name": "MacBook", - "os_description": "Darwin", - "runner_group": "Default" - }, - { - "id": "011e1ec8-6569-5e69-4f06-baf193d1351e", - "request_id": 4272, - "build_id": 4556, - "build_number": "20220405.1", - "result": "succeeded", - "queue_time": "2022-09-01T00:26:22.6266667Z", - "start_time": "2022-09-01T00:26:25.2735844Z", - "finish_time": "2022-09-01T00:26:51.95Z", - "assign_time": "2022-09-01T00:26:22.6733333Z", - "definition_id": 217, - "runner_name": "MacBook", - "os_description": "Darwin", - "runner_group": "Default" - }, - { - "id": "ca395085-040a-526b-2ce8-bdc85f692774", - "request_id": 4954, - "build_id": 5151, - "build_number": "20220819.1", - "result": "failed", - "queue_time": "2022-09-01T16:58:13.8166667Z", - "start_time": "2022-09-01T16:58:25.0096333Z", - "finish_time": "2022-09-01T16:58:47.5866667Z", - "assign_time": "2022-09-01T16:58:14.25Z", - "definition_id": 51, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "f8252943-765e-554e-090d-5571acebf4bb", - "request_id": 4953, - "build_id": 5150, - "build_number": "20220811.1", - "result": "succeeded", - "queue_time": "2022-09-01T03:00:36.7433333Z", - "start_time": "2022-09-01T03:00:48.3427295Z", - "finish_time": "2022-09-01T03:01:48.44Z", - "assign_time": "2022-09-01T03:00:36.98Z", - "definition_id": 135, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4952, - "build_id": 5149, - "build_number": "20220810.8", - "result": "succeeded", - "queue_time": "2022-09-01T22:24:17.5133333Z", - "start_time": "2022-09-01T22:28:41.8831876Z", - "finish_time": "2022-09-01T22:31:12.17Z", - "assign_time": "2022-09-01T22:28:28.5333333Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4951, - "build_id": 5145, - "build_number": "20220810.7", - "result": "succeeded", - "queue_time": "2022-09-01T22:24:16.2266667Z", - "start_time": "2022-09-01T22:24:32.7143159Z", - "finish_time": "2022-09-01T22:28:27.7133333Z", - "assign_time": "2022-09-01T22:24:16.2633333Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4950, - "build_id": 5144, - "build_number": "20220810.6", - "result": "failed", - "queue_time": "2022-09-01T22:16:23.8866667Z", - "start_time": "2022-09-01T22:18:53.7076646Z", - "finish_time": "2022-09-01T22:21:10.2933333Z", - "assign_time": "2022-09-01T22:18:36.9166667Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4949, - "build_id": 5143, - "build_number": "20220810.5", - "result": "failed", - "queue_time": "2022-09-01T22:10:05.1666667Z", - "start_time": "2022-09-01T22:15:12.6511213Z", - "finish_time": "2022-09-01T22:18:36.0266667Z", - "assign_time": "2022-09-01T22:14:53.49Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4948, - "build_id": 5139, - "build_number": "20220810.4", - "result": "failed", - "queue_time": "2022-09-01T23:09:36.2133333Z", - "start_time": "2022-09-01T23:11:57.7706354Z", - "finish_time": "2022-09-01T23:14:52.64Z", - "assign_time": "2022-09-01T23:11:41.84Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4947, - "build_id": 5135, - "build_number": "20220810.3", - "result": "failed", - "queue_time": "2022-09-01T23:08:11.87Z", - "start_time": "2022-09-01T23:09:49.6121805Z", - "finish_time": "2022-09-01T23:11:41.2033333Z", - "assign_time": "2022-09-01T22:09:38.72Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4946, - "build_id": 5131, - "build_number": "20220810.2", - "result": "failed", - "queue_time": "2022-09-01T22:07:03.78Z", - "start_time": "2022-09-01T22:07:24.865421Z", - "finish_time": "2022-09-01T22:09:37.6433333Z", - "assign_time": "2022-09-01T22:07:04.03Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4945, - "build_id": 5127, - "build_number": "20220810.1", - "result": "failed", - "queue_time": "2022-09-01T22:05:16.8433333Z", - "start_time": "2022-09-01T22:05:40.1526981Z", - "finish_time": "2022-09-01T22:06:51.0533333Z", - "assign_time": "2022-09-01T22:05:16.9066667Z", - "definition_id": 391, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4944, - "build_id": 5120, - "build_number": "20220810.2", - "result": "failed", - "queue_time": "2022-09-01T20:54:58.1433333Z", - "start_time": "2022-09-01T20:55:56.6551759Z", - "finish_time": "2022-09-01T20:56:27.06Z", - "assign_time": "2022-09-01T20:55:43.2933333Z", - "definition_id": 382, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4943, - "build_id": 5117, - "build_number": "20220810.1", - "result": "failed", - "queue_time": "2022-09-01T20:54:52.31Z", - "start_time": "2022-09-01T20:55:09.3477439Z", - "finish_time": "2022-09-01T20:55:42.0333333Z", - "assign_time": "2022-09-01T20:54:52.3666667Z", - "definition_id": 382, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4941, - "build_id": 5115, - "build_number": "20220808.1", - "result": "failed", - "queue_time": "2022-09-01T17:56:30.37Z", - "start_time": "2022-09-01T17:56:48.1800943Z", - "finish_time": "2022-09-01T17:57:29.7733333Z", - "assign_time": "2022-09-01T17:56:30.4Z", - "definition_id": 382, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4940, - "build_id": 5112, - "build_number": "5112", - "result": "succeeded", - "queue_time": "2022-09-01T17:51:29.1566667Z", - "start_time": "2022-09-01T17:51:47.1020425Z", - "finish_time": "2022-09-01T17:52:37.01Z", - "assign_time": "2022-09-01T17:51:29.22Z", - "definition_id": 389, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "cfa20e98-6997-523c-4233-f0a7302c929f", - "request_id": 4938, - "build_id": 5110, - "build_number": "5110", - "result": "succeeded", - "queue_time": "2022-09-01T23:37:25.4433333Z", - "start_time": "2022-09-01T23:39:01.1647409Z", - "finish_time": "2022-09-01T23:39:53.2166667Z", - "assign_time": "2022-09-01T23:38:49.5033333Z", - "definition_id": 381, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4937, - "build_id": 5110, - "build_number": "5110", - "result": "succeeded", - "queue_time": "2022-09-01T23:37:25.4233333Z", - "start_time": "2022-09-01T23:37:41.9972446Z", - "finish_time": "2022-09-01T23:38:48.7133333Z", - "assign_time": "2022-09-01T23:37:25.7066667Z", - "definition_id": 381, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "899a9724-4530-558a-15f1-375d2bccc79e", - "request_id": 4934, - "build_id": 5105, - "build_number": "20220725.2", - "result": "succeeded", - "queue_time": "2022-09-01T21:35:31.2933333Z", - "start_time": "2022-09-01T21:35:36.7385249Z", - "finish_time": "2022-09-01T21:36:30.7066667Z", - "assign_time": "2022-09-01T21:35:31.3466667Z", - "definition_id": 378, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "899a9724-4530-558a-15f1-375d2bccc79e", - "request_id": 4933, - "build_id": 5104, - "build_number": "20220725.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:50:01.22Z", - "start_time": "2022-09-01T20:50:07.4147643Z", - "finish_time": "2022-09-01T20:50:54.54Z", - "assign_time": "2022-09-01T20:50:01.46Z", - "definition_id": 378, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4931, - "build_id": 5101, - "build_number": "20220718.1", - "result": "succeeded", - "queue_time": "2022-09-01T18:45:50.1866667Z", - "start_time": "2022-09-01T18:45:56.8851106Z", - "finish_time": "2022-09-01T18:46:10.4233333Z", - "assign_time": "2022-09-01T18:45:50.28Z", - "definition_id": 380, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "96c60851-4ac0-512f-ac8a-daf36b6a2b26", - "request_id": 4930, - "build_id": 5100, - "build_number": "20220718.1", - "result": "succeeded", - "queue_time": "2022-09-01T18:43:47.0133333Z", - "start_time": "2022-09-01T18:44:44.683617Z", - "finish_time": "2022-09-01T18:44:57.0366667Z", - "assign_time": "2022-09-01T18:44:23.9933333Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ca395085-040a-526b-2ce8-bdc85f692774", - "request_id": 4929, - "build_id": 5100, - "build_number": "20220718.1", - "result": "succeeded", - "queue_time": "2022-09-01T18:43:46.7466667Z", - "start_time": "2022-09-01T18:44:11.1374529Z", - "finish_time": "2022-09-01T18:44:23.3633333Z", - "assign_time": "2022-09-01T18:44:04.8533333Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "341b3d8e-0d13-57d4-859b-65d31dcbc29e", - "request_id": 4928, - "build_id": 5100, - "build_number": "20220718.1", - "result": "succeeded", - "queue_time": "2022-09-01T18:43:46.7433333Z", - "start_time": "2022-09-01T18:43:53.5495773Z", - "finish_time": "2022-09-01T18:44:03.7166667Z", - "assign_time": "2022-09-01T18:43:46.7733333Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4927, - "build_id": 5098, - "build_number": "20220718.1", - "result": "succeeded", - "queue_time": "2022-09-01T18:40:39.23Z", - "start_time": "2022-09-01T18:40:49.010239Z", - "finish_time": "2022-09-01T18:41:32.5133333Z", - "assign_time": "2022-09-01T18:40:39.2966667Z", - "definition_id": 379, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "899a9724-4530-558a-15f1-375d2bccc79e", - "request_id": 4925, - "build_id": 5096, - "build_number": "20220715.1", - "result": "succeeded", - "queue_time": "2022-09-01T15:54:11.64Z", - "start_time": "2022-09-01T15:54:17.2876517Z", - "finish_time": "2022-09-01T15:55:05.1266667Z", - "assign_time": "2022-09-01T15:54:11.7066667Z", - "definition_id": 378, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "899a9724-4530-558a-15f1-375d2bccc79e", - "request_id": 4923, - "build_id": 5091, - "build_number": "20220714.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:44:28.6066667Z", - "start_time": "2022-09-01T20:44:37.1245218Z", - "finish_time": "2022-09-01T20:45:43.04Z", - "assign_time": "2022-09-01T20:44:28.9166667Z", - "definition_id": 378, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4921, - "build_id": 5089, - "build_number": "20220713.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:25:18.7966667Z", - "start_time": "2022-09-01T20:25:28.2135186Z", - "finish_time": "2022-09-01T20:26:16.3533333Z", - "assign_time": "2022-09-01T20:25:18.9966667Z", - "definition_id": 377, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4920, - "build_id": 5084, - "build_number": "20220713.1", - "result": "succeeded", - "queue_time": "2022-09-01T13:46:02.8033333Z", - "start_time": "2022-09-01T13:47:12.5184633Z", - "finish_time": "2022-09-01T13:47:53.0966667Z", - "assign_time": "2022-09-01T13:47:03.9233333Z", - "definition_id": 373, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4919, - "build_id": 5083, - "build_number": "20220713.1", - "result": "failed", - "queue_time": "2022-09-01T13:46:01.12Z", - "start_time": "2022-09-01T13:46:13.2306562Z", - "finish_time": "2022-09-01T13:47:02.71Z", - "assign_time": "2022-09-01T13:46:01.1766667Z", - "definition_id": 372, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4918, - "build_id": 5080, - "build_number": "20220712.1", - "result": "failed", - "queue_time": "2022-09-01T17:06:15.5033333Z", - "start_time": "2022-09-01T17:06:26.1795208Z", - "finish_time": "2022-09-01T17:06:55.86Z", - "assign_time": "2022-09-01T17:06:15.74Z", - "definition_id": 376, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4917, - "build_id": 5079, - "build_number": "20220712.1", - "result": "succeeded", - "queue_time": "2022-09-01T14:48:45.8033333Z", - "start_time": "2022-09-01T14:48:52.8152685Z", - "finish_time": "2022-09-01T14:49:43.0233333Z", - "assign_time": "2022-09-01T14:48:46.3166667Z", - "definition_id": 375, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ca395085-040a-526b-2ce8-bdc85f692774", - "request_id": 4915, - "build_id": 5077, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T22:08:51.9533333Z", - "start_time": "2022-09-01T22:09:03.1483001Z", - "finish_time": "2022-09-01T22:09:24.9666667Z", - "assign_time": "2022-09-01T22:08:52.1566667Z", - "definition_id": 51, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4914, - "build_id": 5076, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:42:40.6Z", - "start_time": "2022-09-01T20:43:19.0923053Z", - "finish_time": "2022-09-01T20:43:30.9233333Z", - "assign_time": "2022-09-01T20:43:11.27Z", - "definition_id": 374, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "96c60851-4ac0-512f-ac8a-daf36b6a2b26", - "request_id": 4913, - "build_id": 5075, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:42:13.6133333Z", - "start_time": "2022-09-01T20:42:59.2918804Z", - "finish_time": "2022-09-01T20:43:10.2133333Z", - "assign_time": "2022-09-01T20:42:51.9266667Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ca395085-040a-526b-2ce8-bdc85f692774", - "request_id": 4912, - "build_id": 5075, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:42:13.5566667Z", - "start_time": "2022-09-01T20:42:39.2587562Z", - "finish_time": "2022-09-01T20:42:50.9533333Z", - "assign_time": "2022-09-01T20:42:30.8066667Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "341b3d8e-0d13-57d4-859b-65d31dcbc29e", - "request_id": 4911, - "build_id": 5075, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:42:13.5466667Z", - "start_time": "2022-09-01T20:42:20.169292Z", - "finish_time": "2022-09-01T20:42:30.1066667Z", - "assign_time": "2022-09-01T20:42:13.5933333Z", - "definition_id": 197, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4910, - "build_id": 5073, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T20:40:33.65Z", - "start_time": "2022-09-01T20:40:39.6509289Z", - "finish_time": "2022-09-01T20:41:39.77Z", - "assign_time": "2022-09-01T20:40:33.88Z", - "definition_id": 373, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4909, - "build_id": 5072, - "build_number": "20220711.1", - "result": "canceled", - "queue_time": "2022-09-01T15:02:41.43Z", - "start_time": "2022-09-01T15:02:52.8313534Z", - "finish_time": "2022-09-01T15:02:58.06Z", - "assign_time": "2022-09-01T15:02:41.4766667Z", - "definition_id": 372, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4908, - "build_id": 5071, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:58:14.99Z", - "start_time": "2022-09-01T14:58:21.4957133Z", - "finish_time": "2022-09-01T14:58:41.8933333Z", - "assign_time": "2022-09-01T14:58:15.0266667Z", - "definition_id": 371, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4907, - "build_id": 5070, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:31:09.8066667Z", - "start_time": "2022-09-01T14:31:24.8007924Z", - "finish_time": "2022-09-01T14:31:59.3633333Z", - "assign_time": "2022-09-01T14:31:09.8633333Z", - "definition_id": 370, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4906, - "build_id": 5069, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:28:25.6866667Z", - "start_time": "2022-09-01T14:28:32.763647Z", - "finish_time": "2022-09-01T14:28:46.5933333Z", - "assign_time": "2022-09-01T14:28:25.73Z", - "definition_id": 369, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "76ed1102-9071-5354-720f-6f09bbc9f0c0", - "request_id": 4905, - "build_id": 5068, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:24:10.3233333Z", - "start_time": "2022-09-01T14:25:07.2541035Z", - "finish_time": "2022-09-01T14:25:34.6333333Z", - "assign_time": "2022-09-01T14:25:00.7966667Z", - "definition_id": 368, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "00b6a206-eb91-585b-3d14-cf1a4d7b1970", - "request_id": 4904, - "build_id": 5068, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:24:10.15Z", - "start_time": "2022-09-01T14:24:42.1401754Z", - "finish_time": "2022-09-01T14:25:00.07Z", - "assign_time": "2022-09-01T14:24:34.3Z", - "definition_id": 368, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "19c563d8-3dcd-57d1-cd5e-9dd946b0a29b", - "request_id": 4903, - "build_id": 5068, - "build_number": "20220711.1", - "result": "failed", - "queue_time": "2022-09-01T14:24:10.14Z", - "start_time": "2022-09-01T14:24:16.1904439Z", - "finish_time": "2022-09-01T14:24:33.44Z", - "assign_time": "2022-09-01T14:24:10.17Z", - "definition_id": 368, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4902, - "build_id": 5067, - "build_number": "20220711.1", - "result": "succeeded", - "queue_time": "2022-09-01T14:18:10.19Z", - "start_time": "2022-09-01T14:18:18.3555844Z", - "finish_time": "2022-09-01T14:19:22.6266667Z", - "assign_time": "2022-09-01T14:18:10.3466667Z", - "definition_id": 367, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "6a659b14-a5ad-5ce8-05ff-9105f4d16f55", - "request_id": 4901, - "build_id": 107, - "build_number": "Release-1 / Stage 1", - "result": "succeeded", - "queue_time": "2022-09-01T20:15:02.33Z", - "start_time": "2022-09-01T20:15:43.3995066Z", - "finish_time": "2022-09-01T20:15:51.7133333Z", - "assign_time": "2022-09-01T20:15:32.3933333Z", - "definition_id": 14, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "3b770d45-ae29-59a7-a774-67c6a1476782", - "request_id": 4900, - "build_id": 108, - "build_number": "Release-1 / Stage 2", - "result": "succeeded", - "queue_time": "2022-09-01T20:14:52.4266667Z", - "start_time": "2022-09-01T20:15:10.1184454Z", - "finish_time": "2022-09-01T20:15:31.55Z", - "assign_time": "2022-09-01T20:14:52.7866667Z", - "definition_id": 14, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4899, - "build_id": 5066, - "build_number": "5066", - "result": "succeeded", - "queue_time": "2022-09-01T13:49:34.8366667Z", - "start_time": "2022-09-01T13:49:44.5760594Z", - "finish_time": "2022-09-01T13:52:18.75Z", - "assign_time": "2022-09-01T13:49:35.0133333Z", - "definition_id": 366, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4898, - "build_id": 5065, - "build_number": "5065", - "result": "succeeded", - "queue_time": "2022-09-01T13:20:41.41Z", - "start_time": "2022-09-01T13:20:48.1950176Z", - "finish_time": "2022-09-01T13:24:58.39Z", - "assign_time": "2022-09-01T13:20:41.4533333Z", - "definition_id": 365, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4897, - "build_id": 5064, - "build_number": "5064", - "result": "succeeded", - "queue_time": "2022-09-01T12:35:50.17Z", - "start_time": "2022-09-01T12:35:57.4102501Z", - "finish_time": "2022-09-01T12:39:10.7633333Z", - "assign_time": "2022-09-01T12:35:50.23Z", - "definition_id": 365, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "f8252943-765e-554e-090d-5571acebf4bb", - "request_id": 4896, - "build_id": 5063, - "build_number": "20220630.1", - "result": "succeeded", - "queue_time": "2022-09-01T03:00:17.8733333Z", - "start_time": "2022-09-01T03:00:26.8409899Z", - "finish_time": "2022-09-01T03:01:50.0266667Z", - "assign_time": "2022-09-01T03:00:17.91Z", - "definition_id": 135, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4895, - "build_id": 5061, - "build_number": "20220629.2", - "result": "succeeded", - "queue_time": "2022-09-01T19:51:17.76Z", - "start_time": "2022-09-01T19:51:23.9334952Z", - "finish_time": "2022-09-01T19:52:46.86Z", - "assign_time": "2022-09-01T19:51:17.82Z", - "definition_id": 364, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4894, - "build_id": 5058, - "build_number": "20220629.1", - "result": "succeeded", - "queue_time": "2022-09-01T19:41:00.17Z", - "start_time": "2022-09-01T19:41:08.6550627Z", - "finish_time": "2022-09-01T19:44:41.7466667Z", - "assign_time": "2022-09-01T19:41:00.45Z", - "definition_id": 364, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "f8252943-765e-554e-090d-5571acebf4bb", - "request_id": 4893, - "build_id": 5054, - "build_number": "20220629.1", - "result": "succeeded", - "queue_time": "2022-09-01T03:00:36.52Z", - "start_time": "2022-09-01T03:00:45.436629Z", - "finish_time": "2022-09-01T03:01:57.1366667Z", - "assign_time": "2022-09-01T03:00:36.56Z", - "definition_id": 135, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "bae70de3-1eac-5ef9-ecf5-c0635ec73bc0", - "request_id": 4892, - "build_id": 5052, - "build_number": "20220628.7", - "result": "succeeded", - "queue_time": "2022-09-01T19:11:13.5933333Z", - "start_time": "2022-09-01T19:11:21.6684563Z", - "finish_time": "2022-09-01T19:12:21.8866667Z", - "assign_time": "2022-09-01T19:11:13.6466667Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "bae70de3-1eac-5ef9-ecf5-c0635ec73bc0", - "request_id": 4891, - "build_id": 5051, - "build_number": "20220628.6", - "result": "succeeded", - "queue_time": "2022-09-01T16:45:46.73Z", - "start_time": "2022-09-01T16:45:56.8715565Z", - "finish_time": "2022-09-01T16:46:56.2666667Z", - "assign_time": "2022-09-01T16:45:46.7633333Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "bae70de3-1eac-5ef9-ecf5-c0635ec73bc0", - "request_id": 4890, - "build_id": 5050, - "build_number": "20220628.5", - "result": "failed", - "queue_time": "2022-09-01T16:42:49.2Z", - "start_time": "2022-09-01T16:42:54.4510649Z", - "finish_time": "2022-09-01T16:43:09.88Z", - "assign_time": "2022-09-01T16:42:49.2266667Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "bae70de3-1eac-5ef9-ecf5-c0635ec73bc0", - "request_id": 4889, - "build_id": 5049, - "build_number": "20220628.4", - "result": "failed", - "queue_time": "2022-09-01T16:38:35.2Z", - "start_time": "2022-09-01T16:38:41.1860027Z", - "finish_time": "2022-09-01T16:38:56.49Z", - "assign_time": "2022-09-01T16:38:35.2633333Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "2831d33e-84dd-5533-eda0-8105954f1bc8", - "request_id": 4888, - "build_id": 5048, - "build_number": "20220628.3", - "result": "succeeded", - "queue_time": "2022-09-01T16:31:50.58Z", - "start_time": "2022-09-01T16:31:56.974368Z", - "finish_time": "2022-09-01T16:32:57.4933333Z", - "assign_time": "2022-09-01T16:31:50.6066667Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "2831d33e-84dd-5533-eda0-8105954f1bc8", - "request_id": 4887, - "build_id": 5047, - "build_number": "20220628.2", - "result": "succeeded", - "queue_time": "2022-09-01T16:27:16.41Z", - "start_time": "2022-09-01T16:27:25.7030557Z", - "finish_time": "2022-09-01T16:28:07.04Z", - "assign_time": "2022-09-01T16:27:16.68Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "2831d33e-84dd-5533-eda0-8105954f1bc8", - "request_id": 4886, - "build_id": 5046, - "build_number": "20220628.1", - "result": "succeeded", - "queue_time": "2022-09-01T16:10:15.1866667Z", - "start_time": "2022-09-01T16:10:22.632602Z", - "finish_time": "2022-09-01T16:11:00.95Z", - "assign_time": "2022-09-01T16:10:15.4566667Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "f8252943-765e-554e-090d-5571acebf4bb", - "request_id": 4885, - "build_id": 5045, - "build_number": "20220628.1", - "result": "succeeded", - "queue_time": "2022-09-01T03:00:17.8566667Z", - "start_time": "2022-09-01T03:00:30.6344983Z", - "finish_time": "2022-09-01T03:01:10.2466667Z", - "assign_time": "2022-09-01T03:00:17.8966667Z", - "definition_id": 135, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "2831d33e-84dd-5533-eda0-8105954f1bc8", - "request_id": 4884, - "build_id": 5043, - "build_number": "20220627.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:47:08.16Z", - "start_time": "2022-09-01T17:47:15.987734Z", - "finish_time": "2022-09-01T17:50:44.12Z", - "assign_time": "2022-09-01T17:47:08.4933333Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ca395085-040a-526b-2ce8-bdc85f692774", - "request_id": 4883, - "build_id": 5042, - "build_number": "20220627.1", - "result": "canceled", - "queue_time": "2022-09-01T17:26:33.07Z", - "start_time": "2022-09-01T17:26:39.6690274Z", - "finish_time": "2022-09-01T17:26:55.87Z", - "assign_time": "2022-09-01T17:26:33.49Z", - "definition_id": 168, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "12f1170f-54f2-53f3-20dd-22fc7dff55f9", - "request_id": 4882, - "build_id": 5035, - "build_number": "20220627.1", - "result": "succeeded", - "queue_time": "2022-09-01T16:21:06.4833333Z", - "start_time": "2022-09-01T16:21:11.8349063Z", - "finish_time": "2022-09-01T16:21:58.5633333Z", - "assign_time": "2022-09-01T16:21:06.54Z", - "definition_id": 363, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "a528ef4b-e2e0-565b-271a-65845573d880", - "request_id": 4871, - "build_id": 5032, - "build_number": "20220623.1", - "result": "canceled", - "queue_time": "2022-09-01T00:30:56.79Z", - "start_time": "2022-09-01T00:31:01.9918715Z", - "finish_time": "2022-09-01T00:31:19.5833333Z", - "assign_time": "2022-09-01T00:30:56.8533333Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4870, - "build_id": 5031, - "build_number": "5031", - "result": "succeeded", - "queue_time": "2022-09-01T18:52:57.21Z", - "start_time": "2022-09-01T18:54:41.9650756Z", - "finish_time": "2022-09-01T18:55:41.29Z", - "assign_time": "2022-09-01T18:54:25.0866667Z", - "definition_id": 361, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "cfa20e98-6997-523c-4233-f0a7302c929f", - "request_id": 4869, - "build_id": 5031, - "build_number": "5031", - "result": "succeeded", - "queue_time": "2022-09-01T18:52:57.2Z", - "start_time": "2022-09-01T18:53:14.9752109Z", - "finish_time": "2022-09-01T18:54:24.2033333Z", - "assign_time": "2022-09-01T18:52:57.2233333Z", - "definition_id": 361, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4868, - "build_id": 5029, - "build_number": "5029", - "result": "succeeded", - "queue_time": "2022-09-01T13:01:36.7433333Z", - "start_time": "2022-09-01T13:03:00.7879139Z", - "finish_time": "2022-09-01T13:03:57.8833333Z", - "assign_time": "2022-09-01T13:02:40.4833333Z", - "definition_id": 360, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "cfa20e98-6997-523c-4233-f0a7302c929f", - "request_id": 4867, - "build_id": 5029, - "build_number": "5029", - "result": "succeeded", - "queue_time": "2022-09-01T13:01:36.48Z", - "start_time": "2022-09-01T13:01:51.5040284Z", - "finish_time": "2022-09-01T13:02:39.8466667Z", - "assign_time": "2022-09-01T13:01:36.9533333Z", - "definition_id": 360, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "f8252943-765e-554e-090d-5571acebf4bb", - "request_id": 4866, - "build_id": 5028, - "build_number": "20220622.1", - "result": "succeeded", - "queue_time": "2022-09-01T03:00:34.3866667Z", - "start_time": "2022-09-01T03:00:42.8728772Z", - "finish_time": "2022-09-01T03:01:23.4566667Z", - "assign_time": "2022-09-01T03:00:34.5533333Z", - "definition_id": 135, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4865, - "build_id": 5027, - "build_number": "5027", - "result": "succeeded", - "queue_time": "2022-09-01T18:08:56.53Z", - "start_time": "2022-09-01T18:09:05.5510972Z", - "finish_time": "2022-09-01T18:09:53.5Z", - "assign_time": "2022-09-01T18:08:56.7066667Z", - "definition_id": 361, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "5daf491e-fc1d-52d4-3c36-b35e31684732", - "request_id": 4864, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:04:17.85Z", - "start_time": "2022-09-01T17:06:53.9745617Z", - "finish_time": "2022-09-01T17:07:25.3266667Z", - "assign_time": "2022-09-01T17:06:44.67Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ce39968d-2aee-58c0-6354-4429990bc777", - "request_id": 4863, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:03:33.3766667Z", - "start_time": "2022-09-01T17:06:01.1201953Z", - "finish_time": "2022-09-01T17:06:43.8966667Z", - "assign_time": "2022-09-01T17:05:54.9566667Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "2431e782-2f38-5ac4-c2f8-af294f6d514a", - "request_id": 4862, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:02:20.06Z", - "start_time": "2022-09-01T17:05:07.8148768Z", - "finish_time": "2022-09-01T17:05:54.32Z", - "assign_time": "2022-09-01T17:05:00.4Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "a528ef4b-e2e0-565b-271a-65845573d880", - "request_id": 4861, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:02:19.9Z", - "start_time": "2022-09-01T17:04:22.8635006Z", - "finish_time": "2022-09-01T17:04:59.4966667Z", - "assign_time": "2022-09-01T17:04:16.2166667Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "54beca5a-7b68-5580-ddd0-8aef5b91640f", - "request_id": 4860, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:02:18.9633333Z", - "start_time": "2022-09-01T17:03:35.4472694Z", - "finish_time": "2022-09-01T17:04:15.2066667Z", - "assign_time": "2022-09-01T17:03:27.2Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "7cb24041-3325-5b8a-c38d-87131110a6bf", - "request_id": 4859, - "build_id": 5026, - "build_number": "20220621.2", - "result": "succeeded", - "queue_time": "2022-09-01T17:02:17.9Z", - "start_time": "2022-09-01T17:02:51.4121619Z", - "finish_time": "2022-09-01T17:03:26.3666667Z", - "assign_time": "2022-09-01T17:02:43.3566667Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "275f1d19-1bd8-5591-b06b-07d489ea915a", - "request_id": 4858, - "build_id": 5025, - "build_number": "5025", - "result": "succeeded", - "queue_time": "2022-09-01T17:01:39.48Z", - "start_time": "2022-09-01T17:01:52.5755448Z", - "finish_time": "2022-09-01T17:02:42.6633333Z", - "assign_time": "2022-09-01T17:01:39.54Z", - "definition_id": 360, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "7e70de06-f711-585d-8aa0-f04466a62cd4", - "request_id": 4857, - "build_id": 5024, - "build_number": "20220621.1", - "result": "succeeded", - "queue_time": "2022-09-01T16:59:29.8433333Z", - "start_time": "2022-09-01T17:00:18.7374553Z", - "finish_time": "2022-09-01T17:00:47.1933333Z", - "assign_time": "2022-09-01T17:00:11.0233333Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "a528ef4b-e2e0-565b-271a-65845573d880", - "request_id": 4856, - "build_id": 5024, - "build_number": "20220621.1", - "result": "succeeded", - "queue_time": "2022-09-01T16:58:34.2633333Z", - "start_time": "2022-09-01T16:59:33.2423874Z", - "finish_time": "2022-09-01T17:00:09.8933333Z", - "assign_time": "2022-09-01T16:59:27.85Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - }, - { - "id": "ce39968d-2aee-58c0-6354-4429990bc777", - "request_id": 4855, - "build_id": 5024, - "build_number": "20220621.1", - "result": "succeeded", - "queue_time": "2022-09-01T16:58:33.5866667Z", - "start_time": "2022-09-01T16:58:41.9914811Z", - "finish_time": "2022-09-01T16:59:27.19Z", - "assign_time": "2022-09-01T16:58:33.8166667Z", - "definition_id": 359, - "runner_name": "Hosted Agent", - "os_description": "Linux", - "runner_group": "Azure Pipelines" - } - ] diff --git a/azure_devops/bootstrap/pipelines/classic/valet-classic1.json b/azure_devops/bootstrap/pipelines/classic/valet-classic1.json deleted file mode 100644 index 43052b4..0000000 --- a/azure_devops/bootstrap/pipelines/classic/valet-classic1.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "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, - "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 - } - ], - "target": { - "agentSpecification": { - "identifier": "windows-latest" - } - }, - "type": 1 - }, - "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 - }, - "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" - } - }, - "id": "a886d3a4-5700-6920-a3e4-6dadf46e7614", - "uniqueName": "davidkalmin@microsoft.com", - "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" - } - }, - "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" -} diff --git a/azure_devops/bootstrap/pipelines/classic/valet-classic2.json b/azure_devops/bootstrap/pipelines/classic/valet-classic2.json deleted file mode 100644 index b368aa1..0000000 --- a/azure_devops/bootstrap/pipelines/classic/valet-classic2.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "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, - "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 - } - ], - "target": { - "agentSpecification": { - "identifier": "windows-latest" - } - }, - "type": 1 - }, - "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 - }, - "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" - } - }, - "id": "a886d3a4-5700-6920-a3e4-6dadf46e7614", - "uniqueName": "davidkalmin@microsoft.com", - "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" - } - }, - "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" -} diff --git a/azure_devops/bootstrap/pipelines/readme.md b/azure_devops/bootstrap/pipelines/readme.md deleted file mode 100644 index 40258f9..0000000 --- a/azure_devops/bootstrap/pipelines/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# pipelines folder -This folder contains Azure DevOps pipelines that gets migrated to the Azure DevOps instance. - -### Note any file added to this folder or sub folders will get migrated to the Azure DevOps instance when the GitHub Action runs to create and bootstrap the Azure DevOps project - -## classic folder -The classic folder contains classic style Azure DevOps pipelines that are pure JSON files. - -## yml folder -The yml folder contains yml Azure DevOps pipelines. diff --git a/azure_devops/bootstrap/pipelines/yml/valet-custom-transformer-example.yml b/azure_devops/bootstrap/pipelines/yml/valet-custom-transformer-example.yml deleted file mode 100644 index 7d9ba2b..0000000 --- a/azure_devops/bootstrap/pipelines/yml/valet-custom-transformer-example.yml +++ /dev/null @@ -1,26 +0,0 @@ -variables: - - name: BuildParameters.RESTOREBUILDPROJECTS - value: "**/*.csproj" - - name: BUILDCONFIGURATION - value: Release -name: "custom-transformer-example" -jobs: - - job: Job_1 - displayName: Agent job 1 - pool: "mechamachine" - steps: - - checkout: self - - task: NodeTool@0 - displayName: Use Node 10.16.3 - inputs: - versionSpec: 10.16.3 - - task: DotNetCoreCLI@2 - displayName: Restore - inputs: - command: restore - projects: "$(BuildParameters.RESTOREBUILDPROJECTS)" - - task: DotNetCoreCLI@2 - displayName: Build - inputs: - projects: "$(BuildParameters.RESTOREBUILDPROJECTS)" - arguments: "--configuration $(BUILDCONFIGURATION)" diff --git a/azure_devops/bootstrap/pipelines/yml/valet-pipeline1.yml b/azure_devops/bootstrap/pipelines/yml/valet-pipeline1.yml deleted file mode 100644 index 9c86c9a..0000000 --- a/azure_devops/bootstrap/pipelines/yml/valet-pipeline1.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Bootcap Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- main - -pool: - vmImage: windows-latest - -steps: -- script: echo Hello, I am pipeline 1! - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' diff --git a/azure_devops/bootstrap/pipelines/yml/valet-pipeline2.yml b/azure_devops/bootstrap/pipelines/yml/valet-pipeline2.yml deleted file mode 100644 index 6f9ba13..0000000 --- a/azure_devops/bootstrap/pipelines/yml/valet-pipeline2.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Bootcap Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: - - main - -pool: mechamachine - -steps: - - script: echo Hello, I am pipeline 2! - displayName: "Run a one-line script" - - - script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: "Run a multi-line script" diff --git a/azure_devops/bootstrap/setup b/azure_devops/bootstrap/setup index a5dde82..7af011a 100755 --- a/azure_devops/bootstrap/setup +++ b/azure_devops/bootstrap/setup @@ -1,15 +1,17 @@ #!/usr/bin/env ruby +require "date" require "json" require "net/http" +require "open3" require "optparse" require "pathname" -require "date" +require "tmpdir" options = { - code_assets_dir: "code", + assets_file: "azure_devops.tgz", pipeline_assets_dir: "pipelines", root_dir: File.join(ENV["CODESPACE_VSCODE_FOLDER"], "azure_devops/bootstrap"), - forecast_source_file: File.join(".", "azure_devops/bootstrap/jobs.json") + forecast_source_file: "jobs.json" } OptionParser.new do |opt| @@ -72,55 +74,59 @@ def create_repository(options) repository = options[:project] access_token = options[:access_token] root_dir = options[:root_dir] - directories = [options[:code_assets_dir], options[:pipeline_assets_dir]] + assets_file = options[:assets_file] - puts "Creating repository #{repository}..." + tmp_dir = Dir.mktmpdir + puts "Extracting assets..." + _, _, st = Open3.capture3("tar", "-xzf", File.join(root_dir, assets_file), "-C", tmp_dir) + abort unless st.exitstatus == 0 + uri = URI("https://dev.azure.com/#{organization}/#{project}/_apis/git/repositories/#{repository}/pushes?api-version=7.1-preview.2") + puts "Creating repository #{repository}..." 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 - }] + refUpdates: [{ + name: "refs/heads/main", + oldObjectId: "0000000000000000000000000000000000000000" + }], + commits: [{ + comment: "Initial commit.", + changes: Dir[File.join(tmp_dir, "**/*")].reject {|f| File.directory?(f) }.map do |entry| + { + changeType: "add", + item: { + path: File.join("/", Pathname.new(entry).relative_path_from(tmp_dir).to_s) + }, + newContent: { + content: File.read(entry), + contentType: "rawText" + } + } + end.flatten + }] } - post_request(uri, repository_to_create, access_token) do |response| + result = 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 + + [result, tmp_dir] end -def create_yaml_pipelines(options, repository) +def create_yaml_pipelines(options, repository, tmp_dir) 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| + root = Pathname.new(tmp_dir) + Dir[File.join(tmp_dir, pipeline_assets_dir, "yml", "*")].each do |entry| puts "Creating pipeline #{entry}..." pipeline_to_create = { @@ -170,18 +176,20 @@ def create_classic_pipelines(options, repository) end end -def update_forecast_source_file(options) +def update_forecast_source_file(options, tmp_dir) puts "Updating forecast data" - jobs_data = File.read(options[:forecast_source_file]) + root_dir = options[:root_dir] + jobs_data_file = options[:forecast_source_file] + jobs_data = File.read(File.join(tmp_dir, jobs_data_file)) today = Date.today.strftime("%Y-%m-%d") jobs_data.gsub!(/20[0-2][0-9]-[0-1][0-9]-[0-3][0-9]/, today) - File.write(options[:forecast_source_file], jobs_data) + File.write(File.join(root_dir, jobs_data_file), jobs_data) end create_project(options) -repository = create_repository(options) -create_yaml_pipelines(options, repository) +repository, tmp_dir = create_repository(options) +create_yaml_pipelines(options, repository, tmp_dir) create_classic_pipelines(options, repository) -update_forecast_source_file(options) +update_forecast_source_file(options, tmp_dir) puts "Success!" diff --git a/gitlab/2-audit.md b/gitlab/2-audit.md index efe8d97..657726b 100644 --- a/gitlab/2-audit.md +++ b/gitlab/2-audit.md @@ -180,4 +180,4 @@ Each pipeline will have a variety of files written that include: ### Next lab -[Perform a dry-run migration of a GitLab pipeline](3-dry-run.md) +[Forecast potential build runner usage](3-forecast.md) diff --git a/gitlab/6-forecast.md b/gitlab/3-forecast.md similarity index 96% rename from gitlab/6-forecast.md rename to gitlab/3-forecast.md index e28a7ef..43c94d5 100644 --- a/gitlab/6-forecast.md +++ b/gitlab/3-forecast.md @@ -92,11 +92,11 @@ You can use the `--source-file-path` CLI option to combine data from multiple re Run the following command from within the codespace terminal: ```bash -gh valet forecast --source-file-path tmp/**/jobs/*.json -o tmp/combined-forecast +gh valet forecast --source-file-path tmp/**/jobs/*.json --output-dir tmp/combined-forecast ``` You can now inspect the output of the command to see a forecast report using all of the files matching the `tmp/**/jobs/*.json` pattern. ## Next steps -This concludes all labs for migrating GitLab pipelines to Actions with Valet! +[Perform a dry-run migration of a GitLab pipeline](4-dry-run.md) diff --git a/gitlab/3-dry-run.md b/gitlab/4-dry-run.md similarity index 99% rename from gitlab/3-dry-run.md rename to gitlab/4-dry-run.md index 31f9932..dd76243 100644 --- a/gitlab/3-dry-run.md +++ b/gitlab/4-dry-run.md @@ -251,4 +251,4 @@ As an added challenge, try constructing and running the `dry-run` command yourse ## Next lab -[Use custom transformers to customize Valet's behavior](./4-custom-transformers.md) +[Use custom transformers to customize Valet's behavior](./5-custom-transformers.md) diff --git a/gitlab/4-custom-transformers.md b/gitlab/5-custom-transformers.md similarity index 98% rename from gitlab/4-custom-transformers.md rename to gitlab/5-custom-transformers.md index 9b2dbfa..0333f19 100644 --- a/gitlab/4-custom-transformers.md +++ b/gitlab/5-custom-transformers.md @@ -163,4 +163,4 @@ That's it! Congratulations, you have overridden Valet's default behavior by cust ## Next lab -[Perform a production migration of a GitLab pipeline](5-migrate.md) \ No newline at end of file +[Perform a production migration of a GitLab pipeline](6-migrate.md) diff --git a/gitlab/5-migrate.md b/gitlab/6-migrate.md similarity index 96% rename from gitlab/5-migrate.md rename to gitlab/6-migrate.md index 3c08295..0e4543d 100644 --- a/gitlab/5-migrate.md +++ b/gitlab/6-migrate.md @@ -50,4 +50,4 @@ At this point, the migration has completed and you have successfully migrated a ### Next Lab -[Forecast potential build runner usage](6-forecast.md) +This concludes all labs for migrating GitLab pipelines to Actions with Valet! diff --git a/jenkins/2-audit.md b/jenkins/2-audit.md index c3e9a6c..e2c8b35 100644 --- a/jenkins/2-audit.md +++ b/jenkins/2-audit.md @@ -108,4 +108,4 @@ Each pipeline will have a variety of files written that include: ## Next lab -[Perform a dry-run migration of a Jenkins pipeline](3-dry-run.md) +[Forecast potential build runner usage](3-forecast.md) diff --git a/jenkins/6-forecast.md b/jenkins/3-forecast.md similarity index 96% rename from jenkins/6-forecast.md rename to jenkins/3-forecast.md index 8506a23..7748a1f 100644 --- a/jenkins/6-forecast.md +++ b/jenkins/3-forecast.md @@ -94,11 +94,11 @@ You can use the `--source-file-path` CLI option to combine data from multiple re Run the following command from within the codespace terminal: ```bash -gh valet forecast --source-file-path tmp/**/jobs/*.json -o tmp/combined-forecast +gh valet forecast --source-file-path tmp/**/jobs/*.json --output-dir tmp/combined-forecast ``` You can now inspect the output of the command to see a forecast report using all of the files matching the `tmp/**/jobs/*.json` pattern. ## Next steps -This concludes all labs for migrating Jenkins pipelines to Actions with Valet! \ No newline at end of file +[Perform a dry-run migration of a Jenkins pipeline](4-dry-run.md) diff --git a/jenkins/3-dry-run.md b/jenkins/4-dry-run.md similarity index 97% rename from jenkins/3-dry-run.md rename to jenkins/4-dry-run.md index 4706216..e0cd0d8 100644 --- a/jenkins/3-dry-run.md +++ b/jenkins/4-dry-run.md @@ -27,7 +27,7 @@ You will be performing a dry run against a pipeline in your preconfigured Jenkin 2. Run the following command from the root directory: ```bash - gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline -o .tmp/jenkins/dry-run + gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline --output-dir .tmp/jenkins/dry-run ``` 3. The command will list all the files written to disk when the command succeeds. @@ -141,4 +141,4 @@ Try running the `dry-run` command for different pipelines in the Jenkins server. ## Next lab -[Use custom transformers to customize Valet's behavior](4-custom-transformers.md) +[Use custom transformers to customize Valet's behavior](5-custom-transformers.md) diff --git a/jenkins/4-custom-transformers.md b/jenkins/5-custom-transformers.md similarity index 97% rename from jenkins/4-custom-transformers.md rename to jenkins/5-custom-transformers.md index dfcbd52..129509f 100644 --- a/jenkins/4-custom-transformers.md +++ b/jenkins/5-custom-transformers.md @@ -18,7 +18,7 @@ In this lab you will build upon the `dry-run` command to override Valet's defaul You will be performing a `dry-run` command to inspect the workflow that is converted by default. Run the following command within the codespace terminal: ```bash -gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline -o tmp/jenkins/dry-run +gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline --output-dir tmp/jenkins/dry-run ``` The converted workflow that is generated by the above command can be seen below: @@ -114,7 +114,7 @@ This method can use any valid ruby syntax and should return a `Hash` that repres Now you can perform another `dry-run` command and use the `--custom-transformers` CLI option to provide this custom transformer. Run the following command within your codespace terminal: ```bash -gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline -o tmp/jenkins/dry-run --custom-transformers transformers.rb +gh valet dry-run jenkins --source-url http://localhost:8080/job/test_pipeline --output-dir tmp/jenkins/dry-run --custom-transformers transformers.rb ``` Open the workflow that is generated and inspect the contents. Now the `sleep` step is converted and uses the customized behavior! @@ -290,4 +290,4 @@ That's it! Congratulations, you have overridden Valet's default behavior by cust ## Next lab -[Perform a production migration of a Jenkins pipeline](5-migrate.md) +[Perform a production migration of a Jenkins pipeline](6-migrate.md) diff --git a/jenkins/5-migrate.md b/jenkins/6-migrate.md similarity index 97% rename from jenkins/5-migrate.md rename to jenkins/6-migrate.md index 66a8f11..325a620 100644 --- a/jenkins/5-migrate.md +++ b/jenkins/6-migrate.md @@ -52,4 +52,4 @@ At this point, the migration has completed and you have successfully migrated a ### Next lab -[Forecast potential build runner usage](6-forecast.md) +This concludes all labs for migrating Jenkins pipelines to Actions with Valet!