Last active
February 21, 2022 23:44
-
-
Save dasMulli/fdc9bf5c433175f8feb638d3eed41b68 to your computer and use it in GitHub Desktop.
CI build script for a mvc + Webpack SPA app
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
<Project DefaultTargets="Build"> | |
<PropertyGroup> | |
<Configuration>Release</Configuration> | |
</PropertyGroup> | |
<ItemGroup> | |
<SolutionFile Include="*.sln" /> | |
<PublishProject Include="src\My.Mvc.Project\My.Mvc.Project.csproj" /> | |
<NpmTestProject Include="@(PublishProject)" /> | |
</ItemGroup> | |
<Target Name="Restore"> | |
<MSBuild Projects="@(SolutionFile)" Targets="Restore;NpmInstall" /> | |
</Target> | |
<Target Name="Build" DependsOnTargets="BuildProjects;Publish;Test" /> | |
<Target Name="_PrepareParameters"> | |
<PropertyGroup> | |
<OutputBaseDir Condition="'$(BUILD_ARTIFACTSTAGINGDIRECTORY)' != ''">$(BUILD_ARTIFACTSTAGINGDIRECTORY)\</OutputBaseDir> | |
<OutputBaseDir Condition="'$(OutputBaseDir)' == ''">$(MSBuildThisFileDirectory)</OutputBaseDir> | |
<PublishBaseDir>$(OutputBaseDir)artifacts</PublishBaseDir> | |
<TestResultsBaseDir>$(OutputBaseDir)test-results</TestResultsBaseDir> | |
<BuildProperties>Configuration=$(Configuration)</BuildProperties> | |
</PropertyGroup> | |
</Target> | |
<Target Name="BuildProjects" DependsOnTargets="_PrepareParameters"> | |
<MSBuild Projects="@(SolutionFile)" Targets="Build" Properties="$(BuildProperties)" /> | |
</Target> | |
<Target Name="Publish" DependsOnTargets="_PrepareParameters"> | |
<MSBuild Projects="@(PublishProject)" Targets="Publish" Properties="$(BuildProperties);PublishDir=$(PublishBaseDir)\%(PublishProject.Filename)" /> | |
</Target> | |
<Target Name="Test" DependsOnTargets="NpmCiTest;VSTest" /> | |
<Target Name="NpmCiTest" DependsOnTargets="_PrepareParameters"> | |
<MSBuild Projects="@(NpmTestProject)" Targets="NpmCiTest" Properties="$(BuildProperties);TestResultsOutputPath=$(TestResultsBaseDir)\%(NpmTestProject.Filename)\" /> | |
</Target> | |
<Target Name="VSTest" DependsOnTargets="_PrepareParameters"> | |
<MSBuild Projects="@(SolutionFile)" Targets="VSTest" Properties="$(BuildProperties);VSTestLogger=trx%3BLogFileName=VSTestResults.trx;TestResultsBaseDir=$(TestResultsBaseDir)" /> | |
</Target> | |
</Project> |
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
<Project> | |
<Target Name="NpmInstall" Condition="Exists('package.json')"> | |
<Exec Command="npm install" /> | |
</Target> | |
<Target Name="NpmCiTest" Condition="Exists('package.json')"> | |
<Exec Command="npm run ci-test" /> | |
<ItemGroup Condition="'$(TestResultsOutputPath)' != ''"> | |
<TestResultFiles Include="obj\karma-testresults\**" /> | |
</ItemGroup> | |
<Copy SourceFiles="@(TestResultFiles)" DestinationFolder="$(TestResultsOutputPath)" Condition="'$(TestResultsOutputPath)' != ''" /> | |
</Target> | |
<PropertyGroup Condition="'$(TestResultsBaseDir)' != ''"> | |
<VSTestResultsDirectory>$(TestResultsBaseDir)\$(MSBuildProjectName)</VSTestResultsDirectory> | |
</PropertyGroup> | |
<Target Name="VSTestIfTTestProject"> | |
<CallTarget Targets="VSTest" Condition="'$(IsTestProject)' == 'true'" /> | |
</Target> | |
</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To be run with
dotnet build ci-build.proj
ormsbuild /restore ci-build.proj