-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Created SmokeTest projects. #3450
Conversation
Thanks azchohfi for opening a Pull Request! The reviewers will test the PR and highlight if there is any conflict or changes required. If the PR is approved we will proceed to merge the pull request 🙌 |
06f1fd2
to
dd9725a
Compare
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.
Hey @azchohfi - this looks pretty interesting and I'd be curious to learn more about how this works, would you might to elaborate more on what this is doing exactly? I mean, I understand what the PR does, but I'm mostly confused about the fact that we're building with .NET Native here. The compiler there does a pretty aggressive tree shaking (dependency reduction) step, so if we're only using a very small number of APIs in each test projects don't we risk having the binary sizes not being accurate? 🤔
Is that not a concern, or is there something to avoid that that I'm not seeing? Or is this just to provide a baseline size indication for just referencing the packages, without using them in your app? And if so, then why do we need to actually have a sample usage of some APIs at all instead of just a blank MainPage
file?
Sorry for the lots of questions, just honestly curious to understand this PR more 😊
Thanks!
Added a small error check on the smoke test project.
These are simple smoke tests. One extra benefit of having them is known a "minimum" app size with each package. A future step will be to install these APPXs, and execute a simple test to make sure that each package actually works, and that's why we are actually calling at least one simple api from each package. |
Ah I see, makes perfect sense, thanks! 😊 |
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.
Went through the code and it looks good, I just can't approve as I don't seem to be able to build the actual project for some reason. I'm getting an error when running the build.bat
script, specifically this:
"C:\Users\Sergio\Documents\GitHub\MS_WindowsCommunityToolkit\Windows Community Toolkit.sln" (destinazione: Build) (1) -> C:\Users\Sergio\Documents\GitHub\WindowsCommunityToolkit\UnitTests\UnitTests.UWP\UnitTests.UWP.csproj" (2) -> (destination: _GenerateProjectPriFileCore) -> GENERATEPROJECTPRIFILE : error : PRI175: 0x80070002 - Processing Resources failed with error: Can't find the specified file [C:\Users\Sergio\Documents\GitHub\WindowsCommunityToolkit\UnitTests\UnitTests.UWP\Un itTests.UWP.csproj] GENERATEPROJECTPRIFILE : error : PRI252: 0xdef00071 - File C:\Users\Sergio\Documents\GitHub\WindowsCommunityToolkit\UnitTests\UnitTests.UWP\obj\x86\Release\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices\it\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Resources.Resource.resw not found. [C:\Users\Sergio\Documents\GitHub\WindowsCommunityToolkit\UnitTests\UnitTests.UWP\UnitTests.UWP.csproj]
It's probably just an issue on my machine, as the CI is runnig fine.
Other than this, the PR does look good to me! 🚀
Very weird, I've never had this particular error. Can you try doing a git clean -fdx and running it again? |
I've already tried that twice, no luck 😟 I'm thinking it might be the .NET 5 Preview SDK I have installed, as that's been causing other weird issues too for me. |
Weird, but it might be. Its passing on the build server ¯_(ツ)_/¯ |
@azchohfi got these errors in the CI: |
I'll have to bump the timeout. |
23a45a1
to
d9219d2
Compare
@RosarioPulella great point, that's what the wiki is going to be for. So, we should open an issue there to track adding info about smoke tests, integration tests, unit tests, etc... FYI @azchohfi |
Fix thanks to Scott Banning
@azchohfi looks like the smoke test passed 🎉🎉🎉 But then the publishing of the build artifacts failed:
☹ Thoughts? |
I also thought we had discussed before, but could we split the smoke test part into a 2nd job/stage? That'd make the build report and publish to the PR feed as a separate check from the smoke test itself which could run after, eh? Basically showing up as a third line, so in this last case, we'd have seen the build and the release to our feed succeed, but then the smoke test line (not here) fail? |
Very small issue. We've updated the min version on master, and this changed the extensions from appx* to msix*, so the SmokeTest copy task was not copying anything, making the artifact upload task fail. This should be fixed now. |
LGTM, opened #3560 for tracking splitting this out as it's own line-item so we get build/release status faster. |
Hello @michael-hawker! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
Forgot wanted to check final output of the markdown package
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.
Tested the package output in a brand-new app from the PR feed. MarkdownTextBlock working like a charm now! 🎉🎉🎉
Fixes #3448
This new SmokeTest project builds once for each value of the ToolkitPackages variable in SmokeTests.proj.
It automatically adds the local built nuget packages and adds the MainPage.[ToolkitPackage].xaml.cs and MainPage.[ToolkitPackage].xaml file, for each project built.
With this, we can analyze the size of the appx bundle that is built for each smoke test and compare that with other built versions.
To test this:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
No way to analyze the assembly size of a simple project that reference each nuget package.
What is the new behavior?
The build pipeline automatically builds a simple project for each 'ToolkitPackages', allowing us to analyze the size impact of each PR, or from time to time.
PR Checklist
Please check if your PR fulfills the following requirements: