From c4dd68da7138fbcbf5aa3a6201099949a80c6a2d Mon Sep 17 00:00:00 2001 From: papeh Date: Thu, 8 Dec 2022 14:25:13 -0600 Subject: [PATCH] Build ChorusMergeModule (#310) * Publish NuGet package for ChorusMergeModule.msm Addresses https://github.com/sillsdev/chorus/issues/299 --- .github/workflows/dotnet.yml | 31 ++++++++ .gitignore | 5 +- build/Chorus.proj | 96 +++++++++++++++++++++++++ src/Installer/ChorusMergeModule.nuspec | 15 ++++ src/Installer/ChorusMergeModule.wixproj | 40 ++++++----- src/Installer/ChorusMergeModule.wxs | 5 +- src/Installer/NuGet.targets | 64 +++++++++++++++++ 7 files changed, 231 insertions(+), 25 deletions(-) create mode 100644 build/Chorus.proj create mode 100644 src/Installer/ChorusMergeModule.nuspec create mode 100644 src/Installer/NuGet.targets diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 0633d2275..68ee9743b 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -65,6 +65,37 @@ jobs: name: Test Results (${{matrix.os}}) path: "**/TestResults/*.xml" + - name: Checkout Chorus Help # required for Chorus Merge Module + uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + with: + repository: sillsdev/chorushelp + path: lib + clean: false # don't delete other files from lib + if: matrix.os == 'windows-latest' + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@34cfbaee7f672c76950673338facd8a73f637506 # v1.1.3 + if: matrix.os == 'windows-latest' + + # ChorusMergeModule.msm is used by FieldWorks, FLExBridge, and possibly WeSay installers (as of 2022.12). + # CMM must be built after tests have been run, since the fixutf8.pyc files are generated only when the .py files are run. + - name: Build Merge Module + run: msbuild src/Installer/ChorusMergeModule.wixproj + if: matrix.os == 'windows-latest' + + - name: Pack Merge Module + run: msbuild src/Installer/ChorusMergeModule.wixproj -t:pack + if: matrix.os == 'windows-latest' + + - name: Upload Merge Modules + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + with: + name: chorus-merge-module + path: | + output/Release/*.msm + output/*.nupkg + if: matrix.os == 'windows-latest' + - name: Pack run: dotnet pack --no-restore --no-build -c Release diff --git a/.gitignore b/.gitignore index d718e38e6..14ebca211 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -build/NuGet.exe -build/nuget.exe +NuGet.exe +nuget.exe CopyToWeSay.bat output/ obj/ @@ -21,6 +21,7 @@ mercurial/ build/old launchSettings.json lib/$(Configuration) +*.nupkg *.resources *.userprefs .vs/ diff --git a/build/Chorus.proj b/build/Chorus.proj new file mode 100644 index 000000000..5e7cc9c26 --- /dev/null +++ b/build/Chorus.proj @@ -0,0 +1,96 @@ + + + $(MSBuildProjectDirectory)/.. + $(teamcity_build_checkoutDir) + Chorus.sln + $(RootDir)/$(Solution) + ChorusLibrary + Chorus + chorus + Release + KnownMonoIssue, + SkipOnTeamCity,SkipOnBuildServer,SkipOnTeamCityRandomTestFailure,$(ExtraExcludeCategories) + true + false + $(RootDir)/output/$(Configuration) + true + false + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Installer/ChorusMergeModule.nuspec b/src/Installer/ChorusMergeModule.nuspec new file mode 100644 index 000000000..a6e0dda22 --- /dev/null +++ b/src/Installer/ChorusMergeModule.nuspec @@ -0,0 +1,15 @@ + + + + $PackageId$ + $Version$ + This is a merge module to set up https://github.com/sillsdev/chorus + SIL International + MIT + https://github.com/sillsdev/chorus + Copyright © 2010-$Year$ SIL International + + + + + \ No newline at end of file diff --git a/src/Installer/ChorusMergeModule.wixproj b/src/Installer/ChorusMergeModule.wixproj index 814e34825..cb054a782 100644 --- a/src/Installer/ChorusMergeModule.wixproj +++ b/src/Installer/ChorusMergeModule.wixproj @@ -1,26 +1,22 @@  + Release x86 - 3.5 + $(GitVersion_AssemblySemVer) ca0d1ee4-fbea-40fb-a6bc-d9a161e1f2fa 2.0 ChorusMergeModule Module + ..\..\output\$(Configuration)\ + obj\$(Configuration)\ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets ChorusMergeModule - - - ..\..\output\$(Configuration)\ - obj\$(Configuration)\ - Debug - True - - - ..\..\output\$(Configuration)\ - obj\$(Configuration)\ + ProductVersion=$(ProductVersion) + Debug;$(DefineConstants) True @@ -35,12 +31,18 @@ - + + + + + netstandard2.0 + SIL.Chorus.ChorusMergeModule + $(GitVersion_NuGetVersion) + $([System.DateTime]::Now.ToString(yyyy)) + + + + + + \ No newline at end of file diff --git a/src/Installer/ChorusMergeModule.wxs b/src/Installer/ChorusMergeModule.wxs index c27a0d0cb..8cc262412 100644 --- a/src/Installer/ChorusMergeModule.wxs +++ b/src/Installer/ChorusMergeModule.wxs @@ -1,14 +1,11 @@ - - - - + diff --git a/src/Installer/NuGet.targets b/src/Installer/NuGet.targets new file mode 100644 index 000000000..9252fffca --- /dev/null +++ b/src/Installer/NuGet.targets @@ -0,0 +1,64 @@ + + + + $(MSBuildThisFileDirectory) + + + $(NuGetToolsPath)nuget.exe + + "$(NuGetExePath)" + mono $(NuGetExePath) + https://dist.nuget.org/win-x86-commandline/latest/nuget.exe + + + + + + + + + + + + + + + + + + + + + + + + + + + + +