Skip to content

ADO changes to follow guidelines #8966

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Apr 9, 2019
Merged

ADO changes to follow guidelines #8966

merged 20 commits into from
Apr 9, 2019

Conversation

MiYanni
Copy link
Contributor

@MiYanni MiYanni commented Apr 8, 2019

Description

See the guidelines here: https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki?wikiVersion=GBwikiMaster&pagePath=%2FAzure%20DevOps%20Pipeline%20Guidance

Changes

  • Moved yaml files to .azure-pipelines folder
  • Moved core job logic to steps files in .azure-pipelines/util
  • Removed install-pwsh steps since the Windows machines now have PowerShell Core installed
  • Moved the after.Azure.PowerShell.sln.targets to tools so the build folder is no longer needed
  • Used shared Repo.props values throughout the build.proj
  • Removed duplicated and deprecated properties in build.proj
  • Changed ADO build process to use a matrix to define the OS differentiation
  • Changed ADO build process to have a netcoreapp21 (called powershell-core) and net472 (called windows-powershell) pipeline (based on test framework and intent)
  • Made TestNet472 target use the Build target to run properly (same as Build and Test for netcoreapp21)

Checklist

parameters:
osName: ''

steps:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a number of these templates can be folded into the one yaml file to avoid some levels of complexity.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since these are reused between different jobs in different pipelines, it makes sense to have a separate template. The primary issue is that you cannot template a job matrix. Meaning, I can't make a job template where a strategy is conditionally defined.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that is one of the limitations of the templates. However I don't think that would be necessary if you had one matrix strategy for both and just control the framework as one of the matrix variables.

WindowsImage: VS2017-Win2016
TestFramework: net472
TestTarget: TestNet472
Configuration: Debug
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is a configuration you want to enable at queue time then you will need to remove it from here and put it only in the build pipeline variables tab.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not intended to be build-time variables. I use these simply as global variables to all jobs in the yaml. If there was a concept of hard-coded values (constants), I would have used them here. Also, it is convenient to have all values that may change in the future listed at the top of the file.

@cormacpayne cormacpayne removed their assignment Apr 9, 2019
@MiYanni MiYanni merged commit faeb48b into Azure:master Apr 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants