[WIP] First things for maturity and CD setup; IDE, Paket, FAKE#103
Closed
tomzo wants to merge 4 commits intoloic-sharma:masterfrom
Closed
[WIP] First things for maturity and CD setup; IDE, Paket, FAKE#103tomzo wants to merge 4 commits intoloic-sharma:masterfrom
tomzo wants to merge 4 commits intoloic-sharma:masterfrom
Conversation
This should provide sufficient environment for building and testing on linux. Includes debian and alpine based images For usage see https://github.com/ai-traders/docker-dotnet-ide
da9671a to
f2d5867
Compare
This was referenced Oct 1, 2018
Closed
Contributor
Author
|
Opened #108 instead |
0xced
pushed a commit
to 0xced/BaGet
that referenced
this pull request
Mar 30, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
3 things:
ide <command>. E.g.ide ./build.shwill run msbuild publish and run tests with xunit.Closes Issue(s)
Motivation and why
@loic-sharma I briefly spoke to you about some of this. You were asking what are benefits of paket and fake considering that msbuild is in place already.
Why paket:
paket.dependenciesgives you an quick overview of all packages used by application.paket.lockgives you detailed info about each version of all direct and transitive dependencies.dotnetSDK. There is no nuget CLI for linux with works without mono, and I managed to keep away from mono so far.Why FAKE:
Why I am running tests with
dotnet ...xunit.console.dll <assemblies-from-publish-dir>?The main point in CD is that artifacts which constitute the application should be produced just once and then ran through all QA stages. We really need to be testing exactly the same files at each point until final release to ensure quality. In dotnet world that means using
dotnet publishto force outputting application and all all its dependencies.One of the common issues I had with dotnet assemlies is that running with dotnet test adapter uses additional assemblies from nuget caches. So I've seen tests passing when ran with
dotnet testordotnet xunit, but when same test is executed withdotnet ...xunit.console.dll <assemblies-from-publish-dir>it fails. Naturally same load errors happen in deployed application (after all tests have passed earlier...). So running tests withpublishreproduces those errors and makes sure that we get load errors early.PS: I actually ran into this already in BaGet and fixed it. The
Microsoft.AspNetCore.Appin BaGet.Tests was causing problems like this:Additional Notes
On the bad side, it runs on our private infrastructure and feedback will not be available to other contributors until we setup something. E.g. maybe server could post failures to the PR? @loic-sharma what do think?
I am not stressing that we (AIT) build it but I see no good CI provider which can give me a local docker host, which is necessary for e2e tests which I plan to add later.
Tests on debian stretch are fine after modifying
LD_LIBRARY_PATHto include the directory with native extensionstests/BaGet.Tests/bin/Release/netcoreapp2.1/publish/runtimes/linux-x64/native/. Otherwise they fail withTests on alpine fail with a core dump, I couldn't fix it yet
@loic-sharma can you check if you can run
build.cmdon windows? I don't have any windows hosts and I just guessed how the script should look like.