diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index f8e9e15f..3abc992a 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -103,7 +103,7 @@ jobs: uses: ncipollo/release-action@v1 with: token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} - artifacts: "master/server/build/*.jar,master/server/build/*.zip,master/server/build/*.tar.gz" + artifacts: "master/server/build/*.jar,master/server/build/*.msi,master/server/build/*.zip,master/server/build/*.tar.gz" owner: "Suwayomi" repo: "Tachidesk-Server-preview" tag: ${{ steps.GenTagName.outputs.value }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6bdc74e5..e7c0562f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -72,7 +72,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - file: "master/server/build/*.jar;master/server/build/*.zip;master/server/build/*.tar.gz" + file: "master/server/build/*.jar;master/server/build/*.msi;master/server/build/*.zip;master/server/build/*.tar.gz" tags: true draft: true verbose: true diff --git a/scripts/Tachidesk-Server-x64.wxs b/scripts/Tachidesk-Server-x64.wxs new file mode 100755 index 00000000..e3dd34df --- /dev/null +++ b/scripts/Tachidesk-Server-x64.wxs @@ -0,0 +1,86 @@ + + + + + + + + VersionNT64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/Tachidesk-Server-x86.wxs b/scripts/Tachidesk-Server-x86.wxs new file mode 100755 index 00000000..a0aa4206 --- /dev/null +++ b/scripts/Tachidesk-Server-x86.wxs @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/windows-bundler.sh b/scripts/windows-bundler.sh index f344d92b..65939fa7 100755 --- a/scripts/windows-bundler.sh +++ b/scripts/windows-bundler.sh @@ -7,8 +7,8 @@ # file, You can obtain one at https://mozilla.org/MPL/2.0/. electron_version="v14.0.0" - -if [ $1 = "win32" ]; then +arch=$1 +if [ $arch = "win32" ]; then jre="OpenJDK8U-jre_x86-32_windows_hotspot_8u292b10.zip" jre_release="jdk8u292-b10" jre_url="https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/$jre_release/$jre" @@ -29,7 +29,7 @@ echo "creating windows bundle" jar=$(ls ../server/build/*.jar | tail -n1) jar_name=$(echo $jar | cut -d'/' -f4) release_name=$(echo $jar_name | sed 's/.jar//')-$arch - +release_ver=$(tmp=${jar%-*} && echo ${tmp##*-} | tr -d v) # make release dir mkdir $release_name @@ -62,6 +62,7 @@ if [ $CI = true ]; then sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" sudo apt install --install-recommends winehq-stable + sudo apt install -y wixl fi # this script assumes that wine is installed here on out @@ -76,11 +77,26 @@ cp "resources/Tachidesk Electron Launcher.bat" $release_name zip_name=$release_name.zip zip -9 -r $zip_name $release_name +# create msi package +msi_name=$release_name.msi + +find $release_name/jre | wixl-heat --var var.SourceDir -p $release_name/ --directory-ref jre --component-group jre > jre.wxs +find $release_name/electron | wixl-heat --var var.SourceDir -p $release_name/ --directory-ref electron --component-group electron > electron.wxs +if [ $arch = "win32" ]; then + wixl -D ProductVersion=$release_ver -D SourceDir=$release_name --arch x86 Tachidesk-Server-x86.wxs jre.wxs electron.wxs -o $msi_name +else + wixl -D ProductVersion=$release_ver -D SourceDir=$release_name --arch x64 Tachidesk-Server-x64.wxs jre.wxs electron.wxs -o $msi_name +fi + rm -rf $release_name # clean up from possible previous runs if [ -f ../server/build/$zip_name ]; then rm ../server/build/$zip_name fi +if [ -f ../server/build/$msi_name ]; then + rm ../server/build/$msi_name +fi mv $zip_name ../server/build/ +mv $msi_name ../server/build/