Commit Graph

117 Commits

Author SHA1 Message Date
Javier Calvarro Nelson 9f1a978230
[Infrastructure improvements] (#8275)
* Improved selenium start and tear down
  * Selenium is set up and torn down in an assembly fixture.
  * Selenium is initialized lazily and in a non-blocking way.
  * Selenium processes are tracked as part of the build and their pids
    written to a file on disk for cleanup in the event of unexpected
    termination of the test process.
  * Browser fixture retries with linear backoff to create a remote
    driver. Under heavy load (like when we are doing a simultaneous NPM
    restore) the selenium server can become unresponsive so we retry
    three times, with a longer comand timeout allowance each time up to
    a max of 3 minutes.
* Moved test project setup to build time instead of runtime.
  * Added target PrepareForTest to create the required files for testing
    * The template creation folder.
    * The template props file to use our built packages.
    * The folder for the custom hive.
  * Added assembly metadata attributes to find all the data we need to
    run the tests.
    * Path to the artifacts shipping packages folder.
    * Path to the artifacts non-shipping packages folder.
    * Path to the test templates creation folder.
    * Path to use for the custom templating hive used in tests.
  * Proper cleanup as part of the build
    * Remove the test templates creation folder.
    * Remove the test packages restore path.
    * Recreate the test templates creation folder.
    * Recreate the test packages restore path.
  * Generated Directory.Build.Props and Directory.Build.Targets in the
    test templates creation folder.
  * Cleaned up potentially stale templatetestsprops.
* Improved test flows
  * Initialization is done lazily and asynchronously.
    * Selenium
    * Browser fixture
    * Template initialization.
  * Flattened test flows to avoid assertions inside deep callstacks.
    * All assertions happen at the test level with improved error messages.
      * With the exception of the migrations assertions.
    * Assertions contain information about which step failed, for what
      project and what failure details.
  * Broke down tests to perform individual steps instead of mixing build
    and publish.
    * Publish project.
    * Build project. (Debug)
    * Run built project.
    * Run published project.
  * Concentrated build logic into the Project class.
    * Context between the different steps of a test is maintained in
      this class.
    * All operations that require coordination are performed within this
      class.
      * There is a lock for dotnet and a lock for nodejs. When building
        SPAs we acquire the nodejs lock to correctly prevent multiple
        runs of nodejs in parallel.

[ApiAuthorization template cleanups]
  * Fix preview3 issues with breaking changes on Entity framework by
    manually configuring the model in ApiAuthorizationDbContext.
  * Add app.db to the project file when using local db.
  * Fix linting errors on angular template.
  * Fix react tests
  * Add tests to cover new auth options in the SPA templates.
2019-03-20 08:44:20 +01:00
Andrew Stanton-Nurse 706778d4de
Add a separate test pass to run flaky tests that doesn't fail the build (#8486)
Similar to https://github.com/aspnet/Extensions/pull/1239.
2019-03-18 18:21:14 -07:00
Javier Calvarro Nelson d7a9606040
[Templating][Components] Unify and improve E2E testing infrastructure (#8188)
* Unify the Templating and Components testing infrastructure.
* Enable test project discovery in the components E2E tests.
* Enable selectively disabling Selenium tests through build properties.
2019-03-11 18:40:18 +01:00
Doug Bunting c902b18b0d Bump up the AzDO default job timeout to 3 hours
- aspnet/AspNetCore-Internal#1909
2019-03-07 13:00:38 -08:00
N. Taylor Mullen 4093399e8c Skip first run experience on azure pipelines.
- Suppresses the 'Welcome to .NET Core!' output that times out tests and causes locked file issues. When using dotnet we're not guarunteed to run in an environment where the dotnet.exe has had its first run experience already invoked. This would cause our functional tests to time out and occasionally crash due to dotnet first run experience sentinels being locked.

aspnet/AspNetCore-Internal#1859
2019-03-01 10:35:04 -08:00
BrennanConroy a936d77845
Automatically capture crashdumps for C++ client tests (#7940) 2019-02-27 14:20:14 -08:00
Nate McMaster d2d60000eb
Create Linux installers for the aspnetcore targeting pack (#7776)
This creates 3 new build outputs:

* aspnetcore-targeting-pack-$(version).tar.gz
* aspnetcore-targeting-pack-$(version)-linux-x64.deb
* aspnetcore-targeting-pack-$(version)-linux-x64.rpm

Other changes:
* Make RPM packaging consistent with other installers. Vendor == Microsoft Corporation
* Add shared properties for building the targeting pack (or not building it in a servicing build)
2019-02-25 12:00:36 -08:00
Nate McMaster 1b27c9905c
Update dependencies and react to changes (#7844)
* Add workaround for dotnet/sdk#2976
* Add new restore sources
* Update BAR manifest to point to  https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json
* Obsolete WithCulture
* Add retries to dockerbuild.sh
* Ensure each test run gets a unique in-memory database
2019-02-22 19:09:08 -08:00
Nate McMaster fbaa3e8b77
Always kill processes and remove direct reference to component governance task (#7793) 2019-02-21 09:29:42 -08:00
Nate McMaster e1d506e961
Fix codesign-xplat.yml to use the right API for setting custom build steps 2019-02-20 14:42:07 -08:00
Nate McMaster 85ae18c723
Make Visual Studio 2019 a prerequisite to building this repo (#7005)
Changes:

* Make Visual Studio 2019 a prerequisite for building this repo
* Update .sln files
* Update Windows SDK to 17134
* Update developer docs
* Disable ANCM tests
* Update to .NET Core SDK 3.0 Preview 2
* Use Microsoft.NET.Sdk.Razor as a package consistently accross the repo
* React to changes in metadata from Microsoft.NETCore.App
* React to changes in .NET Core SDK
* Attempt to workaround CodeCheck.ps1 failure which doesn't repro locally or on different agents. Possibly due to differences in the version of the PowerShell task?
* Remove dead YML file
* Rename usages of win7-{x64,x86} to win-{x64,x86}
* Update KoreBuild to 3.0.0-build-20190219.1
2019-02-20 09:53:53 -08:00
Nate McMaster 0ec25d3167
Create new 'runtime pack' nuget packages for Microsoft.AspNetCore.App (#7475)
* Create a new package  - Microsoft.AspNetCore.App.Runtime.${rid} - which contains crossgen-ed versions of shared framework assemblies. This will be used by the SDK to replace rid-split packages
* Add a task which can generate the .deps.json file for the shared framework. Unlike the existing task we have, this does not rely on consuming a .deps.json file generated by first running a restore on packages.
* Move the reference to xunit.runner.console into the normal targets and files for managing dependencies
* Produce binlogs during build
2019-02-14 07:25:13 -08:00
Sébastien Ros 519e6bbb7c Update benchmarks.yml (#7558) 2019-02-13 15:46:48 -08:00
Doug Bunting 758ba235fa Touch up component detection
- run only on success of previous steps
2019-02-13 11:32:17 -08:00
Nate McMaster 2ac4619635
Replace custom targets for generating assembly attributes and source control info by using SDK features (#7504) 2019-02-13 10:22:03 -08:00
Doug Bunting 45ecfad074 Skip code signing job if dependencies aren't available 2019-02-08 09:04:15 -08:00
Hao Kung c9499e14e4
Run helix tests on master (#6728) 2019-02-07 09:20:08 -08:00
Doug Bunting f280465275
Merge branch 'release/2.2' 2019-02-04 22:04:46 -08:00
Doug Bunting af463acc38
Merge branch 'release/2.1' into release/2.2 2019-02-04 20:53:34 -08:00
Doug Bunting f5ca141e9d
Kill processes after completing build and before publishing test results or artifacts (#7228)
- aspnet/AspNetCore-Internal#1735
- port aspnet/Extensions@e2bb8ac1a0 fix into this repo
  - change `default-build.yml` instead of `azure-pipelines.yml`
  - make a couple of changes to `KillProcesses.ps1` (which I'll take back to Extensions)
- remove `ci-official.yml`
2019-02-04 16:19:31 -08:00
Doug Bunting d46990856a Add component detection step to builds
- aspnet/AspNetCore-Internal#1254
2019-02-04 16:00:16 -08:00
Justin Kotalik 1d2838ea2e
Upload artifact logs for CI Test runs (#7251) 2019-02-04 13:55:23 -08:00
Nate McMaster 8564093627
CI config: Specify RepositoryBranch when building inside a docker container 2019-02-02 12:14:17 -08:00
Nate McMaster 2558166b19
Run code sign of packages before Windows installers are built, and run SignCheck in a separate step 2019-02-02 08:28:30 -08:00
Nate McMaster 4c4a1effcd
Only publish artifacts on successful builds and fix code-signing for the SiteExtension package (#7199) 2019-02-01 19:17:01 -08:00
Pavel Krymets d4c55df8f4
Fix MAX_PATH issue in SiteExtensions and move them to main build (#7177) 2019-02-01 12:37:00 -08:00
Nate McMaster 7ee3399ce2
Fix code-signing for xplat packages and Windows installers (#7191) 2019-02-01 10:52:00 -08:00
Nate McMaster 6081fec894
Add new build.cmd/sh options for suppressing restore, NodeJS, setting target arch and OS name, and more (#7137)
Add new command line parameters for working with the project:

* `-NoBuild`, `-NoRestore` - these already existed, but users found it hard to discover this powershell syntax: '-build:$false'
* `-Arch`/`--arch` - set the target CPU architecture to build. Defaults to x64
* `--os-name` - on non-Windows builds, manually specify if the build should target Alpine. generic Linux, or MacOS
* Rename flags used to build specific project types. The pattern now is `--build-$(group)` or `--no-build-$(group)` (In PowerShell its `-Build$(Group)` or `-NoBuild$(Group). Example: -NoBuildJava

Changes to build definitions:
* Update the ci build definition to build all supported architectures
* Support publishing multiple artifacts per job

Other changes:
* `-NoBuild` implies `-NoRestore`
* Add new properties, `TargetArchitecture`, `TargetOsName`, and `TargetRuntimeIdentifier`
* Replace usages of `SharedFxRid` with these new properties
* To make `--no-build-nodejs` actually work, replaced Components.Browser.JS.csproj with Components.Browser.JS.npmproj
* Fix errors when building for win-arm on a clean machine
* Fix a few other project errors, like using the wrong syntax for DefaultItemExcludes, or using the wrong Platform value for x86
2019-01-31 15:47:47 -08:00
Pavel Krymets 5ba89945ea
Fix site-extension build step artifacts path (#7138) 2019-01-30 11:57:21 -08:00
Pavel Krymets c06f896fdc Change site extension build pool to dotnet-external-temp (#7114) 2019-01-29 16:03:43 -08:00
Pavel Krymets 6e8284711c Change SiteExtension artifact location (#7108)
* Change SiteExtension artifact location

* Add exclusions

* Reuse main version logic
2019-01-29 15:00:35 -08:00
Pavel Krymets 7267e20f53 Sign site extension (#7107) 2019-01-29 13:02:31 -08:00
Pavel Krymets adcc2bf23c Fix versioning of logging site extension (#7100)
Remove `name` to revert to default version format and build on all changes.
2019-01-29 11:42:22 -08:00
Pavel Krymets 78fabbdb40
Build 3.0 AggregateSite extension (#6849) 2019-01-28 20:09:51 -08:00
Sébastien Ros 768e9052dd
Adding artifacts generation for forks (#6324) 2019-01-28 18:02:57 -08:00
Nate McMaster ac04019e42
Remove obsolete build infrastructure (#6995)
Changes:

* Remove obsolete targets which are unnecessary now that this repo no longer builds git submodules in a separate build process
* Remove the need for static analysis of 'ArtifactInfo' items
* Simplify how the code signing task is configured
* Remove unused repo tasks
* Remove duplicate lists of external dependencies and packages to be produced
* Remove obsolete build definition
* Remove obsolete build script parameters
* Add VisualStudioSetupOutputPath
2019-01-28 09:57:59 -08:00
Chris Ross 2b7c26a123
Dynamically install NGinx Internal/#1525 (#6963) 2019-01-25 14:32:32 -08:00
Nate McMaster eef9f76759
Fix SignalR daily tests (#6960)
Ensure the TeamName variable is set. It's required for all internal builds.
2019-01-23 15:15:34 -08:00
Mikael Mengistu 921c6c16d6
Fixing SignalR Daily Tests (#6630) 2019-01-18 13:40:52 -08:00
Pavel Krymets 829cd7271e
Fix signing for 2.2 site extensions (#6777) 2019-01-17 10:42:58 -08:00
Pavel Krymets 6cac028716
Switch IIS tests to Hosted queue (#6746) 2019-01-16 11:47:52 -08:00
Pavel Krymets f44c175ec6
Enable logging branch SiteExtension (#6715) 2019-01-16 08:56:12 -08:00
Nate McMaster 089912cd1b
Switch queues used during Windows builds (#6667) 2019-01-14 10:07:12 -08:00
Nate McMaster b4f869b2ff
Switch agent queues used on Windows builds (#6627) 2019-01-11 16:23:13 -08:00
Nate McMaster a9132ad26c
Switch agent queues used during Windows builds 2019-01-11 15:16:57 -08:00
Nate McMaster 3cd5054eb5
Merge branch 'release/2.2' 2019-01-11 07:20:00 -08:00
Nate McMaster 22f3166fa6
Merge branch 'release/2.1' into release/2.2 2019-01-10 01:22:10 -08:00
Nate McMaster d3838620d6
Convert SignalR projects to build with ProjectReference (#6457)
Part of #4246 

Changes:
* Update source code layout to follow the new conventions for this repo
* Update project files to use `<Reference>`
* Update targets to build NPM packages
* Update BuildTools to support custom 'restore' and 'test' targets
2019-01-09 13:12:35 -08:00
Nate McMaster edfb2ab8ab
Merge branch 'release/2.2' 2019-01-05 00:34:13 -08:00
Nate McMaster 9556cc133d
Merge branch 'release/2.1' into release/2.2 2019-01-04 14:17:28 -08:00