diff --git a/.drone.yml b/.drone.yml index d1f9aeac..38c902ce 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ steps: image: cirrusci/flutter:dev environment: buildbot_key_b64: - from_secret: buildbot_key_b64 + from_secret: buildbot_key_b64 commands: - mkdir ~/.ssh - echo $buildbot_key_b64 > ~/.ssh/id_rsa.b64 @@ -68,8 +68,8 @@ steps: - name: test-build-android image: cirrusci/flutter:dev - when: - event: pull_request + when: + event: pull_request volumes: - name: deps path: /root/.pub-cache @@ -106,7 +106,7 @@ steps: - name: deps path: /root/.pub-cache commands: - # - flutter config --enable-linux-desktop + # - flutter config --enable-linux-desktop - flutter test --coverage - genhtml coverage/lcov.info -o coverage/html @@ -209,21 +209,10 @@ steps: - name: build-windows image: openpriv/flutter-desktop:windows-sdk30-fdev2.3rc - environment: - pfx: - from_secret: pfx - pfx_pass: - from_secret: pfx_pass commands: - flutter pub get - $Env:version += type .\VERSION - $Env:builddate += type .\BUILDDATE - - $Env:buildname = 'flwtch-win-' + $Env:version + '-' + $Env:builddate - - $Env:builddir = $Env:buildname - - $Env:zip = 'cwtch-' + $Env:version + '.zip' - - $Env:zipsha = $Env:zip + '.sha512' - - $Env:msix = 'cwtch-install-' + $Env:version + '.msix' - - $Env:msixsha = $Env:msix + '.sha512' - $Env:releasedir = "build\\windows\\runner\\Release\\" - flutter build windows --dart-define BUILD_VER=$Env:version --dart-define BUILD_DATE=$Env:builddate - copy windows\libCwtch.dll $Env:releasedir @@ -234,22 +223,46 @@ steps: - copy C:\BuildTools\VC\Redist\MSVC\14.29.30036\x64\Microsoft.VC142.CRT\vcruntime140_1.dll $Env:releasedir - copy C:\BuildTools\VC\Redist\MSVC\14.29.30036\x64\Microsoft.VC142.CRT\msvcp140.dll $Env:releasedir - powershell -command "Expand-Archive -Path tor.zip -DestinationPath $Env:releasedir\Tor" + + - name: package-windows + image: openpriv/nsis:latest + environment: + pfx: + from_secret: pfx + pfx_pass: + from_secret: pfx_pass + commands: + - $Env:version += type .\VERSION + - $Env:builddate += type .\BUILDDATE + - $Env:releasedir = "build\\windows\\runner\\Release\\" + - $Env:zip = 'cwtch-' + $Env:version + '.zip' + - $Env:zipsha = $Env:zip + '.sha512' + - $Env:msix = 'cwtch-install-' + $Env:version + '.msix' + - $Env:msixsha = $Env:msix + '.sha512' + - $Env:buildname = 'flwtch-win-' + $Env:version + '-' + $Env:builddate + - $Env:builddir = $Env:buildname - echo $Env:pfx > codesign.pfx.b64 - certutil -decode codesign.pfx.b64 codesign.pfx - - C:\MSIX-Toolkit\MSIX-Toolkit.x64\signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com $Env:releasedir\cwtch.exe + - signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com $Env:releasedir\cwtch.exe + - copy windows\runner\resources\knot_128.ico $Env:releasedir\cwtch.ico + - makensis windows\nsis\cwtch-installer.nsi + - move windows\nsis\cwtch-installer.exe cwtch-installer.exe + - signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com cwtch-installer.exe + - powershell -command "(Get-FileHash cwtch-installer.exe -Algorithm sha512).Hash" > cwtch-installer.sha512 - mkdir deploy - mkdir deploy\$Env:builddir - move $Env:releasedir $Env:builddir - powershell -command "Compress-Archive -Path $Env:builddir -DestinationPath cwtch.zip" - powershell -command "(Get-FileHash cwtch.zip -Algorithm sha512).Hash" > $Env:zipsha + - move cwtch-installer.exe deploy\$Env:builddir\cwtch-installer.exe - move cwtch.zip deploy\$Env:builddir\$Env:zip - - move $Env:zipsha deploy\$Env:builddir + - move *.sha512 deploy\$Env:builddir - name: deploy-windows image: openpriv/flutter-desktop:windows-sdk30-fdev2.3rc when: - event: push - status: [ success ] + event: push + status: [ success ] environment: BUILDFILES_KEY: from_secret: buildfiles_key diff --git a/windows/nsis/brand_side.bmp b/windows/nsis/brand_side.bmp new file mode 100644 index 00000000..3d03803d Binary files /dev/null and b/windows/nsis/brand_side.bmp differ diff --git a/windows/nsis/cwtch-installer.nsi b/windows/nsis/cwtch-installer.nsi new file mode 100644 index 00000000..75a59515 --- /dev/null +++ b/windows/nsis/cwtch-installer.nsi @@ -0,0 +1,92 @@ +; USAGE: Run in ui/deploy, requires the output be in 'windows' directory + +!include "MUI2.nsh" + +; General settings ---------------------------- +Name "Cwtch" +; !define MUI_BRANDINGTEXT "SIG Beta Ver. 1.0" + +Unicode True + +# define the name of the installer +Outfile "cwtch-installer.exe" + +# For removing Start Menu shortcut in Windows 7 +#RequestExecutionLevel user +RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) + +# define the directory to install to, the desktop in this case as specified +# by the predefined $DESKTOP variable +InstallDir "$PROGRAMFILES\Cwtch" + +;Get installation folder from registry if available +InstallDirRegKey HKCU "Software\Cwtch" "installLocation" + +; MUI Interface ----------------------------- + +!define MUI_INSTALLCOLORS "DFB9DE 281831" + +; 128x128, 32bit +!define MUI_ICON "../runner/resources/knot_128.ico" + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "cwtch_title.bmp" + +!define MUI_TEXTCOLOR "350052" + +!define MUI_WELCOMEFINISHPAGE_BITMAP "brand_side.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP_STRETCH NoStretchNoCrop + +!define MUI_INSTFILESPAGE_COLORS "DFB9DE 281831" +!define MUI_INSTFILESPAGE_PROGRESSBAR "colored" + +!define MUI_FINISHPAGE_NOAUTOCLOSE + + +ShowInstDetails show + +; Pages -------- + + +!define MUI_WELCOMEPAGE_TITLE "Welcome to the Cwtch installer" +!define MUI_WELCOMEPAGE_TEXT "Cwtch (pronounced: kutch) is a Welsh word roughly meaning 'a hug that creates a safe space'$\n$\n\ + Cwtch is a platform for building consentful, decentralized, untrusted infrastructure using metadata resistant group communication applications. Currently there is a selfnamed instant messaging prototype app that is driving development and testing. Many Further apps are planned as the platform matures." + +!define MUI_FINISHPAGE_TITLE "Enjoy Cwtch" +!define MUI_FINISHPAGE_RUN $INSTDIR/cwtch.exe +!define MUI_FINISHPAGE_TEXT "You can keep up-to-date on Cwtch and report any issues you have at https://cwtch.im" +!define MUI_FINISHPAGE_LINK "https://cwtch.im" +!define MUI_FINISHPAGE_LINK_LOCATION "https://cwtch.im" +!define MUI_FINISHPAGE_LINK_COLOR "D01972" + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "../../LICENSE" +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +; Languages -------------------------------- + +!insertmacro MUI_LANGUAGE "English" + +# default section +Section + + # define the output path for this file + SetOutPath $INSTDIR + + # define what to install and place it in the output path + # Filler for .sh to populate with contents of deploy/windows + #FILESLISTSTART + FILE /r "..\..\build\windows\runner\Release\" + #FILESLISTEND + + + # create a shortcut in the start menu programs directory + CreateDirectory "$SMPROGRAMS\Cwtch" + CreateShortcut "$SMPROGRAMS\Cwtch\Cwtch.lnk" "$INSTDIR\cwtch.exe" "" "$INSTDIR\cwtch.ico" + + ;Store installation folder + WriteRegStr HKCU "Software\Cwtch" "installLocation" $INSTDIR + +SectionEnd diff --git a/windows/nsis/cwtch_title.bmp b/windows/nsis/cwtch_title.bmp new file mode 100644 index 00000000..8acc80af Binary files /dev/null and b/windows/nsis/cwtch_title.bmp differ