* Properly handle error for case where no issue (pr) is found for specified commit
* Use logInfo in various places
* Change LogWarning to LogInfo
---------
Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com>
Given we are using the tenantId to determine to add the prefix or not we need to make sure we have it set before we check it. For the pipelines it is set at the script calling time so it was working there but for some local scenarios it is not set yet, so we need to do it a little later in the script.
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* when processing a PR diff, treat packages added via their triggeringPaths as directly changed (used to be indirect)
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* updating eng/common/testproxy/test-proxy-tool.yml and eng/common/testproxy/test-proxy-standalone-tool.yml to output a bunch of information about what they're actually running for their commands
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Patrick Hallisey <hallipr@gmail.com>
* add a category to parse triggerPaths when there is no artifact present (this is the go use-case)
* add integration tests for Save-Package-Properties scenarios
* bugfixes around various situations in new PackageProps class
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
We need to use Write-Host for the custom logging commands to get them correctly out into stdout which is what they need to be interpreted correctly.
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* support accessing a different key for the value of the Package during batching in Create-PrJobMatrix
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Add logic for seting APIView Pull Request comment
* Update script to use source and head commish
* Make API Change Check a header
* Add Fetch URI to APIView comment
* Pass APIView host as a parameter
* Update APIVBiew comment header and add state to search api call
---------
Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com>
* identify and fix the issue with no results on a matrix that is PRBatched. The platform filters eliminate all the jobs, which is why it only turned up on the second windows leg
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* update generate-matrix function ProcessImport to return a structured result, versus a tuple that is destructured immediately
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Add the prefix to identify RGs that we are creating in our TME
tenant to identify them as potentially using local auth and violating
our safe secret standards.
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
* Use PME for esrp release
* Update to EsrpRelease@9
* Remove extra DomainTenantId parameter
* Add PME service connection to pipelines
---------
Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
* populate triggeringPaths of each artifactdetails with the owning ci.yml
* handle service-directory changes in Get-PrPkgProperties
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Get-PRPkgProperties now honors artifact-list specific absolute/relative paths to other triggering folders. This will supplant the common "if eng/ changes include template and core" in a follow-up PR.
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* adjustments to iterating across matrix configs for packages that belong to multiple matrices
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* replace PkgProps CIMatrixConfigs property in favor of a more generalized CIParameters property. Original CIMatrixConfigs will exist as an item of same key within CIParameters.
* update Create-PRJobMatrix to honor new CIMatrixConfigs property location
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* update Get-ObjectKey to coalesce boolean-like values to their true boolean value
* update Get-ObjectKey to call Get-ObjectKey on each item of an array or pscustom object - versus utilizing their values directly
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Pass arm template parameter for TME context
* Use supportsSafeSecretStandard parameter instead
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* allow the indirect matrix to generate non-sparse based on new parameter to generate-job-matrix
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Added label handle sdk-gen pipeline template
Added common script to delete label from a PR
* Update eng/common/scripts/Invoke-GitHubAPI.ps1
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
---------
Co-authored-by: ray chen <raychen@microsoft.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Support incrementing semver prereleases with 'zero' versions
* Make tests more explicit
---------
Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
* updates to dynamic matrix generation. moves indirectly included packages to sparse usage. adds additional parameters to GeneratePRMatrix that enable further filtering of the matrix generated for the indirect packages
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Use -Mail for test resources local user lookup to support TME
* Auto-select TME subscription based on user context
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* ensure that packages that come back from AdditionalValidationPackages are NOT counted as 'includedForValidation: true' if they also exist in the original 'these packages changed' set
Co-authored-by: Ben Broderick Phillips <ben@benbp.net>
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <ben@benbp.net>
* add and use new function to PSModule-Helpers.ps1 -- `InstallAndImport-ModuleIfNotInstalled` which smartly short circuits the install and module import to be as efficient as possible. This largely has impact of improving Save-Package-Properties performance on windows machines.
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Use new generation tool that supports service connections
* Fix condition for generating weekly test pipelines
---------
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* change our verifyChangelogs over to utilizing the artifact details. if we don't have an artifact details at all, don't verify changelog. if we do, but skipverifychangelog is present, don't verify changelog. if we have artifact details, but no disable, verify the changelog
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* ensure that ChangedServices value within the generated pr diff is always properly an array of strings
* upload the changed services as an attachment named AdditionalTags in save-package-properties.yml, to allow PipelineWitness to tag public builds during log processing
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Patrick Hallisey <hallipr@gmail.com>
* Add step for emitting rate limits for a token
* add step to eng/common sync template
* Fix resource label output
* Use propery name instead of nested 'resource' property
* Add percent metric too
* Add divide by zero safety
---------
Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
* Common cleanup with the docs docker images no longer being used
* Remove docker-pull-image.yml
---------
Co-authored-by: James Suplizio <jasupliz@microsoft.com>
* Retry container deletion
* Do not try to purge keyvaults with purge protection
* Delete all blobs when container has immutability
* Skip missing blob container properties
* Fix null container
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* identify and resolve missing function GenerateMatrixForConfig
* identify and resolve miss-used null-coalesce operator
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* package-properties are now populated with matrix configurations from their ci.yml if present
* create new code path for generate-job-matrix.yml which combines Create-JobMatrix and the "distribute-packages-to-matrix" action to generate dynamic matrices for PRs
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Run perf tests under federated auth
Run the tests under the same federated auth used to deploy the tests and setup the variables needed to configure AzurePipelineCredential.
* Fix indention for working directory
---------
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Refactor PackageProps to make the Yaml loading and processing methods common
* Updates for feedback
---------
Co-authored-by: James Suplizio <jasupliz@microsoft.com>
* Remove default sub config sub-config-azure-cloud-test-resources
We no longer want to default the configuration and instead
default from the service connection which had the info we need.
* Fix quoting
---------
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
* save-package-properties.yml only activates PR diff mechanism if the service directory is "auto"
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Escape parentheses in includes to fix issues in publishing
* Only escape close parens
* Comments
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* Changes required for sdk-repo based emitter pipelines
* Rename template
* Convert emitter archetype to pipeline template
* Move the archetype template out of the stages folder
---------
Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
* Add CompatibleConvertFrom-Yaml to common Package-Helpers
* Add CI artifact parsing to Save-Package-Properties, now each individual packageinfo.json file contains the relevant ci artifact lines for the package. This short circuits needing to re-parse this information in common checks.
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Export the subscription data from the service connection
* Update deploy-test-resources.yml
---------
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* don't verify changelog for packages that aren't actively published anymore
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <ben@benbp.net>
* updating package properties with direct/indirect (if named differently) as well as pulling BuildDocs from ci.yml artifact list if it exists
* eliminate the addition of buildDocs property. it requires powershell-yaml to be present on our base function. not good
* remove call to InitializeBuildDocs
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Add descriptive error when variable groups are not added to pipeline
* Add emoji to deploy step title to make it easier to find
* Move yaml json checking into powershell script
* Fix base sub config empty/string checking
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Refactor prepare-pipelines
* Convert pipeling generation single to use template
* Convert to pwsh for setting the variables
* Fix switch expression
* Add path separator in front of devopspath
* Continue on error for individual step failures
* Remove unnecessary parameters
---------
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Apply a few changes to Get-PRPackageProperties to make it more customizable for our users. Remove wonky gap + extra spacing that should pass the patch application process now that we've manually aligned common.ps1
* account for feedback -- rename CanaryPackages to AdditionalValidationPackages
* dependentPackagesforInclusion -> additionalValidationPackages
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* bump proxy version
* bump proxy version
* restore most of the old performance, only fall back to json matching when something goes wrong
* use newest version with protection from invalid json
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Given we cannot create subfolders under .github\workflow folder
and we have repos that want additional workflows then we have
in the tools repo we need to setup a file pattern matching for
the sync processing to only sync the ones we want to be common.
For now just use the existing *event* pattern but we can move them
to another pattern similar to *common* or *sync* in the future as
we add more common workflows.
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
* Add RestAPISpecsDocsRepos to branch cleanup.
* Remove commented out yml, add pre-message to limit output and output core limit at the start of processing
* updates for feedback
---------
Co-authored-by: James Suplizio <jasupliz@microsoft.com>
* we want the path that we write to to be defined by literalpath, otherwise files with [ or ] will break powershell when writing the file to disk
* slight wording adjustment so the command can be invoked directly
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* more compatibility with expanding/contracting packages. add ability for packages to have DependentPackages that must be included in the set of packages that should be built given a changeset
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Do not mark values as secret that are from git-hosted sub config files
* Simplify sub config build yaml
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* missed a condition passthrough
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
* add additional argument to Save-Package-Properties to allow for usage in pull request context
---------
Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Set storage account test resources to disable blob public access
* Skip adding network rules to storage accounts that don't need them during cleanup
* Add succeeded check to set pipeline subnet info step
* Disable network firewall by default in resource creation/removal
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Support storage network access and worm removal in remove test resources script
* Move storage network access script to common resource helpers file
* Improve storage container deletion resilience
* Plumb through pool variable to live test cleanup template
* Add sleep for network rule application
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* commit the file changes so that we can see them running
* use standalone tool
---------
Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
* Ensure subConfigFiles is not an empty string
* Skip instances where $file is an empty string
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* Fix default value for env vars in build-test-resource-config template
* Add empty pool condition
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Restrict live test storage account access to client IP
* Add storage pools to test resources vnet allowlist
* Use pool subnet map to reduce number of subnets added to live test resources
* snap
* Add test resource parameter to add ip ranges to storage firewall
* Validate and update ip firewall rules
* Get pool subnet using separate workload identity
---------
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>