-
Notifications
You must be signed in to change notification settings - Fork 523
Build: Move Prerequisites from build.ps1 to Invoke-Build script #4519
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
Conversation
|
I gotta be honest, I've never looked at nor used |
Pull request was converted to draft
| - name: DOTNET_NOLOGO | ||
| value: 'true' | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - name: DOTNET_NOLOGO | |
| value: 'true' | |
| # Suppress welcome message | |
| - name: DOTNET_NOLOGO | |
| value: 'true' |
| - name: DOTNET_NOLOGO | ||
| value: 'true' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - name: DOTNET_NOLOGO | |
| value: 'true' | |
| # Suppress welcome message | |
| - name: DOTNET_NOLOGO | |
| value: 'true' |
| version: 6.0.x | ||
| performMultiLevelLookup: true | ||
|
|
||
| # Some modules like Pester have .NET DLLs that will require a new PowerShell instance, so we run this first prior to the build. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain a little further? Because we install prerequisites later too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm just going to ignore this file since I don't use it 💁
| @{ ModuleName = 'Pester'; RequiredVersion = '5.4.1.0' } #For PSES Build. TODO: Remove once we hook into PSES build script | ||
| @{ ModuleName = 'PSScriptAnalyzer'; RequiredVersion = '1.21.0' } #For PSES Build | ||
| @{ ModuleName = 'platyPS'; RequiredVersion = '0.14.2' } #For PSES Build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| @{ ModuleName = 'Pester'; RequiredVersion = '5.4.1.0' } #For PSES Build. TODO: Remove once we hook into PSES build script | |
| @{ ModuleName = 'PSScriptAnalyzer'; RequiredVersion = '1.21.0' } #For PSES Build | |
| @{ ModuleName = 'platyPS'; RequiredVersion = '0.14.2' } #For PSES Build | |
| @{ ModuleName = 'Pester'; RequiredVersion = '5.4.1.0' } # For PSES Build. TODO: Remove once we hook into PSES build script | |
| @{ ModuleName = 'PSScriptAnalyzer'; RequiredVersion = '1.21.0' } # For PSES Build | |
| @{ ModuleName = 'platyPS'; RequiredVersion = '0.14.2' } # For PSES Build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But also, shouldn't PSES be installing and controlling these prerequisites?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ehh I am really hesitant to take these changes as there's only a few of us that build the project on a regular basis anyway, and I really don't want to break CI/CD.
|
Hi @andschwa , That's a fair assertion. This was a partial config on the next step to optimizing prerequisites for PSES as well. Let me mark this as draft and I will expand it with a matching PSES PR that demonstrates significant gains in performance up to the testing step, which allows people to get faster feedback on whether their tests pass in CI or not. That way the full implementation is clear and the benefit is clear and we can continue the discussion. |
Pull request was converted to draft
|
Sounds good. Just remember the release is built entirely via automation in the pipeline...and I've already in the past been bit by bugs like accidentally building (and shipping) debug instead of release, or skipping tests that should've been running. It's just so easy to mess up, especially since the release pipeline depends on assets being produced by the PSES pipeline and handed over to the VS Code pipeline, which has to explicitly use those instead of rebuilding PSES. And that's difficult to test for me in the first place because it's really only testable by going through the release process, and impossible for you to test because that's Microsoft-internal 😓 |
|
Closing this for now since it probably needs a huge rebase at this point but may revisit some lessons learned into smaller PRs. |
|
The build's gotten simpler since then too. |
PR Summary
This is the first in several build process optimizations.
PR Checklist
Note: Tick the boxes below that apply to this pull request by putting an
xbetween the square brackets.Please mark anything not applicable to this PR
NA.WIP:to the beginning of the title and remove the prefix when the PR is ready