feat(developer): build kmcomp-$version.zip during release build

Replaces the script building kmcomp-$version.zip in TeamCity. Will be
used for more automated keyboard testing shortly.

Means kmcomp-$version.zip will be available as an artifact in all test
builds.

@keymanapp-test-bot skip
This commit is contained in:
Marc Durdin 2022-07-09 15:45:44 +10:00
parent 883b1da406
commit e38cc79efc
3 changed files with 34 additions and 9 deletions

View file

@ -19,10 +19,10 @@ KEYMAN_WIX_TEMP_TEMPLATES=$(TEMP)\keyman_wix_build\templates
KEYMAN_WIX_TEMP_MODELCOMPILER=$(TEMP)\keyman_wix_build\ModelCompiler
KEYMAN_WIX_TEMP_SERVER=$(TEMP)\keyman_wix_build\Server
KEYMAN_WIX_KMDEV_SERVER=$(DEVELOPER_ROOT)\src\server\build
KEYMAN_WIX_KMDEV_SERVER=$(DEVELOPER_ROOT)\bin\server
KEYMAN_DEVELOPER_TEMPLATES_ROOT=$(DEVELOPER_ROOT)\src\kmconvert\data
copykmdev: makeinstaller
copykmdev: makeinstaller make-kmcomp-install-zip
-mkdir $(DEVELOPER_ROOT)\release\$Version
copy /Y $(DEVELOPER_ROOT)\src\inst\keymandeveloper.msi $(DEVELOPER_ROOT)\release\$Version\keymandeveloper.msi
copy /Y $(DEVELOPER_ROOT)\src\inst\keymandeveloper-$Version.exe $(DEVELOPER_ROOT)\release\$Version\keymandeveloper-$Version.exe
@ -102,3 +102,28 @@ makeinstaller:
$(WZZIP) setup.zip keymandeveloper.msi setup.inf
copy /b $(DEVELOPER_PROGRAM)\setup.exe + setup.zip keymandeveloper-$Version.exe
$(SIGNCODE) /d "Keyman Developer" keymandeveloper-$Version.exe
#
# Zip the files we distribute as part of the standalone kmcomp distro into release\$Version\kmcomp-$Version.zip
#
KMCOMP_ZIP=$(DEVELOPER_ROOT)\release\$Version\kmcomp-$Version.zip
make-kmcomp-install-zip: copy-schemas
cd $(DEVELOPER_ROOT)\bin
$(WZZIP) -bd -bb0 $(KMCOMP_ZIP) \
kmcomp.exe kmcmpdll.dll kmcomp.x64.exe kmcmpdll.x64.dll \
kmconvert.exe \
keyboard_info.source.json keyboard_info.distribution.json \
keyman-touch-layout.spec.json keyman-touch-layout.clean.spec.json \
xml\layoutbuilder\*.keyman-touch-layout \
projects\* \
server\*
copy-schemas:
copy $(KEYMAN_ROOT)\common\schemas\keyboard_info\keyboard_info.source.json $(DEVELOPER_ROOT)\bin
copy $(KEYMAN_ROOT)\common\schemas\keyboard_info\keyboard_info.distribution.json $(DEVELOPER_ROOT)\bin
copy $(KEYMAN_ROOT)\common\schemas\keyman-touch-layout\keyman-touch-layout.spec.json $(DEVELOPER_ROOT)\bin
copy $(KEYMAN_ROOT)\common\schemas\keyman-touch-layout\keyman-touch-layout.clean.spec.json $(DEVELOPER_ROOT)\bin

View file

@ -28,7 +28,7 @@ display_usage ( ) {
echo " $0 --help"
echo
echo " --help displays this screen and exits"
echo " --production, -p builds production release in build/"
echo " --production, -p builds production release in /developer/bin/server/"
echo " --skip-package-install, -S don't run npm install (not valid with --production)"
echo " --test, -t runs unit tests after building"
#echo " --watch, -w builds dev server in watch mode"
@ -184,10 +184,10 @@ if (( production )) ; then
mkdir -p "$PRODBUILDTEMP/node_modules/@keymanapp/"
cp -R "$KEYMAN_ROOT/node_modules/@keymanapp/keyman-version/" "$PRODBUILDTEMP/node_modules/@keymanapp/"
# We'll build in the build/ folder
rm -rf build/
mkdir -p build/dist/
cp -R dist/* build/dist/
cp -R "$PRODBUILDTEMP"/* build/
# We'll build in the $KEYMAN_ROOT/developer/bin/server/ folder
rm -rf "$KEYMAN_ROOT/developer/bin/server/"
mkdir -p "$KEYMAN_ROOT/developer/bin/server/dist/"
cp -R dist/* "$KEYMAN_ROOT/developer/bin/server/dist/"
cp -R "$PRODBUILDTEMP"/* "$KEYMAN_ROOT/developer/bin/server/"
rm -rf "$PRODBUILDTEMP"
fi

View file

@ -41,4 +41,4 @@ cd "$KEYMAN_ROOT/developer/src"
echo "Uploading symbols for developer/"
sentry-cli upload-dif -p keyman-developer -t breakpad -t pdb . --include-sources
sentry-cli releases -p keyman-developer files "release-$VERSION_WITH_TAG" upload-sourcemaps ./TIKE/xml ./server/build ./kmlmc/dist
sentry-cli releases -p keyman-developer files "release-$VERSION_WITH_TAG" upload-sourcemaps ./TIKE/xml ../bin/server ./kmlmc/dist