Age | Commit message (Collapse) | Author |
|
Add fastpath for restore
|
|
This picks up the latest buildtools which includes a task that adds a
fast path for restore. We will now call that task to do a check up
front to determine if a restore is actually needed before invoking
restore. This helps the common case where everything is up-to-date
reducing the restore from 5 minutes down to 1 second.
|
|
|
|
Sets up dir.props config. Removes UpdateDependencies powershell script, to be replaced by a call into VersionTools in Maestro automation. Changes UpdatePublishedVersions to pass through to VersionTools for backward compatibility.
|
|
Adds ARM64 build and test job definition to the Jenkins netci.groovy file. For now only private job initiations are allowed by a small set of users, though both per-push and daily triggers are coming.
|
|
This change is to support filtering according to the TestTFM. e.g. can do
“build.cmd /p:FilterToTestTFM=net46”
The change here is splitting the Build phase from the Test phase in dir.traversal.targets
so we don’t have to rebuild the test assemblies when passing TestTFM property to run the test.
Now if FilterToTestTFM is not specified, we default running the tests as netcoreapp1.0
so when issuing “build.cmd/sh” Command without passing FilterToTestTFM, it will
filter the tests to netcoreapp1.0 and run those tests.
I have enabled one of the test projects System.AppContext.Tests to support net46
as example, next step will be Enabling the rest of all projects to run against all
platforms (net46, net461, net462, netcore50 and netcore50aot)
|
|
supports clauses for tests
CoreFX tests will now compile against netstandard1.3 as references and will now deploy for the platforms listed in their respective supports clause, provided the appropriate TestTFM is passed in. The supports are fully listed inside runtime.json in the new TestSuite metapackage in buildtools. The tests will default to netcoreapp1.0 as their TestTFM.
CoreFx test projects now utilise a test csproj to pkgproj reference which determine the appropriate compile time and runtime assets needed.
Dependent on https://github.com/dotnet/buildtools/pull/770
|
|
Prior to this change, build.proj overrode the Clean target
directly which did not honor TraversalCleanDependsOn. This
meant other repo's could not customize the behavior of
a clean, either via Clean.cmd or 'build /t:clean'.
With this change, other repo's can add custom build targets
to TraversalCleanDependsOn to do pre- or post- clean handling.
WCF in particular requires this.
|
|
Also update buildtools to fix UpdatePackageDependencyVersion and fix dependencies on packages that had a minor version bump.
|
|
* Initially wanted to add the hook to src\tests.builds but tests.builds is included as just one more item in the 'Project' collection and in testing the hook I couldn't get the import of the targets file to work and invoke the custom Targets in it. Moving it out of the 'Project' ItemGroup worked.
|
|
|
|
* Enable project refrence to package dependency conversion in test builds
Opts some tests out of the process with "KeepAllProjectReferences"
Opts some project references out of conversion with "KeepProjectReference"
pulls in maririos change to sync.cmd
Respond to PR feedback
Note: Generated project.json's fail to restore because of missing test-runtime
property in frameworks which now have dependencies but previously did not.
* Move global.json to root so that generated project.json's can find it for the test-runtime
* System.Reflection.Context does not run on dnxcore50, but the project.json has that specified as the framework.
Can't convert this to netcore50 because there is no current test-runtime for netcore50. Leave project reference
when doing a test build against packages so that it can use the netcore50 implementation directly.
|
|
|
|
It was running before any of the tests ran, rather than after all of them.
As a result it was failing due to lack of inputs.
|
|
|
|
Adding builds files to the test projects
|
|
|
|
Consuming new versioning changes
|
|
tests
|
|
|
|
|
|
In order to take advantage of batch signing we must submit all binaries
for signing in one group. To make this happen I have moved the signing
task into its own build project that happens after the binaries have been
built.
|
|
|
|
Include capitalization fixes for NETNative packages to avoid xplat nuget race condition.
|
|
NuGet.Config files.
Updated internal xplat nuget fork to allow the <clear/> and to bring in other fixes.
Fixed project.jsons to allow parallel restore. xplat nuget has a race condition when dependencies on the same package have different capitalization, so those were normalized towards uppercase.
[tfs-changeset: 1575564]
|
|
and upgrades project.jsons throughout NDP\FxCore to pass new nuget compatability checks.
Some fixes (adding imports, adding Platforms package) were tooled, but more complex ones (forking project.jsons, editing csproj's) were not.
Also makes dependency version validation rules case-insensitive. (I used this fix to update the versions of some packages.)
[tfs-changeset: 1573868]
|
|
The internal TFS build does not work correctly with the new
GatherDirectoriesToRestore task since it does not use the same restore
commands as our open builds. To unblock the build, disable this task when
building our TFS sources in favor of the old slower way.
[tfs-changeset: 1573223]
|
|
The new buildtools task GatherDirectoriesToRestore allows us to pass
multiple things to a single invocation of `dotnet restore` which saves
us the overhead of spawing multiple `dotnet restore` in a row. This
gives us about a 4-5x improvement when you have to download all the
packages and 17x improvement when you local version is up to date.
|
|
Add clean.sh for Linux dev workflow
|
|
This script provides a convenient way to clean the local dev environment
on Linux. It provides options for removing the bin directory, the
packages directory, the Tools directory, the NuGet package caches, all
untracked files under the src directory, and all of the above.
This change also utilizes the clean targets from BuildTools, and updates
clean.cmd to exclude clean.log from being removed in the "all" option
and check for errors from "git clean".
|
|
The OS filtering properties weren't added to the post-build project
causing their dependencies to calculate the incorrect value for
OSPlatformConfig; e.g. instead of Windows_NT.AnyCPU.Release one would get
AnyOS.AnyCPU.Release.
The rename of post.msbuild is to follow suit with the other build projects
and to prevent some properties from being dropped during the traversal
build (see dir.traversal.targets).
|
|
Adds Clean.cmd and Sync.cmd
There is also an option added for disabling batch restore of packages
during the build. Right now it restore is still enabled by default
but eventually it will be disabled and restore will only happen when
you call sync.cmd or build an individual project.
To disable batch restoring during build people can do one of 2 things:
1) set RestoreDuringBuild=false in your enviroment
2) pass /p:RestoreDuringBuild=false to build.cmd
|
|
Move init-tools to the top of build.cmd
Clean-up init-tools.cmd script and put most stuff out into a log file
Update build.cmd to add timestamp during logging also add timestamps
around the batch restore target so we can see how log it takes.
Adds the Summary option which will dump all the warnings and errors
at the end of the console output so the are more noticable.
Also cleans out the unnecessary restoring of packages.config files as we
no longer have any of those.
|
|
We are already filtering the library builds to OSEnviroment so we
need to similarly filiter the package builds.
|
|
After this change if you build a .builds file it will all projects
defined in it. However if you specify OSGroup or FilterOSGroup as a property
it will only build the projects that are for that OSGroup or AnyOS.
Change the default OSGroup to AnyOS instead of Windows_NT.
By default if you build from the root it will only filter the projects to
just the OS that you are building on (including anything that is AnyOS).
If you want to build all projects for all OS's from the root pass
/p:BuildAllOSGroups=true property from the command line.
Includes an update to project-guidelines.md and windows-instructions.md docs
with information on the changes.
[MERGE with support commit]
|
|
This change switches the TFS package buid to use the packaging
infrastructure from the buildtools package. For any package
project that exists in corefx/wcf we will use that in place of the
closed source package.
As we move more package projects to the open they will
automatically be preferred over the closed source projects.
[tfs-changeset: 1559910]
|
|
Adds packages for a few libraries and integrates
package build into the binary build process.
|
|
|
|
restore find all project.json files.
Also removes RestorePackages -> true in many csproj files. It was causing redundant work.
|
|
|
|
There is a need to execute some targets after the product and test
binaries have been built; this change adds such a hook,
PostBuildDependsOn, allowing targets to execute post-build.
Move to latest version of build tools.
Fixed a build issue for XML serialization perf tests.
|
|
In CI we have a long basename for the repo root, which was causing the
dnu restore command we generate to work around a dnu breaking change to
be longer than the maximum length in Windows.
Change our MSBuild logic for dnu restore to batch once per thing to
restore instead of trying to do everything at once.
|
|
DNX has an issue https://github.com/aspnet/dnx/issues/2771
where an invalid lock files will cause the entire repro to be updated
to the latest packages. I've fixed the invalid lock files, this adds
an error to block it from happening again.
[tfs-changeset: 1539937]
|
|
from the following changesets.
1485206
1485208
1486043
1488531
1493227
1493288
1493289
1493328
1493358
1495328
[tfs-changeset: 1495502]
|
|
|
|
We've been hitting a number of concurrency issues on restore. Avoid these by running restore as a single step at the start of the build. We'll let DNX deal with concurrency via the --parallel switch.
|
|
This moves most of the targets out of the corefx repo targets and into
the build tools targets. We want to minimize the amount of bootstrapping
code/targets that are needed in an individual repo to consume build tools
so it becomes easy for other repo's to start using and pick-up changes to
our common build tools.
|
|
|
|
Conflicts:
build.proj
|
|
This commit enables generating code coverage reports for individual
projects. To run a build and test with code coverage reports run
command:
msbuild /t:BuildAndTest /p:Coverage=true
|