From 8cd321432f2cba3d9b780b7254704b38e0fc87a5 Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 10:25:58 -0700 Subject: [PATCH 1/7] Prefer --output-dir to -o --- azure_devops/2-audit.md | 2 +- azure_devops/3-dry-run.md | 4 ++-- azure_devops/4-custom-transformers.md | 4 ++-- azure_devops/6-forecast.md | 2 +- gitlab/6-forecast.md | 2 +- jenkins/3-dry-run.md | 2 +- jenkins/4-custom-transformers.md | 4 ++-- jenkins/6-forecast.md | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/azure_devops/2-audit.md b/azure_devops/2-audit.md index 1a2d327..fd1147a 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. diff --git a/azure_devops/3-dry-run.md b/azure_devops/3-dry-run.md index da6ac9a..ac60718 100644 --- a/azure_devops/3-dry-run.md +++ b/azure_devops/3-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. diff --git a/azure_devops/4-custom-transformers.md b/azure_devops/4-custom-transformers.md index e3edce9..cec9e8a 100644 --- a/azure_devops/4-custom-transformers.md +++ b/azure_devops/4-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! diff --git a/azure_devops/6-forecast.md b/azure_devops/6-forecast.md index 0937dba..e9a9e9c 100644 --- a/azure_devops/6-forecast.md +++ b/azure_devops/6-forecast.md @@ -40,7 +40,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. diff --git a/gitlab/6-forecast.md b/gitlab/6-forecast.md index e28a7ef..897270d 100644 --- a/gitlab/6-forecast.md +++ b/gitlab/6-forecast.md @@ -92,7 +92,7 @@ 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. diff --git a/jenkins/3-dry-run.md b/jenkins/3-dry-run.md index 4706216..19f5145 100644 --- a/jenkins/3-dry-run.md +++ b/jenkins/3-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. diff --git a/jenkins/4-custom-transformers.md b/jenkins/4-custom-transformers.md index dfcbd52..e345308 100644 --- a/jenkins/4-custom-transformers.md +++ b/jenkins/4-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! diff --git a/jenkins/6-forecast.md b/jenkins/6-forecast.md index 8506a23..a6fca52 100644 --- a/jenkins/6-forecast.md +++ b/jenkins/6-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 +This concludes all labs for migrating Jenkins pipelines to Actions with Valet! From 424bada4f3814bbc8d52639bb3757054c6550493 Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 10:26:58 -0700 Subject: [PATCH 2/7] Remove --azure-devops-project from forecast command --- azure_devops/6-forecast.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/azure_devops/6-forecast.md b/azure_devops/6-forecast.md index e9a9e9c..48e6d84 100644 --- a/azure_devops/6-forecast.md +++ b/azure_devops/6-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) From b1f13f800b29285740b1d2769d9086014fa705ce Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 11:27:10 -0700 Subject: [PATCH 3/7] Read azure devops assets from tarball --- azure_devops/bootstrap/azure_devops.tgz | Bin 0 -> 4775 bytes azure_devops/bootstrap/code/Bootcamp.sln | 56 - .../bootstrap/code/src/Attendee/Attendee.cs | 15 - .../code/src/Attendee/Attendee.csproj | 7 - .../code/test/AttendeeTest/AttendeeExists.cs | 18 - .../test/AttendeeTest/AttendeeTest.csproj | 26 - azure_devops/bootstrap/jobs.json | 1262 ----------------- .../pipelines/classic/valet-classic1.json | 243 ---- .../pipelines/classic/valet-classic2.json | 243 ---- azure_devops/bootstrap/pipelines/readme.md | 10 - .../yml/valet-custom-transformer-example.yml | 26 - .../pipelines/yml/valet-pipeline1.yml | 19 - .../pipelines/yml/valet-pipeline2.yml | 18 - azure_devops/bootstrap/setup | 61 +- 14 files changed, 34 insertions(+), 1970 deletions(-) create mode 100644 azure_devops/bootstrap/azure_devops.tgz delete mode 100644 azure_devops/bootstrap/code/Bootcamp.sln delete mode 100644 azure_devops/bootstrap/code/src/Attendee/Attendee.cs delete mode 100644 azure_devops/bootstrap/code/src/Attendee/Attendee.csproj delete mode 100644 azure_devops/bootstrap/code/test/AttendeeTest/AttendeeExists.cs delete mode 100644 azure_devops/bootstrap/code/test/AttendeeTest/AttendeeTest.csproj delete mode 100644 azure_devops/bootstrap/jobs.json delete mode 100644 azure_devops/bootstrap/pipelines/classic/valet-classic1.json delete mode 100644 azure_devops/bootstrap/pipelines/classic/valet-classic2.json delete mode 100644 azure_devops/bootstrap/pipelines/readme.md delete mode 100644 azure_devops/bootstrap/pipelines/yml/valet-custom-transformer-example.yml delete mode 100644 azure_devops/bootstrap/pipelines/yml/valet-pipeline1.yml delete mode 100644 azure_devops/bootstrap/pipelines/yml/valet-pipeline2.yml diff --git a/azure_devops/bootstrap/azure_devops.tgz b/azure_devops/bootstrap/azure_devops.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3c401f9143cfb5dea1f5fa00ba925fb17f17de50 GIT binary patch literal 4775 zcmV;Y5?JjYiwFQB93o=?1MMBzcH1_#uhmyzn4VK7V^Z8DIm@YRNvS)D?OIAZZQav> zNYG+Tkt!FvPNrWr5A#X$3v&UG6e&@Q9Y<+rh?5hW#Ki@0H{1o1rRHZJy~(oNG7Q9i zn*67%>ilQgkfLjftSd%KZXsDwWkvf886SUXpM91@F%DrVB%Wa3jaI?|nB%O$lkOw` z`6p>o(+X_zafRRx{8vrR|CXxM{NF{BnlpDsJl7}DM-zhW`7fKMsRI9XS+4beC#}eT z%fnIRS`RJb$vDeTkx>Jf5S9BL-GT!qq6;< z^Zyab`H!5yvq{((P2B8vWCebVT|YwIcS%T4k6fS5qQVd$T8u799HFUu8RD4OC=TE) zDGvY)G4?GYH5!i|JwhizOc3^Ok>h&si*0Aa<`V}Yijr~q6rmf}^XNR=O@nSG#An?v z-S}%j)3stZ@KKn+PGFz~lFn9Oqj3<#Q5@pgGPYS5yd_plmyA-=I42QVcr~X~_CAVl zy+w>=x?$*<(e7`CrzeaS5hD<~oqENY=8yAP=(}p%QsXZCFX}(w{3t%aJL$ z+9Ln2u}5Oj0;&X45%j{3oFJT%P$a+M>C7V%0Nr(t4fbEr45iF}Rcq;5ZU1-Cu5sw% zF<73120|k8@su2(!^HLMGaSN04AxgV?+-_(=l#Ps$FF*4=cnKFk48fPM+l@P0eIob zljal2im1gDig@UNqtlbY@yj>o-O=&sNpaLU@d%DcgTo4|Wlm_k4aVsL;kN_yO)&mN zVW@03ntAy4grVqO5ncd%0~8U@ z$zR7fx;lWf$|fT~^p%`;EKK?)A`Av8vZR=jmP5JzEQ#}3*uH_5a10G+#5!02&t~fd z@d=5Kf{+}&I{r$np7NXkr9!f1CM%du;dDDd;Q}biPPGUK^TpmajD9TKXN?T=nibxE z8MNW>GMNIi>2OhmL(y?B6YvY@ArI)5#1003YDN2lwrcyIy;JXF?w8s||6el~?7ysO zwg119_6Qw<2W)}=I|Mp__T`Rb;}L%azIQx97(8#^onkNV=RWLhkRS{Dh+A*>9ijg9 znCdfguWd5(f?EnjeODU-fJdln+uQc{AX&P7;3u503wQz*~};>%0AoU{t|6cb0`&Y3<;^+ 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 - - - 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..ab9b90b 100755 --- a/azure_devops/bootstrap/setup +++ b/azure_devops/bootstrap/setup @@ -1,15 +1,16 @@ #!/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", - pipeline_assets_dir: "pipelines", + assets_file: "azure_devops.tgz", 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,38 +73,42 @@ 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}..." - 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 = { + Dir.mktmpdir do |tmp_dir| + 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" - } + 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 + } 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") + 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 end @@ -172,13 +177,15 @@ end def update_forecast_source_file(options) 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(root_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) end -create_project(options) +# create_project(options) repository = create_repository(options) create_yaml_pipelines(options, repository) create_classic_pipelines(options, repository) From 2ae5b183f6489bfccc6730fb62a8d9f976d30e8f Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 11:28:36 -0700 Subject: [PATCH 4/7] reorder azdo labs --- azure_devops/2-audit.md | 2 +- azure_devops/{6-forecast.md => 3-forecast.md} | 2 +- azure_devops/{3-dry-run.md => 4-dry-run.md} | 2 +- .../{4-custom-transformers.md => 5-custom-transformers.md} | 2 +- azure_devops/{5-migrate.md => 6-migrate.md} | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename azure_devops/{6-forecast.md => 3-forecast.md} (98%) rename azure_devops/{3-dry-run.md => 4-dry-run.md} (97%) rename azure_devops/{4-custom-transformers.md => 5-custom-transformers.md} (99%) rename azure_devops/{5-migrate.md => 6-migrate.md} (97%) diff --git a/azure_devops/2-audit.md b/azure_devops/2-audit.md index fd1147a..d9d58f9 100644 --- a/azure_devops/2-audit.md +++ b/azure_devops/2-audit.md @@ -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 98% rename from azure_devops/6-forecast.md rename to azure_devops/3-forecast.md index 48e6d84..cb188a9 100644 --- a/azure_devops/6-forecast.md +++ b/azure_devops/3-forecast.md @@ -101,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 97% rename from azure_devops/3-dry-run.md rename to azure_devops/4-dry-run.md index ac60718..dc15aac 100644 --- a/azure_devops/3-dry-run.md +++ b/azure_devops/4-dry-run.md @@ -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 99% rename from azure_devops/4-custom-transformers.md rename to azure_devops/5-custom-transformers.md index cec9e8a..c46a28b 100644 --- a/azure_devops/4-custom-transformers.md +++ b/azure_devops/5-custom-transformers.md @@ -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! From 301b0b70c6aeddc956e76219a0641b47dfa9296b Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 11:29:53 -0700 Subject: [PATCH 5/7] Reorder gitlab labs --- gitlab/2-audit.md | 2 +- gitlab/{6-forecast.md => 3-forecast.md} | 2 +- gitlab/{3-dry-run.md => 4-dry-run.md} | 2 +- gitlab/{4-custom-transformers.md => 5-custom-transformers.md} | 2 +- gitlab/{5-migrate.md => 6-migrate.md} | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename gitlab/{6-forecast.md => 3-forecast.md} (98%) rename gitlab/{3-dry-run.md => 4-dry-run.md} (99%) rename gitlab/{4-custom-transformers.md => 5-custom-transformers.md} (98%) rename gitlab/{5-migrate.md => 6-migrate.md} (96%) 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 98% rename from gitlab/6-forecast.md rename to gitlab/3-forecast.md index 897270d..43c94d5 100644 --- a/gitlab/6-forecast.md +++ b/gitlab/3-forecast.md @@ -99,4 +99,4 @@ You can now inspect the output of the command to see a forecast report using all ## 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! From 38073eea5446ba2d1edcc841a7480c4f21cdc906 Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 12:31:02 -0700 Subject: [PATCH 6/7] Reorder jenkins labs --- jenkins/2-audit.md | 2 +- jenkins/{6-forecast.md => 3-forecast.md} | 2 +- jenkins/{3-dry-run.md => 4-dry-run.md} | 2 +- jenkins/{4-custom-transformers.md => 5-custom-transformers.md} | 2 +- jenkins/{5-migrate.md => 6-migrate.md} | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename jenkins/{6-forecast.md => 3-forecast.md} (98%) rename jenkins/{3-dry-run.md => 4-dry-run.md} (98%) rename jenkins/{4-custom-transformers.md => 5-custom-transformers.md} (99%) rename jenkins/{5-migrate.md => 6-migrate.md} (97%) 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 98% rename from jenkins/6-forecast.md rename to jenkins/3-forecast.md index a6fca52..7748a1f 100644 --- a/jenkins/6-forecast.md +++ b/jenkins/3-forecast.md @@ -101,4 +101,4 @@ You can now inspect the output of the command to see a forecast report using all ## Next steps -This concludes all labs for migrating Jenkins pipelines to Actions with Valet! +[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 98% rename from jenkins/3-dry-run.md rename to jenkins/4-dry-run.md index 19f5145..e0cd0d8 100644 --- a/jenkins/3-dry-run.md +++ b/jenkins/4-dry-run.md @@ -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 99% rename from jenkins/4-custom-transformers.md rename to jenkins/5-custom-transformers.md index e345308..129509f 100644 --- a/jenkins/4-custom-transformers.md +++ b/jenkins/5-custom-transformers.md @@ -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! From 5d1337db7d9b423355a95dbdbfac8419b9d6fa60 Mon Sep 17 00:00:00 2001 From: Ethan Dennis Date: Wed, 14 Sep 2022 13:25:27 -0700 Subject: [PATCH 7/7] More edits --- azure_devops/bootstrap/azure_devops.tgz | Bin 4775 -> 9669 bytes azure_devops/bootstrap/setup | 87 ++++++++++++------------ 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/azure_devops/bootstrap/azure_devops.tgz b/azure_devops/bootstrap/azure_devops.tgz index 3c401f9143cfb5dea1f5fa00ba925fb17f17de50..cdc27b2ec83f784e87455d87e8f9355c3f023692 100644 GIT binary patch literal 9669 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�{=1y*&VRm>>;L}ef2X*uz&g{L>OSAo zpW{idgD|$rd64eqQCXceALbu8s~+knvxsz2ravAJ@dWg;)T1<;U@!VxZ;z|e^OG4XAXW@+#7ToJq`aWsH$-J_+Q%CCPZeE=|1w6&ZvX$CTz8=V<;9<+diP3y7=NYZ z^B4QIJB>ObR)Qs|-e<7^rrIrJJ1S^I07`e`~EWVM=1 zZ-+Il=;U9kp35j)XpHy1Di)_Nin@ns8fWQOP!)HVe4c+O{-SPGRc81Mr H04@OlzaE0# literal 4775 zcmV;Y5?JjYiwFQB93o=?1MMBzcH1_#uhmyzn4VK7V^Z8DIm@YRNvS)D?OIAZZQav> zNYG+Tkt!FvPNrWr5A#X$3v&UG6e&@Q9Y<+rh?5hW#Ki@0H{1o1rRHZJy~(oNG7Q9i zn*67%>ilQgkfLjftSd%KZXsDwWkvf886SUXpM91@F%DrVB%Wa3jaI?|nB%O$lkOw` z`6p>o(+X_zafRRx{8vrR|CXxM{NF{BnlpDsJl7}DM-zhW`7fKMsRI9XS+4beC#}eT z%fnIRS`RJb$vDeTkx>Jf5S9BL-GT!qq6;< z^Zyab`H!5yvq{((P2B8vWCebVT|YwIcS%T4k6fS5qQVd$T8u799HFUu8RD4OC=TE) zDGvY)G4?GYH5!i|JwhizOc3^Ok>h&si*0Aa<`V}Yijr~q6rmf}^XNR=O@nSG#An?v z-S}%j)3stZ@KKn+PGFz~lFn9Oqj3<#Q5@pgGPYS5yd_plmyA-=I42QVcr~X~_CAVl zy+w>=x?$*<(e7`CrzeaS5hD<~oqENY=8yAP=(}p%QsXZCFX}(w{3t%aJL$ z+9Ln2u}5Oj0;&X45%j{3oFJT%P$a+M>C7V%0Nr(t4fbEr45iF}Rcq;5ZU1-Cu5sw% zF<73120|k8@su2(!^HLMGaSN04AxgV?+-_(=l#Ps$FF*4=cnKFk48fPM+l@P0eIob zljal2im1gDig@UNqtlbY@yj>o-O=&sNpaLU@d%DcgTo4|Wlm_k4aVsL;kN_yO)&mN zVW@03ntAy4grVqO5ncd%0~8U@ z$zR7fx;lWf$|fT~^p%`;EKK?)A`Av8vZR=jmP5JzEQ#}3*uH_5a10G+#5!02&t~fd z@d=5Kf{+}&I{r$np7NXkr9!f1CM%du;dDDd;Q}biPPGUK^TpmajD9TKXN?T=nibxE z8MNW>GMNIi>2OhmL(y?B6YvY@ArI)5#1003YDN2lwrcyIy;JXF?w8s||6el~?7ysO zwg119_6Qw<2W)}=I|Mp__T`Rb;}L%azIQx97(8#^onkNV=RWLhkRS{Dh+A*>9ijg9 znCdfguWd5(f?EnjeODU-fJdln+uQc{AX&P7;3u503wQz*~};>%0AoU{t|6cb0`&Y3<;^+ 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