Skip to content

Commit

Permalink
Update master with dotnet 6 (#4254)
Browse files Browse the repository at this point in the history
* Draft: Dotnet6 migration   (#3879)

* Agent on .NET 6 (draft)

* Suppress object dispose warnings

* Fixed test code analysis

* disable RHEL6

* Disable RHEL6, install dotnet 6.0.2

* Disable RHEL6

* fix Winx86 pipeline

* Install dotnet x86

* fix dotnet 6 migrations warnings

* bump git verstion to 2.36.1 (#3839)

Co-authored-by: Andrey Ivanov <v-andivanov@microsoft.com>

* Removed NPM module and executable which comes with NodeJS fox non windows distribution (#3833)

* Removem NPM module and executable which comes with NodeJS fox non windows distribution

* Changed the logic from || and && when removing NPM

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Alexander Smolyakov <v-alsmo@microsoft.com>

* Added message - in case when account is not managed, but WindowsLogon… (#3845)

* Added message - in case when account is not managed, but WindowsLogonPassword was not specified

* Added message - in case when account is not managed, but WindowsLogonPassword was not specified

* Fixed typo with condition

* Fixed indents

Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>

* update scripts / rebase

* add RHEL6 warning

* Agent on .NET 6 (draft)

* Suppress object dispose warnings

* disable RHEL6

* Disable RHEL6, install dotnet 6.0.2

* fix Winx86 pipeline

* Install dotnet x86

* fix dotnet 6 migrations warnings

* update azure pipeline to use dotnet 6.0.200

* fix yml indentation

* fix windows-x32 pipeline

* Update build-job.yml

* disable docker detector for legacy containers

* disable security checks

* disable security checks

* Update build-job.yml

* Update build-job.yml

* Update build-job.yml

* update config.sh for net6 support

* add native support of the node16 on mac m1

* add osx-arm64 pipeline

* fix job name for macos-arm64

* update pipelines for osx-arm64 support

* Update build-job.yml

* Update build-job.yml

* update macos image & disable unit test for osx-arm64

* Update pipeline.yml

* switch back to macos-10.15

* set macos image to macos-12

* add osx-arm64 as allowed package

* set image to 10.15

* disable falling test for macos

* update .NET SDK to 6.0.302

* node16 knob & skip tests on macos

* add rhel7

* update pipeline for RHEL7

* update pipeline for rhel7.2

* update pipelines (RHEL7.2)

* Update pipeline.yml

* update image reference

* update runtime framework to 6.0.7

* Update pipeline.yml

Co-authored-by: Denis Rumyantsev <v-denisr@microsoft.com>
Co-authored-by: Andrey Ivanov <v-andivanov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Max Podriezov <maxpodriezov@microsoft.com>
Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Alexander Smolyakov <v-alsmo@microsoft.com>
Co-authored-by: Anatoly Bolshakov <v-anbols@microsoft.com>
Co-authored-by: Liliia Sabitova <107196662+LiliaSabitova@users.noreply.github.com>

* added logic to skip downgrade if agent have version 3.* and server version is 2.* (#3996)

* fix issues after conflict resolving (#4001)

* Fix GitHub only release condition (#4002)

* BUG 1972388: vsbuild task in YAML build pipeline hangs forever in ADO even though the task has already logged completion (#3979)

* moved logic to drain queue in separate method "DrainQueues"

* Implemented a call of method "DrainQueues" once step is completed

* Simplified syntax of property 'JobServerQueue'

* Fix condition for onlyGitHubRelease

Co-authored-by: Sergey Koryshev <sergey.koryshev@akvelon.com>

* Remove condition from Blob store step

* remove branch check on createBranch step

* fix pipeline / update agent version

* Fixed NullReferenceException in v3.212.0 preview version Agent (#4018)

Fix for PublishTelemetry:
Added check for taskDefinition.Data.Execution, because it turned out that not all tasks have Execution information.

* Update dotnet6-agent from master (#4068)

Update dotnet6-agent branch from master

* Update releaseNote.md

* Fix CA2000 error with secrets masker

* update System.IO.FileSystem.AccessControl

* Update Common.props (#4109)

* Update dotnet6-agent branch from master (#4128)

* Catch updating exception (#4082)

* Node16 version updated to 16.17.1" (#4084)

* Bump ubuntu image version to 20.04 (#4079)

* Prevent creating host container network (#3788)

* Prevent creating host container network

* Remove redundant empty lines

* Fix invalid knob value fetching

* Update ContainerOperationProvider.cs

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Allow env.sh to accept additional env var names (#3339)

The hard-coded list is not necessarily enough. This allows the caller
to specify additional environment variables to write to .env.

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Revert "Fix execution of scripts in variables (#4016)" (#4088)

This reverts commit af5328b2656c9bf5a70117044a707e011de77083.

* Fix CA1711 for ServiceBootFlag

* Fix CA2000 for JobRunner

* Resolve CA2000 in StepHost

* Resolve CA2000 in Windows service

* Resolve CA2000 for WorkerCommandManager

* Resove CA2000 for CodeCoverageCommands

* Add fixture for SecretMasker tests

* Add fixture for SecretMasker tests

* Fail the installation of agent for unsupported OS - RHEL6/CentOS6

* Change Fixtures -> Disposable

* git update-index --chmod=+x .\src\dev.sh

* Use dispose pattern to fix errors

Co-authored-by: Roman-Shchukin <111063382+Roman-Shchukin@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Steve <hez2010@outlook.com>
Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Rick Brown <ricksbrown73@gmail.com>
Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>

* Merge master to dotnet6-agent branch (#4129)

* Merge master to dotnet6-agent branch

* git update-index --chmod=+x .\src\dev.sh

* Update step name

* Change step name

* Revert "Allow env.sh to accept additional env var names" (#4144)

* Upd dotnet6 agent (#4150)

* Catch updating exception (#4082)

* Node16 version updated to 16.17.1" (#4084)

* Bump ubuntu image version to 20.04 (#4079)

* Prevent creating host container network (#3788)

* Prevent creating host container network

* Remove redundant empty lines

* Fix invalid knob value fetching

* Update ContainerOperationProvider.cs

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Allow env.sh to accept additional env var names (#3339)

The hard-coded list is not necessarily enough. This allows the caller
to specify additional environment variables to write to .env.

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Revert "Fix execution of scripts in variables (#4016)" (#4088)

This reverts commit af5328b2656c9bf5a70117044a707e011de77083.

* Add Ubuntu 18.04 (#3943)

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Make agent update list of systems supporting .NET 6 periodically (#4081)

* implemented logic to fetch net6.json from server every hour

* added await keyword

* Moved logic to set warning from ExecutionContext to JobRunner since InitializeJob method is not async

* fixed issue with condition in Equals method of OperatingSystem class

* small refactoring

* net6.json must be read only if it was not fetched from server

* refactored code of method "GetNet6SupportedSystems"

* restored field net6SupportedSystems to reduce IO oprations and cover case when agent started but net6.json is not older than 1 hour

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Retries to lock Services database (#4085)

* retries to lock database

* Decrease timeout + Add retry message

Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Fixed name of DockerAdditionalNetworkOptions Knob (#3888)

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Format agent source code (#4101)

* Run dotnet format

* Remove extra semicolons

* Fix SonarQube's "'Any()' should be used to test for emptiness" / Code Smell (#3404)

* Add script to predict v2->v3 upgrade compatibility (#4092)

* Add script to predict v2->v3 upgrade compatibility

* Fix typo

* Fixed another typo: frpom

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added strict boolean knob values (#4103)

* Add ConvertToBooleanStrict

* Add AsBooleanStrict for agent knobs

* update build-job (#4110)

* update build-job
- added UseDotNet task for linux os

* Switch EsrpCodeSigning from V1 to V2
returned back UseDotNet task condition

* Set UseDotNet version to 6 on osx

* added dotnet 3.1.x before unit tests on win x86

* fix dotnet host search (#4124)

* fix dotnet host search
- added performMultiLevelLookup

* Added runtime to unitTests step

* Changed patch version in semver of runtime

* remove sdk and runtime from unitTests script

* Fixed problem with .NET Core 3.1 installation

* Added UseDotNet task in functionalTests

Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>

* Add option to skip rhel6 in pipeline and ci (#4121)

* skipRhelRelease parameter added

* skipRhelRelease parameter fixed

* releaseRhelOnly parameter added

* Logic of removing not filling lines from releaseNote

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Removed test logs

* Added clear empty lines logic

* Commented code for test. Test changes in pipeline

* Removed test changes

* skipRhelRelease parametr added to ci pipeline

* Update dotnet to 3.1.32 (#4112)

* DockerLogin retries (#4100)

* DockerLogin retries
- added changes from PR microsoft/azure-pipelines-agent#3840
- fixed incorrect variables

* DockerLogin retries
- added step UseDotNet@2

* DockerLogin retries
- added linux to UseDotNet task

* Docker Login retries
Implement retry into DockerLogin method

* Implement feature flag for docker login retries

* revert build-job back

* Added retry for docker start

* fix delay

* update knob description

* Update agent Docker methods
- reworked Docker methods with retries behavior
- changed InvokeWithRetryIfNonZero on to incapsulated logic method

* - renamed local variable as is in ADO

* Added docker retry behavior to docker version method

Co-authored-by: Your Name <you@example.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>

* Add the exact operation system version and environment to the telemetry (#4104)

* Update TaskRunner.cs

* Update build-job.yml

* Added new variables to telemetry AgentName, MachineName, IsSelfHosted

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Mingit version upgraded to 2.39.1 (#4126)

* Fix agent lint errors (#4117)

* Fix CA2000 error with secrets masker

* Fix CA1711 for ServiceBootFlag

* Fix CA2000 for JobRunner

* Resolve CA2000 in StepHost

* Resolve CA2000 in Windows service

* Resolve CA2000 for WorkerCommandManager

* Resove CA2000 for CodeCoverageCommands

* Remove unused namespaces

* Add fixture for SecretMasker tests

* Change Fixtures -> Disposable

* Use dispose pattern to fix errors

* Formatting

* Revert "Allow env.sh to accept additional env var names (#3339)" (#4143)

This reverts commit 27e3d4e177e83aac805bf93c38233fa1a9f06101.

---------

Co-authored-by: Roman-Shchukin <111063382+Roman-Shchukin@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Steve <hez2010@outlook.com>
Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Rick Brown <ricksbrown73@gmail.com>
Co-authored-by: Liliia Sabitova <107196662+LiliaSabitova@users.noreply.github.com>
Co-authored-by: Eric van Wijk <eric@van-wijk.com>
Co-authored-by: Sergey Koryshev <sergey.koryshev@akvelon.com>
Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Rami <icnocop@users.noreply.github.com>
Co-authored-by: Martin <modermatt@tuta.io>
Co-authored-by: ivanduplenskikh <115665590+ivanduplenskikh@users.noreply.github.com>
Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>
Co-authored-by: İsmayıl İsmayılov <110806089+ismayilov-ismayil@users.noreply.github.com>

* Update minor .net6 version (#4151)

* Bump azure pipelines task lib to 4.2.0 (#4156)

* Upd dotnet6 agent mar2023 (#4191)

* Catch updating exception (#4082)

* Node16 version updated to 16.17.1" (#4084)

* Bump ubuntu image version to 20.04 (#4079)

* Prevent creating host container network (#3788)

* Prevent creating host container network

* Remove redundant empty lines

* Fix invalid knob value fetching

* Update ContainerOperationProvider.cs

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Allow env.sh to accept additional env var names (#3339)

The hard-coded list is not necessarily enough. This allows the caller
to specify additional environment variables to write to .env.

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Revert "Fix execution of scripts in variables (#4016)" (#4088)

This reverts commit af5328b2656c9bf5a70117044a707e011de77083.

* Add Ubuntu 18.04 (#3943)

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Make agent update list of systems supporting .NET 6 periodically (#4081)

* implemented logic to fetch net6.json from server every hour

* added await keyword

* Moved logic to set warning from ExecutionContext to JobRunner since InitializeJob method is not async

* fixed issue with condition in Equals method of OperatingSystem class

* small refactoring

* net6.json must be read only if it was not fetched from server

* refactored code of method "GetNet6SupportedSystems"

* restored field net6SupportedSystems to reduce IO oprations and cover case when agent started but net6.json is not older than 1 hour

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Retries to lock Services database (#4085)

* retries to lock database

* Decrease timeout + Add retry message

Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Fixed name of DockerAdditionalNetworkOptions Knob (#3888)

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Format agent source code (#4101)

* Run dotnet format

* Remove extra semicolons

* Fix SonarQube's "'Any()' should be used to test for emptiness" / Code Smell (#3404)

* Add script to predict v2->v3 upgrade compatibility (#4092)

* Add script to predict v2->v3 upgrade compatibility

* Fix typo

* Fixed another typo: frpom

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added strict boolean knob values (#4103)

* Add ConvertToBooleanStrict

* Add AsBooleanStrict for agent knobs

* update build-job (#4110)

* update build-job
- added UseDotNet task for linux os

* Switch EsrpCodeSigning from V1 to V2
returned back UseDotNet task condition

* Set UseDotNet version to 6 on osx

* added dotnet 3.1.x before unit tests on win x86

* fix dotnet host search (#4124)

* fix dotnet host search
- added performMultiLevelLookup

* Added runtime to unitTests step

* Changed patch version in semver of runtime

* remove sdk and runtime from unitTests script

* Fixed problem with .NET Core 3.1 installation

* Added UseDotNet task in functionalTests

Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>

* Add option to skip rhel6 in pipeline and ci (#4121)

* skipRhelRelease parameter added

* skipRhelRelease parameter fixed

* releaseRhelOnly parameter added

* Logic of removing not filling lines from releaseNote

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Removed test logs

* Added clear empty lines logic

* Commented code for test. Test changes in pipeline

* Removed test changes

* skipRhelRelease parametr added to ci pipeline

* Update dotnet to 3.1.32 (#4112)

* DockerLogin retries (#4100)

* DockerLogin retries
- added changes from PR microsoft/azure-pipelines-agent#3840
- fixed incorrect variables

* DockerLogin retries
- added step UseDotNet@2

* DockerLogin retries
- added linux to UseDotNet task

* Docker Login retries
Implement retry into DockerLogin method

* Implement feature flag for docker login retries

* revert build-job back

* Added retry for docker start

* fix delay

* update knob description

* Update agent Docker methods
- reworked Docker methods with retries behavior
- changed InvokeWithRetryIfNonZero on to incapsulated logic method

* - renamed local variable as is in ADO

* Added docker retry behavior to docker version method

Co-authored-by: Your Name <you@example.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>

* Add the exact operation system version and environment to the telemetry (#4104)

* Update TaskRunner.cs

* Update build-job.yml

* Added new variables to telemetry AgentName, MachineName, IsSelfHosted

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Mingit version upgraded to 2.39.1 (#4126)

* Fix agent lint errors (#4117)

* Fix CA2000 error with secrets masker

* Fix CA1711 for ServiceBootFlag

* Fix CA2000 for JobRunner

* Resolve CA2000 in StepHost

* Resolve CA2000 in Windows service

* Resolve CA2000 for WorkerCommandManager

* Resove CA2000 for CodeCoverageCommands

* Remove unused namespaces

* Add fixture for SecretMasker tests

* Change Fixtures -> Disposable

* Use dispose pattern to fix errors

* Formatting

* Revert "Allow env.sh to accept additional env var names (#3339)" (#4143)

This reverts commit 27e3d4e177e83aac805bf93c38233fa1a9f06101.

* Bump azure pipelines task lib to 4.2.0 (#4155)

* Add warning for deprecated runners (#4162)

* Add warning for deprecated runners

* Update strings.json

* fix typo

* Update NodeHandler.cs

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage (#4166)

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage

* Re-write try-catch

* Update TaskRunner.cs

* cleanup

* Distinguish AzureInstanceMetadata detection to a separate class

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added legacy lib source for support on Ubuntu 22.04 (#4161)

* Moved logic to drain queues after each task under knob "AGENT_DRAIN_QUEUES_AFTER_TASK" (#4176)

* Added knob "DrainQueuesAfterTask" with default "false"

* move logic to drain queues behind knob DrainQueuesAfterTask

* added mocking of GetScopedEnvironment method in step execution context

* added mocking of GetScopedEnvironment method in step execution context

* changed default value for knob "AGENT_DRAIN_QUEUES_AFTER_TASK" to true

* implementd AsBooleanStrict and check in JobRunner

* Revert "implementd AsBooleanStrict and check in JobRunner"

This reverts commit a1c0c678892a03759543a00b03153adfa0cf5e3b.

* Reversed the knob

* Add issue templates (#4154)

* Add issue templates

* Update config.yml

* update templates

* Update config.yml

* Added knob to break pipeline unless user opt-in (#4165)

* Added knob to force agent fail if user doesn't opt-in updates on unsupported OS

* Resolved PR comments

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Merge remote-tracking branch 'origin/master' into upd_dotnet6_agent_mar2023

# Conflicts:
#	.azure-pipelines/build-job.yml
#	.azure-pipelines/pipeline.yml
#	.vsts.ci.yml
#	src/Agent.Sdk/Util/PlatformUtil.cs
#	src/Agent.Worker/JobRunner.cs
#	src/Agent.Worker/StepsRunner.cs
#	src/Agent.Worker/TaskRunner.cs
#	src/Common.props
#	src/Misc/layoutbin/installdependencies.sh
#	src/dev.sh

* Localization update (#4187)

* Added files for onelocbuild

* Update localize-pipeline.yml for Azure Pipelines

* Fixed typo in resource.resx path

* Removed en-US

* Update localize-pipeline.yml for Azure Pipelines

* LEGO: check in for Localization to temporary branch. (#3246)

* LEGO: check in for Localization to temporary branch. (#3268)

* LEGO: check in for Localization to temporary branch. (#3265)

* LEGO: check in for Localization to temporary branch. (#3279)

* Temporary renamed localization folders

* Renamed localization folders

* Set up schedule and notifications for the localization pipeline (#3269)

* [localization] Fixed localization pipeline issue with already localized strings replaced (#3332)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14646614

Localized file check-in by OneLocBuild Task

* LEGO: check in for Localization to temporary branch. (#3363)

Co-authored-by: csigs <csigs@outlook.com>

* LEGO: check in for Localization to temporary branch. (#3364)

Co-authored-by: csigs <csigs@outlook.com>

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14919763

Localized file check-in by OneLocBuild Task

* Create PR in OneLocBuild task only on third week of sprint (#3374)

* Fix localization pipeline

* Add missed change

* Added option to disable PR creation

* update localize pipeline (#3637)

Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Localization update (#3612)

* Removing Localize folder

* RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)

* Revert "RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)"

This reverts commit 629921e0faea9739aeb926a6c67a443cbf936b96.

* Revert "Removing Localize folder"

This reverts commit 33cb0ae7c170e9cfb273365c2bc594c6b0ac4da3.

Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Removed OneLocBuild folder

* Move notifications about Agent Localization PR from Slack to MS Teams - Part 1 (#3744)

* Include strings from Misc/src/layoutbin to LocProject file (#4021)

* Update LocProject file

* Update CopyOption for LocProject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)

* Revert "Include strings from Misc/src/layoutbin to LocProject file (#4021)"

This reverts commit 8f5c0c05b3c526d3ac53b9e540917f690445c9ef.

* Revert "Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)" (#4023)

This reverts commit b9c714bdbaff2a28136e0e5093fe9beef1dc4183.

* Include layoutbin into locproject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18680899 (#4028)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221104175414554. (#4030)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221105085259861. (#4031)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221106085521421. (#4032)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18697046 (#4033)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221107143113520. (#4039)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18706620 (#4044)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19415018 (#4163)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230223095051399. (#4168)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230224095040576. (#4170)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476421 (#4179)

* Update loc strings

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476736 (#4181)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230305095015478. (#4183)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230306095225210. (#4184)

* Removing Localize and OneLocBuild folder

---------

Co-authored-by: Anatolii Bolshakov (Akvelon INC) <v-anbols@microsoft.com>
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: Egor Bryzgalov <v-egbryz@microsoft.com>
Co-authored-by: Anatoly Bolshakov <anatoly.bolshakov@akvelon.com>
Co-authored-by: csigs <csigs@outlook.com>
Co-authored-by: Nikita Ezzhev <v-niezz@microsoft.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Denis Tikhomirov <90906678+denis-tikhomirov@users.noreply.github.com>
Co-authored-by: KonstantinTyukalov <v-ktyukalov@microsoft.com>

* Add "Mariner" to list of .NET 6 supporting systems (#4197)

* Cover unsupported OS failure with FF (#4196)

* Cover unsupported OS failure with FF

* Update strings.json

* Update JobRunner.cs

* Update JobRunner.cs

* Add knob to enable fetching net6.json file from GitHub (#4200)

* Added knob "AGENT_ENABLE_FETCHING_NET6_LIST"

* implemented knob EnableFetchingNet6List in function GetNet6SupportedSystems

* Removed RuntimeKnobSource for EnableFetchingNet6List

* removed logic which fails pipeline if there is some error occurred during checking if system supports .NET 6

* fixed typo

* Update autoAssignABTT.yml (#4201)

* Update AzureInstanceMetadataProvider.cs

---------

Co-authored-by: Roman-Shchukin <111063382+Roman-Shchukin@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Steve <hez2010@outlook.com>
Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Rick Brown <ricksbrown73@gmail.com>
Co-authored-by: Liliia Sabitova <107196662+LiliaSabitova@users.noreply.github.com>
Co-authored-by: Eric van Wijk <eric@van-wijk.com>
Co-authored-by: Sergey Koryshev <sergey.koryshev@akvelon.com>
Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Rami <icnocop@users.noreply.github.com>
Co-authored-by: Martin <modermatt@tuta.io>
Co-authored-by: ivanduplenskikh <115665590+ivanduplenskikh@users.noreply.github.com>
Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>
Co-authored-by: İsmayıl İsmayılov <110806089+ismayilov-ismayil@users.noreply.github.com>
Co-authored-by: Maksim Petrov <47208721+vmapetr@users.noreply.github.com>
Co-authored-by: Anatolii Bolshakov (Akvelon INC) <v-anbols@microsoft.com>
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: Egor Bryzgalov <v-egbryz@microsoft.com>
Co-authored-by: Anatoly Bolshakov <anatoly.bolshakov@akvelon.com>
Co-authored-by: csigs <csigs@outlook.com>
Co-authored-by: Nikita Ezzhev <v-niezz@microsoft.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Denis Tikhomirov <90906678+denis-tikhomirov@users.noreply.github.com>
Co-authored-by: Maxim Zaytsev <v-mazayt@microsoft.com>

* Dotnet6 agent merge master  (#4243)

* Catch updating exception (#4082)

* Node16 version updated to 16.17.1" (#4084)

* Bump ubuntu image version to 20.04 (#4079)

* Prevent creating host container network (#3788)

* Prevent creating host container network

* Remove redundant empty lines

* Fix invalid knob value fetching

* Update ContainerOperationProvider.cs

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Allow env.sh to accept additional env var names (#3339)

The hard-coded list is not necessarily enough. This allows the caller
to specify additional environment variables to write to .env.

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Revert "Fix execution of scripts in variables (#4016)" (#4088)

This reverts commit af5328b2656c9bf5a70117044a707e011de77083.

* Add Ubuntu 18.04 (#3943)

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Make agent update list of systems supporting .NET 6 periodically (#4081)

* implemented logic to fetch net6.json from server every hour

* added await keyword

* Moved logic to set warning from ExecutionContext to JobRunner since InitializeJob method is not async

* fixed issue with condition in Equals method of OperatingSystem class

* small refactoring

* net6.json must be read only if it was not fetched from server

* refactored code of method "GetNet6SupportedSystems"

* restored field net6SupportedSystems to reduce IO oprations and cover case when agent started but net6.json is not older than 1 hour

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Retries to lock Services database (#4085)

* retries to lock database

* Decrease timeout + Add retry message

Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Fixed name of DockerAdditionalNetworkOptions Knob (#3888)

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Format agent source code (#4101)

* Run dotnet format

* Remove extra semicolons

* Fix SonarQube's "'Any()' should be used to test for emptiness" / Code Smell (#3404)

* Add script to predict v2->v3 upgrade compatibility (#4092)

* Add script to predict v2->v3 upgrade compatibility

* Fix typo

* Fixed another typo: frpom

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added strict boolean knob values (#4103)

* Add ConvertToBooleanStrict

* Add AsBooleanStrict for agent knobs

* update build-job (#4110)

* update build-job
- added UseDotNet task for linux os

* Switch EsrpCodeSigning from V1 to V2
returned back UseDotNet task condition

* Set UseDotNet version to 6 on osx

* added dotnet 3.1.x before unit tests on win x86

* fix dotnet host search (#4124)

* fix dotnet host search
- added performMultiLevelLookup

* Added runtime to unitTests step

* Changed patch version in semver of runtime

* remove sdk and runtime from unitTests script

* Fixed problem with .NET Core 3.1 installation

* Added UseDotNet task in functionalTests

Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>

* Add option to skip rhel6 in pipeline and ci (#4121)

* skipRhelRelease parameter added

* skipRhelRelease parameter fixed

* releaseRhelOnly parameter added

* Logic of removing not filling lines from releaseNote

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Removed test logs

* Added clear empty lines logic

* Commented code for test. Test changes in pipeline

* Removed test changes

* skipRhelRelease parametr added to ci pipeline

* Update dotnet to 3.1.32 (#4112)

* DockerLogin retries (#4100)

* DockerLogin retries
- added changes from PR microsoft/azure-pipelines-agent#3840
- fixed incorrect variables

* DockerLogin retries
- added step UseDotNet@2

* DockerLogin retries
- added linux to UseDotNet task

* Docker Login retries
Implement retry into DockerLogin method

* Implement feature flag for docker login retries

* revert build-job back

* Added retry for docker start

* fix delay

* update knob description

* Update agent Docker methods
- reworked Docker methods with retries behavior
- changed InvokeWithRetryIfNonZero on to incapsulated logic method

* - renamed local variable as is in ADO

* Added docker retry behavior to docker version method

Co-authored-by: Your Name <you@example.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>

* Add the exact operation system version and environment to the telemetry (#4104)

* Update TaskRunner.cs

* Update build-job.yml

* Added new variables to telemetry AgentName, MachineName, IsSelfHosted

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Mingit version upgraded to 2.39.1 (#4126)

* Fix agent lint errors (#4117)

* Fix CA2000 error with secrets masker

* Fix CA1711 for ServiceBootFlag

* Fix CA2000 for JobRunner

* Resolve CA2000 in StepHost

* Resolve CA2000 in Windows service

* Resolve CA2000 for WorkerCommandManager

* Resove CA2000 for CodeCoverageCommands

* Remove unused namespaces

* Add fixture for SecretMasker tests

* Change Fixtures -> Disposable

* Use dispose pattern to fix errors

* Formatting

* Revert "Allow env.sh to accept additional env var names (#3339)" (#4143)

This reverts commit 27e3d4e177e83aac805bf93c38233fa1a9f06101.

* Bump azure pipelines task lib to 4.2.0 (#4155)

* Add warning for deprecated runners (#4162)

* Add warning for deprecated runners

* Update strings.json

* fix typo

* Update NodeHandler.cs

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage (#4166)

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage

* Re-write try-catch

* Update TaskRunner.cs

* cleanup

* Distinguish AzureInstanceMetadata detection to a separate class

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added legacy lib source for support on Ubuntu 22.04 (#4161)

* Moved logic to drain queues after each task under knob "AGENT_DRAIN_QUEUES_AFTER_TASK" (#4176)

* Added knob "DrainQueuesAfterTask" with default "false"

* move logic to drain queues behind knob DrainQueuesAfterTask

* added mocking of GetScopedEnvironment method in step execution context

* added mocking of GetScopedEnvironment method in step execution context

* changed default value for knob "AGENT_DRAIN_QUEUES_AFTER_TASK" to true

* implementd AsBooleanStrict and check in JobRunner

* Revert "implementd AsBooleanStrict and check in JobRunner"

This reverts commit a1c0c678892a03759543a00b03153adfa0cf5e3b.

* Reversed the knob

* Add issue templates (#4154)

* Add issue templates

* Update config.yml

* update templates

* Update config.yml

* Added knob to break pipeline unless user opt-in (#4165)

* Added knob to force agent fail if user doesn't opt-in updates on unsupported OS

* Resolved PR comments

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Localization update (#4187)

* Added files for onelocbuild

* Update localize-pipeline.yml for Azure Pipelines

* Fixed typo in resource.resx path

* Removed en-US

* Update localize-pipeline.yml for Azure Pipelines

* LEGO: check in for Localization to temporary branch. (#3246)

* LEGO: check in for Localization to temporary branch. (#3268)

* LEGO: check in for Localization to temporary branch. (#3265)

* LEGO: check in for Localization to temporary branch. (#3279)

* Temporary renamed localization folders

* Renamed localization folders

* Set up schedule and notifications for the localization pipeline (#3269)

* [localization] Fixed localization pipeline issue with already localized strings replaced (#3332)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14646614

Localized file check-in by OneLocBuild Task

* LEGO: check in for Localization to temporary branch. (#3363)

Co-authored-by: csigs <csigs@outlook.com>

* LEGO: check in for Localization to temporary branch. (#3364)

Co-authored-by: csigs <csigs@outlook.com>

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14919763

Localized file check-in by OneLocBuild Task

* Create PR in OneLocBuild task only on third week of sprint (#3374)

* Fix localization pipeline

* Add missed change

* Added option to disable PR creation

* update localize pipeline (#3637)

Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Localization update (#3612)

* Removing Localize folder

* RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)

* Revert "RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)"

This reverts commit 629921e0faea9739aeb926a6c67a443cbf936b96.

* Revert "Removing Localize folder"

This reverts commit 33cb0ae7c170e9cfb273365c2bc594c6b0ac4da3.

Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Removed OneLocBuild folder

* Move notifications about Agent Localization PR from Slack to MS Teams - Part 1 (#3744)

* Include strings from Misc/src/layoutbin to LocProject file (#4021)

* Update LocProject file

* Update CopyOption for LocProject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)

* Revert "Include strings from Misc/src/layoutbin to LocProject file (#4021)"

This reverts commit 8f5c0c05b3c526d3ac53b9e540917f690445c9ef.

* Revert "Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)" (#4023)

This reverts commit b9c714bdbaff2a28136e0e5093fe9beef1dc4183.

* Include layoutbin into locproject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18680899 (#4028)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221104175414554. (#4030)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221105085259861. (#4031)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221106085521421. (#4032)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18697046 (#4033)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221107143113520. (#4039)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18706620 (#4044)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19415018 (#4163)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230223095051399. (#4168)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230224095040576. (#4170)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476421 (#4179)

* Update loc strings

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476736 (#4181)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230305095015478. (#4183)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230306095225210. (#4184)

* Removing Localize and OneLocBuild folder

---------

Co-authored-by: Anatolii Bolshakov (Akvelon INC) <v-anbols@microsoft.com>
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: Egor Bryzgalov <v-egbryz@microsoft.com>
Co-authored-by: Anatoly Bolshakov <anatoly.bolshakov@akvelon.com>
Co-authored-by: csigs <csigs@outlook.com>
Co-authored-by: Nikita Ezzhev <v-niezz@microsoft.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Denis Tikhomirov <90906678+denis-tikhomirov@users.noreply.github.com>
Co-authored-by: KonstantinTyukalov <v-ktyukalov@microsoft.com>

* Add "Mariner" to list of .NET 6 supporting systems (#4197)

* Cover unsupported OS failure with FF (#4196)

* Cover unsupported OS failure with FF

* Update strings.json

* Update JobRunner.cs

* Update JobRunner.cs

* Add knob to enable fetching net6.json file from GitHub (#4200)

* Added knob "AGENT_ENABLE_FETCHING_NET6_LIST"

* implemented knob EnableFetchingNet6List in function GetNet6SupportedSystems

* Removed RuntimeKnobSource for EnableFetchingNet6List

* removed logic which fails pipeline if there is some error occurred during checking if system supports .NET 6

* fixed typo

* Update autoAssignABTT.yml (#4201)

* Fixed typos in strings.json (#3523)

* Added trimmed user secret to masker dictionary (#4195)

* Add trimmed secret value to masker dictionary

* [Refactor] Update MinSecretLength property. (#4137)

* [Refactor] Update MinSecretLength property.

Removed exception throwing, Added MinSecretLengthLimit public property

* Update test MinValue test

* Update test

* add ability to disable publishing tests metadata (#4209)

* moved logic of checking if system supports .NET 6 to JobExtension (#4207)

* Increase limit for AZP_IGNORE_SECRETS_SHORTER_THAN knob to 6 (#4214)

* Update secret masker length limit

* Make property static

* Decrease limit to 6

* Update tests

* Update tests

* Update comment

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Refactor logic to drain queues after each task (#4213)

* move draining queues before calling method "Complete"

* Revert "BUG 1972388: vsbuild task in YAML build pipeline hangs forever in ADO even though the task has already logged completion (#3979)"

This reverts commit b3cf2c0e3167288f4b60e0ba38e17b53cd9fa9f5.

* implemented logic to drain web console and timeline queues after each task

* corrected typo

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* renamed variable "drain" to "shouldDrain"

---------

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* git lfs version upgraded (#4218)

* Add noderunner.md (#4202)

* Add noderunner.md

* Minor fixes

* Update noderunner.md

* Update noderunner.md

* Resolve comments

* Minor fixes in noderunner doc

* minor fixes

* Bug 2030875 - azure-pipelines-task-lib repo logs passwords in plain text (#4223)

* added logic to unescape vso command in case there is encoded symbols

* Added "TaskCommandHelper" class with method "AddSecret" which checks if decoding percents disabled and adds secret with decoded percents as well

* fixed issue with test SetEndpointAuthParameter

* moved logic to add decoded secret under check if value is empty

* Update AzureInstanceMetadataProvider.cs

* Update agentversion

---------

Co-authored-by: Roman-Shchukin <111063382+Roman-Shchukin@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Steve <hez2010@outlook.com>
Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Rick Brown <ricksbrown73@gmail.com>
Co-authored-by: Liliia Sabitova <107196662+LiliaSabitova@users.noreply.github.com>
Co-authored-by: Eric van Wijk <eric@van-wijk.com>
Co-authored-by: Sergey Koryshev <sergey.koryshev@akvelon.com>
Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Rami <icnocop@users.noreply.github.com>
Co-authored-by: Martin <modermatt@tuta.io>
Co-authored-by: ivanduplenskikh <115665590+ivanduplenskikh@users.noreply.github.com>
Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>
Co-authored-by: İsmayıl İsmayılov <110806089+ismayilov-ismayil@users.noreply.github.com>
Co-authored-by: Maksim Petrov <47208721+vmapetr@users.noreply.github.com>
Co-authored-by: Anatolii Bolshakov (Akvelon INC) <v-anbols@microsoft.com>
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: Egor Bryzgalov <v-egbryz@microsoft.com>
Co-authored-by: Anatoly Bolshakov <anatoly.bolshakov@akvelon.com>
Co-authored-by: csigs <csigs@outlook.com>
Co-authored-by: Nikita Ezzhev <v-niezz@microsoft.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Denis Tikhomirov <90906678+denis-tikhomirov@users.noreply.github.com>
Co-authored-by: Maxim Zaytsev <v-mazayt@microsoft.com>
Co-authored-by: Rob Hensley <hensleyrob@gmail.com>

* Upd dotnet6 agent before merge with master (#4252)

* Catch updating exception (#4082)

* Node16 version updated to 16.17.1" (#4084)

* Bump ubuntu image version to 20.04 (#4079)

* Prevent creating host container network (#3788)

* Prevent creating host container network

* Remove redundant empty lines

* Fix invalid knob value fetching

* Update ContainerOperationProvider.cs

Co-authored-by: Denis Rumyantsev <mr.denis.rumyantsev@gmail.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Allow env.sh to accept additional env var names (#3339)

The hard-coded list is not necessarily enough. This allows the caller
to specify additional environment variables to write to .env.

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Revert "Fix execution of scripts in variables (#4016)" (#4088)

This reverts commit af5328b2656c9bf5a70117044a707e011de77083.

* Add Ubuntu 18.04 (#3943)

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Make agent update list of systems supporting .NET 6 periodically (#4081)

* implemented logic to fetch net6.json from server every hour

* added await keyword

* Moved logic to set warning from ExecutionContext to JobRunner since InitializeJob method is not async

* fixed issue with condition in Equals method of OperatingSystem class

* small refactoring

* net6.json must be read only if it was not fetched from server

* refactored code of method "GetNet6SupportedSystems"

* restored field net6SupportedSystems to reduce IO oprations and cover case when agent started but net6.json is not older than 1 hour

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Retries to lock Services database (#4085)

* retries to lock database

* Decrease timeout + Add retry message

Co-authored-by: Konstantin Tyukalov <v-ktyukalov@microsoft.com>
Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Fixed name of DockerAdditionalNetworkOptions Knob (#3888)

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Format agent source code (#4101)

* Run dotnet format

* Remove extra semicolons

* Fix SonarQube's "'Any()' should be used to test for emptiness" / Code Smell (#3404)

* Add script to predict v2->v3 upgrade compatibility (#4092)

* Add script to predict v2->v3 upgrade compatibility

* Fix typo

* Fixed another typo: frpom

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added strict boolean knob values (#4103)

* Add ConvertToBooleanStrict

* Add AsBooleanStrict for agent knobs

* update build-job (#4110)

* update build-job
- added UseDotNet task for linux os

* Switch EsrpCodeSigning from V1 to V2
returned back UseDotNet task condition

* Set UseDotNet version to 6 on osx

* added dotnet 3.1.x before unit tests on win x86

* fix dotnet host search (#4124)

* fix dotnet host search
- added performMultiLevelLookup

* Added runtime to unitTests step

* Changed patch version in semver of runtime

* remove sdk and runtime from unitTests script

* Fixed problem with .NET Core 3.1 installation

* Added UseDotNet task in functionalTests

Co-authored-by: Roman Shchukin <roman.shchukin@akvelon.com>

* Add option to skip rhel6 in pipeline and ci (#4121)

* skipRhelRelease parameter added

* skipRhelRelease parameter fixed

* releaseRhelOnly parameter added

* Logic of removing not filling lines from releaseNote

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Fix pipeline with test releaseNote job

* Removed test logs

* Added clear empty lines logic

* Commented code for test. Test changes in pipeline

* Removed test changes

* skipRhelRelease parametr added to ci pipeline

* Update dotnet to 3.1.32 (#4112)

* DockerLogin retries (#4100)

* DockerLogin retries
- added changes from PR microsoft/azure-pipelines-agent#3840
- fixed incorrect variables

* DockerLogin retries
- added step UseDotNet@2

* DockerLogin retries
- added linux to UseDotNet task

* Docker Login retries
Implement retry into DockerLogin method

* Implement feature flag for docker login retries

* revert build-job back

* Added retry for docker start

* fix delay

* update knob description

* Update agent Docker methods
- reworked Docker methods with retries behavior
- changed InvokeWithRetryIfNonZero on to incapsulated logic method

* - renamed local variable as is in ADO

* Added docker retry behavior to docker version method

Co-authored-by: Your Name <you@example.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>
Co-authored-by: Merlyn Oppenheim <merlynop@microsoft.com>

* Add the exact operation system version and environment to the telemetry (#4104)

* Update TaskRunner.cs

* Update build-job.yml

* Added new variables to telemetry AgentName, MachineName, IsSelfHosted

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Mingit version upgraded to 2.39.1 (#4126)

* Fix agent lint errors (#4117)

* Fix CA2000 error with secrets masker

* Fix CA1711 for ServiceBootFlag

* Fix CA2000 for JobRunner

* Resolve CA2000 in StepHost

* Resolve CA2000 in Windows service

* Resolve CA2000 for WorkerCommandManager

* Resove CA2000 for CodeCoverageCommands

* Remove unused namespaces

* Add fixture for SecretMasker tests

* Change Fixtures -> Disposable

* Use dispose pattern to fix errors

* Formatting

* Revert "Allow env.sh to accept additional env var names (#3339)" (#4143)

This reverts commit 27e3d4e177e83aac805bf93c38233fa1a9f06101.

* Bump azure pipelines task lib to 4.2.0 (#4155)

* Add warning for deprecated runners (#4162)

* Add warning for deprecated runners

* Update strings.json

* fix typo

* Update NodeHandler.cs

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage (#4166)

* FEATURE 2019014 - Gather telemetry on Agent Azure & Docker Container usage

* Re-write try-catch

* Update TaskRunner.cs

* cleanup

* Distinguish AzureInstanceMetadata detection to a separate class

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Added legacy lib source for support on Ubuntu 22.04 (#4161)

* Moved logic to drain queues after each task under knob "AGENT_DRAIN_QUEUES_AFTER_TASK" (#4176)

* Added knob "DrainQueuesAfterTask" with default "false"

* move logic to drain queues behind knob DrainQueuesAfterTask

* added mocking of GetScopedEnvironment method in step execution context

* added mocking of GetScopedEnvironment method in step execution context

* changed default value for knob "AGENT_DRAIN_QUEUES_AFTER_TASK" to true

* implementd AsBooleanStrict and check in JobRunner

* Revert "implementd AsBooleanStrict and check in JobRunner"

This reverts commit a1c0c678892a03759543a00b03153adfa0cf5e3b.

* Reversed the knob

* Add issue templates (#4154)

* Add issue templates

* Update config.yml

* update templates

* Update config.yml

* Added knob to break pipeline unless user opt-in (#4165)

* Added knob to force agent fail if user doesn't opt-in updates on unsupported OS

* Resolved PR comments

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Localization update (#4187)

* Added files for onelocbuild

* Update localize-pipeline.yml for Azure Pipelines

* Fixed typo in resource.resx path

* Removed en-US

* Update localize-pipeline.yml for Azure Pipelines

* LEGO: check in for Localization to temporary branch. (#3246)

* LEGO: check in for Localization to temporary branch. (#3268)

* LEGO: check in for Localization to temporary branch. (#3265)

* LEGO: check in for Localization to temporary branch. (#3279)

* Temporary renamed localization folders

* Renamed localization folders

* Set up schedule and notifications for the localization pipeline (#3269)

* [localization] Fixed localization pipeline issue with already localized strings replaced (#3332)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14646614

Localized file check-in by OneLocBuild Task

* LEGO: check in for Localization to temporary branch. (#3363)

Co-authored-by: csigs <csigs@outlook.com>

* LEGO: check in for Localization to temporary branch. (#3364)

Co-authored-by: csigs <csigs@outlook.com>

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 14919763

Localized file check-in by OneLocBuild Task

* Create PR in OneLocBuild task only on third week of sprint (#3374)

* Fix localization pipeline

* Add missed change

* Added option to disable PR creation

* update localize pipeline (#3637)

Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Localization update (#3612)

* Removing Localize folder

* RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)

* Revert "RHEL/CentOS 7 Fix for Lets Encrypt Change (#3601)"

This reverts commit 629921e0faea9739aeb926a6c67a443cbf936b96.

* Revert "Removing Localize folder"

This reverts commit 33cb0ae7c170e9cfb273365c2bc594c6b0ac4da3.

Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>

* Removed OneLocBuild folder

* Move notifications about Agent Localization PR from Slack to MS Teams - Part 1 (#3744)

* Include strings from Misc/src/layoutbin to LocProject file (#4021)

* Update LocProject file

* Update CopyOption for LocProject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)

* Revert "Include strings from Misc/src/layoutbin to LocProject file (#4021)"

This reverts commit 8f5c0c05b3c526d3ac53b9e540917f690445c9ef.

* Revert "Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18665127 (#4022)" (#4023)

This reverts commit b9c714bdbaff2a28136e0e5093fe9beef1dc4183.

* Include layoutbin into locproject

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18680899 (#4028)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221104175414554. (#4030)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221105085259861. (#4031)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221106085521421. (#4032)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18697046 (#4033)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20221107143113520. (#4039)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 18706620 (#4044)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19415018 (#4163)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230223095051399. (#4168)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230224095040576. (#4170)

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476421 (#4179)

* Update loc strings

* Localized file check-in by OneLocBuild Task: Build definition ID 10944: Build ID 19476736 (#4181)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230305095015478. (#4183)

* Juno: check in to lego/hb_5733438c-38c5-41ae-9557-a9d9754c4535_20230306095225210. (#4184)

* Removing Localize and OneLocBuild folder

---------

Co-authored-by: Anatolii Bolshakov (Akvelon INC) <v-anbols@microsoft.com>
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: Egor Bryzgalov <v-egbryz@microsoft.com>
Co-authored-by: Anatoly Bolshakov <anatoly.bolshakov@akvelon.com>
Co-authored-by: csigs <csigs@outlook.com>
Co-authored-by: Nikita Ezzhev <v-niezz@microsoft.com>
Co-authored-by: kuleshovilya <87485027+kuleshovilya@users.noreply.github.com>
Co-authored-by: Ilya Kuleshov <v-ikuleshov@microsoft.com>
Co-authored-by: AndreyIvanov42 <93121155+AndreyIvanov42@users.noreply.github.com>
Co-authored-by: Denis Tikhomirov <90906678+denis-tikhomirov@users.noreply.github.com>
Co-authored-by: KonstantinTyukalov <v-ktyukalov@microsoft.com>

* Add "Mariner" to list of .NET 6 supporting systems (#4197)

* Cover unsupported OS failure with FF (#4196)

* Cover unsupported OS failure with FF

* Update strings.json

* Update JobRunner.cs

* Update JobRunner.cs

* Add knob to enable fetching net6.json file from GitHub (#4200)

* Added knob "AGENT_ENABLE_FETCHING_NET6_LIST"

* implemented knob EnableFetchingNet6List in function GetNet6SupportedSystems

* Removed RuntimeKnobSource for EnableFetchingNet6List

* removed logic which fails pipeline if there is some error occurred during checking if system supports .NET 6

* fixed typo

* Update autoAssignABTT.yml (#4201)

* Fixed typos in strings.json (#3523)

* Added trimmed user secret to masker dictionary (#4195)

* Add trimmed secret value to masker dictionary

* [Refactor] Update MinSecretLength property. (#4137)

* [Refactor] Update MinSecretLength property.

Removed exception throwing, Added MinSecretLengthLimit public property

* Update test MinValue test

* Update test

* add ability to disable publishing tests metadata (#4209)

* moved logic of checking if system supports .NET 6 to JobExtension (#4207)

* Increase limit for AZP_IGNORE_SECRETS_SHORTER_THAN knob to 6 (#4214)

* Update secret masker length limit

* Make property static

* Decrease limit to 6

* Update tests

* Update tests

* Update comment

---------

Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* Refactor logic to drain queues after each task (#4213)

* move draining queues before calling method "Complete"

* Revert "BUG 1972388: vsbuild task in YAML build pipeline hangs forever in ADO even though the task has already logged completion (#3979)"

This reverts commit b3cf2c0e3167288f4b60e0ba38e17b53cd9fa9f5.

* implemented logic to drain web console and timeline queues after each task

* corrected typo

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* renamed variable "drain" to "shouldDrain"

---------

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>
Co-authored-by: Kirill Ivlev <102740624+kirill-ivlev@users.noreply.github.com>

* git lfs version upgraded (#4218)

* Add noderunner.md (#4202)

* Add noderunner.md

* Minor fixes

* Update noderunner.md

* Update noderunner.md

* Resolve comments

* Minor fixes in noderunner doc

* minor fixes

* Bug 2030875 - azure-pipelines-task-lib repo logs passwords in plain text (#4223)

* added logic to unescape vso command in case there is encoded symbols

* Added "TaskCommandHelper" class with method "AddSecret" which checks if decoding percents disabled and adds secret with decoded percents as well

* fixed issue with test SetEndpointAuthParameter

* moved logic to add decoded secret under check if value is empty

* Fix: Remove invalid chars from filename (#3831)

Co-authored-by: Konstantin Tyukalov <52399739+KonstantinTyukalov@users.noreply.github.com>

* Add force of _tasks creation by knob (#4236)

* Upgrade vss api netcore version, has BuildXL changes (#4220)

* Upgrade vss api netcore version, has BuildXL changes

* Adding Nuget authenticate task

* Nuget auth task before the build

* Try v0

* Remove nuget auth task

* Nuget auth

* Remove auth task

* Remove redundant security package declaration

* Adding System.Security.Cryptography.ProtectedData back

* Adding cred provider

* Removing redundant system.buffers reference

* Supress warnings

* Remove unused variable

* Removing HashType.64k hardcoding

* update  packages

* Update agentversion

---------

Co-authored-by: Roman-Shchukin <111063382+Roman-Shchukin@users.noreply.github.com>
Co-autho…
  • Loading branch information
1 parent 7778d90 commit b2f4f44
Show file tree
Hide file tree
Showing 46 changed files with 265 additions and 161 deletions.
20 changes: 12 additions & 8 deletions .azure-pipelines/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ parameters:
- linux
- osx
- rhel.6
- rhel.7.2

- name: arch
type: string
Expand Down Expand Up @@ -83,6 +84,9 @@ jobs:
${{ if ne(parameters.os, 'win') }}:
devCommand: ./dev.sh
layoutRoot: '_layout/${{ parameters.os }}-${{ parameters.arch }}'
DisableCFSDetector: true
DisableDockerDetector: true
NugetSecurityAnalysisWarningLevel: "none"
${{ if eq(parameters.os, 'rhel.6') }}:
AGENT_USE_NODE10: true

Expand All @@ -104,14 +108,15 @@ jobs:
branch: ${{ parameters.branch }}

# 1ES images used on the ARM pool doesn't contain unzip tool, so we need to install it before starting the build
- ${{ if eq(parameters.arch, 'arm64') }}:
- ${{ if and(eq(parameters.arch, 'arm64'), ne(parameters.os, 'osx')) }}:
- script: sudo apt-get update && sudo apt-get -y install unzip
displayName: Install unzip

# Build agent layout
- script: ${{ variables.devCommand }} layout Release ${{ parameters.os }}-${{ parameters.arch }}
workingDirectory: src
displayName: Build & Layout Release
retryCountOnTaskFailure: 5
${{ if parameters.enableADOLogIssue }}:
env:
ADO_ENABLE_LOGISSUE: true
Expand All @@ -126,9 +131,9 @@ jobs:
- ${{ if parameters.unitTests }}:
- ${{ if and(eq(parameters.os, 'win'), eq(parameters.arch, 'x86')) }}:
- task: UseDotNet@2
displayName: Install .NET Core 3.1 SDK
displayName: Install .NET Core 6 Runtime
inputs:
version: '3.1.x'
version: '6.0.x'
packageType: 'runtime'
installationPath: 'C:\Program Files (x86)\dotnet'
env:
Expand All @@ -146,12 +151,11 @@ jobs:
- ${{ if parameters.functionalTests }}:
- ${{ if and(eq(parameters.os, 'win'), eq(parameters.arch, 'x86')) }}:
- task: UseDotNet@2
displayName: Install .NET Core 3.1 SDK
displayName: Install .NET Core 6 SDK
inputs:
version: '3.1.x'
packageType: runtime
performMultiLevelLookup: true
installationPath: 'C:\Program Files (x86)\dotnet'
version: '6.0.405'
packageType: sdk
performMultiLevelLookup: true
- script: ${{ variables.devCommand }} testl1 Debug ${{ parameters.os }}-${{ parameters.arch }}
workingDirectory: src
displayName: Functional tests
Expand Down
37 changes: 30 additions & 7 deletions .azure-pipelines/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,24 @@ parameters:
- name: linux_arm64
type: boolean
default: true
- name: rhel6_x64
- name: rhel7_x64
type: boolean
default: true
- name: macOS_x64
type: boolean
default: true
- name: macOS_arm64
type: boolean
default: true

resources:
containers:
- container: dotnetcore_arm
image: azpagentinfra/arm:latest
- container: dotnetcore_centos6
image: azpagentinfra/centos6:latest
- container: dotnetcore_centos7
image: azpagentinfra/centos7:latest

stages:

Expand Down Expand Up @@ -163,16 +168,16 @@ stages:
publishArtifacts: ${{ parameters.publishArtifacts }}
buildAlternatePackage: ${{ parameters.buildAlternatePackage }}

# RHEL6 (x64)
- ${{ if and(parameters.rhel6_x64, not(parameters.skipRhelRelease), parameters.releaseRhelOnly) }}:
# RHEL7 (x64)
- ${{ if parameters.rhel7_x64 }}:
- template: build-jobs.yml
parameters:
jobName: build_rhel6_x64
displayName: RHEL6 (x64)
jobName: build_rhel7_x64
displayName: RHEL7 (x64)
pool:
vmImage: ubuntu-20.04
container: dotnetcore_centos6
os: rhel.6
container: dotnetcore_centos7
os: linux
arch: x64
branch: ${{ parameters.branch }}
componentDetection: false
Expand Down Expand Up @@ -200,4 +205,22 @@ stages:
publishArtifacts: ${{ parameters.publishArtifacts }}
buildAlternatePackage: ${{ parameters.buildAlternatePackage }}

# macOS arm64
- ${{ if parameters.macOS_arm64 }}:
- template: build-jobs.yml
parameters:
jobName: build_osx_arm64
displayName: macOS (arm64)
pool:
vmImage: macOS-12
os: osx
arch: arm64
branch: ${{ parameters.branch }}
componentDetection: ${{ parameters.componentDetection }}
unitTests: false
functionalTests: false
sign: ${{ parameters.sign }}
publishArtifacts: ${{ parameters.publishArtifacts }}
buildAlternatePackage: ${{ parameters.buildAlternatePackage }}

- ${{ parameters.postBuildStages }}
13 changes: 9 additions & 4 deletions .vsts.ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,18 @@ parameters:
type: boolean
displayName: Linux (ARM64)
default: false
- name: rhel6_x64
- name: rhel7_x64
type: boolean
displayName: RHEL 6 (x64)
default: true
displayName: RHEL 7 (x64)
default: false
- name: macOS_x64
type: boolean
displayName: macOS (x64)
default: true
- name: macOS_arm64
type: boolean
displayName: macOS (arm64)
default: true
- name: skipRhelRelease
type: boolean
default: true
Expand All @@ -51,5 +55,6 @@ extends:
linux_x64: ${{ parameters.linux_x64 }}
linux_arm: ${{ parameters.linux_arm }}
linux_arm64: ${{ parameters.linux_arm64 }}
rhel6_x64: ${{ parameters.rhel6_x64 }}
rhel7_x64: ${{ parameters.rhel7_x64 }}
macOS_x64: ${{ parameters.macOS_x64 }}
macOS_arm64: ${{ parameters.macOS_arm64 }}
6 changes: 4 additions & 2 deletions releaseNote.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
| ----------- | ------- | ------- |
| Windows x64 | [vsts-agent-win-x64-<AGENT_VERSION>.zip](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-win-x64-<AGENT_VERSION>.zip) | <HASH> |
| Windows x86 | [vsts-agent-win-x86-<AGENT_VERSION>.zip](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-win-x86-<AGENT_VERSION>.zip) | <HASH> |
| macOS | [vsts-agent-osx-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-osx-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| macOS x64 | [vsts-agent-osx-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-osx-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| macOS arm64 | [vsts-agent-osx-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-osx-arm64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux x64 | [vsts-agent-linux-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux ARM | [vsts-agent-linux-arm-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-arm-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux ARM64 | [vsts-agent-linux-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-arm64-<AGENT_VERSION>.tar.gz) | <HASH> |
Expand Down Expand Up @@ -71,7 +72,8 @@ See [notes](docs/node6.md) on Node version support for more details.
| ----------- | ------- | ------- |
| Windows x64 | [pipelines-agent-win-x64-<AGENT_VERSION>.zip](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-win-x64-<AGENT_VERSION>.zip) | <HASH> |
| Windows x86 | [pipelines-agent-win-x86-<AGENT_VERSION>.zip](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-win-x86-<AGENT_VERSION>.zip) | <HASH> |
| macOS | [pipelines-agent-osx-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-osx-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| macOS x64 | [pipelines-agent-osx-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-osx-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| macOS arm64 | [pipelines-agent-osx-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-osx-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux x64 | [pipelines-agent-linux-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-linux-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux ARM | [pipelines-agent-linux-arm-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-linux-arm-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux ARM64 | [pipelines-agent-linux-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-linux-arm64-<AGENT_VERSION>.tar.gz) | <HASH> |
Expand Down
2 changes: 1 addition & 1 deletion src/Agent.Listener/Agent.Listener.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<PackageReference Include="CommandLineParser" Version="2.7.82" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8" Condition="$(CodeAnalysis)=='true'" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.7.0" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.7.0" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.4.0" />
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ public void ConfigureService(AgentSettings settings, CommandSettings command)
{
logonPassword = command.GetWindowsLogonPassword(logonAccount);
}

catch (ArgumentException exception)
{
Trace.Warning($"LogonAccount {logonAccount} is not managed service account, although you did not specify WindowsLogonPassword - maybe you wanted to use managed service account? Please see https://aka.ms/gmsa for guidelines to set up sMSA/gMSA account. ");
Expand Down
1 change: 1 addition & 0 deletions src/Agent.Listener/NuGet.Config
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json"/>
<add key="restsdk" value="https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/nugetvssprivate/nuget/v3/index.json"/>
</packageSources>
</configuration>
6 changes: 6 additions & 0 deletions src/Agent.Listener/SelfUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,12 @@ private async Task<bool> UpdateNeeded(string targetVersion, CancellationToken to
Trace.Info($"Current running agent version is {BuildConstants.AgentPackage.Version}");
PackageVersion agentVersion = new PackageVersion(BuildConstants.AgentPackage.Version);

if (serverVersion.Major == 2 && agentVersion.Major == 3)
{
Trace.Info("We don't downgrade agent from 3.* to 2.*, skipping update");
return false;
}

//Checking if current system support .NET 6 agent
if (agentVersion.Major == 2 && serverVersion.Major == 3)
{
Expand Down
16 changes: 8 additions & 8 deletions src/Agent.Plugins/TFCliManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public override TfsVCFeatures Features
public async Task AddAsync(string localPath)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "add", localPath);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "vc", "add", localPath);
}

public void CleanupProxySetting()
Expand All @@ -66,13 +66,13 @@ public Task EulaAsync()
public async Task GetAsync(string localPath, bool quiet = false)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, quiet, RetriesOnFailure, "vc", "get", $"/version:{SourceVersion}", "/recursive", "/overwrite", localPath);
await RunCommandAsync(FormatTags.OmitCollectionUrl, quiet, RetriesOnFailure, "vc", "get", $"/version:{SourceVersion}", "/recursive", "/overwrite", localPath);
}

public string ResolvePath(string serverPath)
{
ArgUtil.NotNullOrEmpty(serverPath, nameof(serverPath));
string localPath = RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "resolvePath", serverPath).GetAwaiter().GetResult();
string localPath = RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "vc", "resolvePath", serverPath).GetAwaiter().GetResult();
return localPath?.Trim() ?? string.Empty;
}

Expand All @@ -84,7 +84,7 @@ public string ResolvePath(string serverPath)
//
// The current approach taken is: allow the exception to bubble. The TfsVCSourceProvider
// will catch the exception, log it as a warning, throw away the workspace, and re-clone.
public async Task ScorchAsync() => await RunCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "scorch", SourcesDirectory, "/recursive", "/diff", "/unmapped");
public async Task ScorchAsync() => await RunCommandAsync(FormatTags.OmitCollectionUrl, "vc", "scorch", SourcesDirectory, "/recursive", "/diff", "/unmapped");

public void SetupProxy(string proxyUrl, string proxyUsername, string proxyPassword)
{
Expand Down Expand Up @@ -173,11 +173,11 @@ public async Task ShelveAsync(string shelveset, string commentFile, bool move)
// TODO: Remove parameter "move" after last-saved-checkin-metadata problem is fixed properly.
if (move)
{
await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "shelve", "/move", "/replace", "/recursive", $"/comment:@{commentFile}", shelveset, SourcesDirectory);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "vc", "shelve", "/move", "/replace", "/recursive", $"/comment:@{commentFile}", shelveset, SourcesDirectory);
return;
}

await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "shelve", "/saved", "/replace", "/recursive", $"/comment:@{commentFile}", shelveset, SourcesDirectory);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "vc", "shelve", "/saved", "/replace", "/recursive", $"/comment:@{commentFile}", shelveset, SourcesDirectory);
}

public async Task<ITfsVCShelveset> ShelvesetsAsync(string shelveset)
Expand Down Expand Up @@ -241,13 +241,13 @@ public override async Task<bool> TryWorkspaceDeleteAsync(ITfsVCWorkspace workspa
public async Task UndoAsync(string localPath)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, "vc", "undo", "/recursive", localPath);
await RunCommandAsync(FormatTags.OmitCollectionUrl, "vc", "undo", "/recursive", localPath);
}

public async Task UnshelveAsync(string shelveset, bool failOnNonZeroExitCode = true)
{
ArgUtil.NotNullOrEmpty(shelveset, nameof(shelveset));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, false, failOnNonZeroExitCode, "vc", "unshelve", shelveset);
await RunCommandAsync(FormatTags.OmitCollectionUrl, false, failOnNonZeroExitCode, "vc", "unshelve", shelveset);
}

public async Task WorkfoldCloakAsync(string serverPath)
Expand Down
18 changes: 9 additions & 9 deletions src/Agent.Plugins/TeeCliManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public sealed class TeeCliManager : TfsVCCliManager, ITfsVCCliManager
public async Task AddAsync(string localPath)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "add", localPath);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "add", localPath);
}

public void CleanupProxySetting()
Expand All @@ -38,13 +38,13 @@ public void CleanupProxySetting()

public async Task EulaAsync()
{
await RunCommandAsync(FormatFlags.All, "eula", "-accept");
await RunCommandAsync(FormatTags.All, "eula", "-accept");
}

public async Task GetAsync(string localPath, bool quiet = false)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, quiet, 3, "get", $"-version:{SourceVersion}", "-recursive", "-overwrite", localPath);
await RunCommandAsync(FormatTags.OmitCollectionUrl, quiet, 3, "get", $"-version:{SourceVersion}", "-recursive", "-overwrite", localPath);
}

public string ResolvePath(string serverPath)
Expand Down Expand Up @@ -135,11 +135,11 @@ public async Task ShelveAsync(string shelveset, string commentFile, bool move)
// TODO: Remove parameter move after last-saved-checkin-metadata problem is fixed properly.
if (move)
{
await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "shelve", $"-workspace:{WorkspaceName}", "-move", "-replace", "-recursive", $"-comment:@{commentFile}", shelveset);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "shelve", $"-workspace:{WorkspaceName}", "-move", "-replace", "-recursive", $"-comment:@{commentFile}", shelveset);
return;
}

await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "shelve", $"-workspace:{WorkspaceName}", "-saved", "-replace", "-recursive", $"-comment:@{commentFile}", shelveset);
await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "shelve", $"-workspace:{WorkspaceName}", "-saved", "-replace", "-recursive", $"-comment:@{commentFile}", shelveset);
}

public async Task<ITfsVCShelveset> ShelvesetsAsync(string shelveset)
Expand All @@ -166,7 +166,7 @@ public async Task<ITfsVCShelveset> ShelvesetsAsync(string shelveset)
public async Task<ITfsVCStatus> StatusAsync(string localPath)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
string output = await RunPorcelainCommandAsync(FormatFlags.OmitCollectionUrl, "status", "-recursive", "-nodetect", "-format:xml", localPath);
string output = await RunPorcelainCommandAsync(FormatTags.OmitCollectionUrl, "status", "-recursive", "-nodetect", "-format:xml", localPath);
string xml = ExtractXml(output);
var serializer = new XmlSerializer(typeof(TeeStatus));
using (var reader = new StringReader(xml ?? string.Empty))
Expand Down Expand Up @@ -228,13 +228,13 @@ public override async Task<bool> TryWorkspaceDeleteAsync(ITfsVCWorkspace workspa
public async Task UndoAsync(string localPath)
{
ArgUtil.NotNullOrEmpty(localPath, nameof(localPath));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, "undo", "-recursive", localPath);
await RunCommandAsync(FormatTags.OmitCollectionUrl, "undo", "-recursive", localPath);
}

public async Task UnshelveAsync(string shelveset, bool failOnNonZeroExitCode = true)
{
ArgUtil.NotNullOrEmpty(shelveset, nameof(shelveset));
await RunCommandAsync(FormatFlags.OmitCollectionUrl, false, failOnNonZeroExitCode, "unshelve", "-format:detailed", $"-workspace:{WorkspaceName}", shelveset);
await RunCommandAsync(FormatTags.OmitCollectionUrl, false, failOnNonZeroExitCode, "unshelve", "-format:detailed", $"-workspace:{WorkspaceName}", shelveset);
}

public async Task WorkfoldCloakAsync(string serverPath)
Expand Down Expand Up @@ -280,7 +280,7 @@ public async Task<ITfsVCWorkspace[]> WorkspacesAsync(bool matchWorkspaceNameOnAn
args.Add("-format:xml");

// Run the command.
TfsVCPorcelainCommandResult result = await TryRunPorcelainCommandAsync(FormatFlags.None, RetriesOnFailure, args.ToArray());
TfsVCPorcelainCommandResult result = await TryRunPorcelainCommandAsync(FormatTags.None, RetriesOnFailure, args.ToArray());
ArgUtil.NotNull(result, nameof(result));
if (result.Exception != null)
{
Expand Down
Loading

0 comments on commit b2f4f44

Please sign in to comment.