From fe9c5281b690af6f74c3abd7912ebe610045bc69 Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Tue, 29 Dec 2020 16:43:35 +0100 Subject: [PATCH] chore(workflows): produce NSIS windows installers (#142) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(workflows): produce NSIS windows installers Co-authored-by: Roberto Abdelkader Martínez Pérez --- .github/NSIS/kapow.bmp | Bin 0 -> 26494 bytes .github/NSIS/kapow.ico | Bin 0 -> 13902 bytes .github/NSIS/windows.nsi | 167 ++++++++++++++++++ .github/workflows/release.yml | 59 +++++++ .goreleaser.yml | 2 +- .../the_project/install_and_configure.rst | 9 +- 6 files changed, 233 insertions(+), 4 deletions(-) create mode 100644 .github/NSIS/kapow.bmp create mode 100644 .github/NSIS/kapow.ico create mode 100644 .github/NSIS/windows.nsi diff --git a/.github/NSIS/kapow.bmp b/.github/NSIS/kapow.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5524eef945119e421d076d8fa9f8ded1205c1021 GIT binary patch literal 26494 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 Dp19ST literal 0 HcmV?d00001 diff --git a/.github/NSIS/kapow.ico b/.github/NSIS/kapow.ico new file mode 100644 index 0000000000000000000000000000000000000000..f8fbd5ffa910bd7e090becb3ec78fda3cfa4dd8f GIT binary patch literal 13902 zcmeHtcVJsZw)Y8P2`sR*WtXxK!tT3-fg*e%a$xx z$&%c=+$}d*l1psMvLwqz?lq3%#Mp6Sop-Kmvmp!YKHmHO`^Fy4ojYgdoS8fK&Tr=Y z0M@`dxclzAfeBBo0kENz$*zH0!R!|R@pNzf`sMPmn*eTE$K;pGMYjS>-v;p9b1V5@ z0Yu-sT7Ny5-3;*7W2^G(K}5}@K2CZV9TceKO9656O zXQV6j!K8;;U$blpW6f%GqkI2Jl&(em{y5!gvUVdqkM9C=y^=q+Zxfgw-40HtcY?Xg z9!Pe20%BZuf}8UxI1~IeoQyvWrxGln&F3cQiM$6e?kR|4Z3iBeMa6vyyvTjP3qJ}8 zAr`=kv4JF#4bC_Y-j#x4(EX;!RDiP%6WI#bx zCM0E*Q@goPT2utN`Q?x!se;nN5>Vv(fUGP4YRglgwm<~+k_?a+mw<1BFXUJILq=05 zq)K^^(i#Z?iWK0;DnTR@f>4$T74jqysgj^XD}>C(Tu5&&hqA6b=&t61qM8qirX;AX zO^0*!nV@LN2DMBC?aB=3ZWKYcRsibmY^Xk00Q#0(P;}>lytfQGG?Z`4hjvvZs5>e^ zt0{-J?n>zGs)GL3Oc?B}0PHG+Xr2nfa}*$!NI{sX2Vr&(h_bptnA-&fl{&~P?S-PM zK8pQhn-tQT8=y#04aGHbsH{^$wyp(=)QwQuu7GmoAe6UELUX+oA%VnTyu7UO@ zIaI4!pp{~MV;eLyt3cJ>3Y~3j(AutnR!s+}be%BJT@M3&El^`e{cm5)X?fKW&0oL8U>9Ey)>))+qhq}LcAHdDO*}C`CLCbHRV|}&r z`Flg)m!ItV`otLvv)!M6`of>@{RnRRug|_be)Px}&p-302k!sX7P$4d+s-7MJ$c}r zw>Lcf>stcgkK4H!S%UbK^z`&(e_MbLU*$PJ`ttABzxdcAnSSq*0Z;h4IXKgwqfNRU zV;{Wa&KHTq>6xisrYyh*uk7&QC3$_Yl4X+c@aW~7(G_6kE&v0qP13crRM0ok6sg$l z`nYnRkzr(+I>xt`*Q50$w~^xNdgMlH-D>#1UXNDWT}jv3+FC4MhTsehKC>Dv-=Mt3 z^5R5;MuGCSH|ANU#cR0&Q%;MW#cGQyd4QD$eyV;a1|IqtE1*Y)oD=)(7&u#_VFK>a|7R-~xvZ?FajlN5SswVQ}Al9|YUp37j);0`K%k5NQ2(;5dB%(biu; zlGQd~I~@dHdcMgn``~EY9xxMs4o;>)1J4pL%|K}xU#@VU0Y5g!Nloa2y?Vhb^4_8<@(f}G@Iki@rx(lk2|kYXR&zUJqxTo59=82b@AYz`>6P*6E($P{IK#fdE{Jv%#_65B$75 zAw19v;@LhB;L8S|m?+>xvmqtI6Oy9>AdwdY0!}n!#1ejD$5EaGS#dGIO9_DZOu|}) z9Ku;Xke}uQDFp#gD)ED)^l-?^jDX}6E{GF(kerCGV+R{ATN(_SU!|f{d`F!6c-jld1)zBXZaEy^MS^4HmJ%YVXQnF zs?*a!UYG|BW#tgq=m#-MZ*Z&UKxk78#J92ulleocG6p2gY)Eg7fP#*A2x-iQh$ayP z$R!ZlR0yf{A`o_@LXk!UV!9`3Dh08+3`+Hc1#8*RCXE7=M?rOU5-95hP+OM{iUu)g zlwzps6oN*R2GZIBXqFLXYb*e%tQ6`R%bUQ`FgrPYvsLSmf(N@PRO&`<|zg%ax2O3-!HLqlT+GvzP$D7v#F#<8Z*9kW2zhae5^N^8hG&5Kfm^lq*D3M@`;H7Lw{e6^-C`# z0mS_3w!gmiu9ZpPtWp{Ok6-&u3=H(;=LcK9`m6&$;9U>D{-#h|RYew7HY=qy)dr?C zC)m;Qjc2I~tVh=WAtfz6uSzagG&j@K=_{bp97ji{{2?lT^s&8y)WV{oqUq@i7cR(i za&kmeD73VE_vL4PYbyUka%yf~o?I@MN*kq)mX_A@D zstiXX;>E=)SDA2Ser|Bkg^B@oeVs9|IHR4rJ;Li#r)}ChMs_=Y z=6v<)+@NY1P#!)+<#X-ZKX(0mN83lPACG^c*}87&>b!orIyKeABE)hp+9t6+CU>fmmV?17nug$0thGCAz3 zy{@+DQs=z;n>|@sy_1vU5zaSMUXcxRa{9)_#oe8j%>Ou;0L;u?%Lf&-)Dp&cdja54 z0;hK|(Lf+o3c%nK6Gm|()bLZ0Y*03DcF(8*|hiQ{(o3M+k=}=^5ok=x=Q=X%^ zkK%VY<(HIM4QuFvi4Oe&!i?al;09=cPMg`=*EBy?0)MhacMs zzkljWc;c_8;k9?|3A_9QjvdVp8X8$P96d~TQhJZJR7v<*AVY?H}LImhdk#s z5WVMb5P0+{h&lQSaL&F3GRHL#dFVah*uM|n_FqA)-520_>NEt|9fv3vGjKPz1(uBi z9P`}*&JkO{%zqb{vA+bD*j;ce<3q5Qd;~|cc7Y9H9c%Ana3tX;4J&cx{6?-yOhZ?*c*8SCE^q7ebQ00l%`(f$Mh!;v$biu$vP^ z``AKU6yY%j8wFZJQmie6h)zI!>Iv|w*ar!z_7GHh7I?WfAWl6Bd4l7ROc<#|Y(p5y z5hVFeP$T&U=Ca-cW7b}1&OZU#l4DRqn>l5%Js1lPf>+H+h^Rge{&jW`Tki;bnLVha z4)B*(!(hvfVEFowKUi1>!scC7uBAZ3PYZm}ZUJUF;2_&>u5snc;C7mw`I|NYN$p?`_0!4M@ zAXF7XDV-11*RY|zmIKCmA22Gp(BBmY^7>T5F(POn?4#9+p+Q~o8s6eaJz<|CU z=5@``-_r&2R7YWuLr1?H6oWcY4|l_mL21G(^ZjZ#M|edyG6Z9j6EH?NWoG6AVU`(~ zq%)(Li}dyQzYDtmxT%EL@NgFW`BRAfchz*UEboBusJMECLcr%lFjam+kuKKDJ2JW-1zoyZ~28M^?@)|MSQsT_UrqQ;Q5Em zd-f&OE61iTuZS}h7?TzzCr5`XxZ&QPbN;D;_4`d*_L(Kill_DmYA$mwzp4RK6vzKP0jK5-+AkI_rDQK;$%=y zIX8U!*6%Fxy5}ET_KB0^z;HF-cueQ6tMO4l|hYt{O%7n z?=eeGmNhps1}P&{s&lm|#~&nl5}z3F>+UY+25jH7qQLi_J3rX`&4HxkYQmaikiaBg zbC~4Gn2FK8p6+r+e(Q1%bdTSC=aV0Qb0Dm`TGrf33IvI!_DMdRj3H~N`C@M1-mRPX zOpjy#_^YS>^zp9K2c%S?wY9CiKH}SN&$kIv9{v@NTJP=crRIx+LU(RkZ+d9{_uTc= z3txP_KRa7mB9pbZx7V9lSXdl8a%4yN@aSl7H`97CmyzG}InzGto~NIG@hkJp?Cjiz zh6ZI*YioPEl3sx>GKJ|WNf&b?BSUv@+q6EFk-zu3mrtA$XXccZl{GXpHjR-AB~_?U zP(LM%bR>mPlRVP_-+Nzr`4y2UqqMAwLPtl(SQE)B6y@E;#f)?oH;WM``9~g#BYFS7 zzU1PXmR?X=NzyY+VBqJ)vW%?K;+#;D%p~E^{kwNZD`@O!=#b0n z8X5vaLxbrrbbs*f{q(nM%jQQOVCI}Z+4JftkvJ!(l<5E?Ew7WyOM-#|L;ZqHVfWtM zJN9nd^vDB@JxqUJJaNiAGbgvKp`%0IUdMEQ>MH{buB zr~mTomnUgJ8S$wp8XnRhZ-|Nwq8b4dcJAG|ZO67vA3pS7%y_czdE%Kre{%A4CW%kc zbfX||BKf#DF1MJ=B^{yOdv|QxvgwhBP251pX#K#1(ytjXL&u7#;3_t!i7uUS}%D&l!MN^o&bcrzk0t1Gbuyk#n!qAXj z9}~~WgYSKgX?c~sgCtIv*tobbw?H*Wei`6jy~b2vE}6uaj7y7z zmKQEDfSdUvai#*vJFgrSgV%j-c}2Y>uODBEvEp6gImA0TROqbO(>xy@+ef!VCJpI3 zotDi3!g>yQ`MtACi%y-oJ8rWYKYK^K24_WwuTN}u|Ll-ndu?93pw-W7^h5I+?KQ1tUhAPDaZU6M%Z#rNX)w$)V@Lnf z^Yd4k3mQl!nbtYQd}sWs2CL|z{?(^?&Ge{Ney&ZA-`F}+hh-J*ZmO|(<=WLN*Os3y zb@f{^=AT1zotgxDE9aOZ$>8jz#f8P?*+8aDYI)J$eVMP5W-i%24$jU+MZLZK{e!bK z)uyMrH0&R4e7WW@)o^llc6WC#?42AR*YKjFd80QpdP9~M?cm_xL?N02`v;fa8)^Xb zP#7N{`Iq}YF{vAEz?hWLML$L+b^T{b z)o3>cK>ISPxRR2O#Dun1Q}UY_nDW(>d?`{U|6?ib(@f?6+w{8j4J-OgDcNDN@4D1v zKiRw54^zLWKc@at|B$Kgx;!3C2Box}WKwF-G(J@EE+$VEP2)!cw>-WJv?-?hrf?&V zVLdfUXX`hclArt;8X9_t7M~9|oES@5emtWh!aNhW+%x6n|FX2S z^gWihD?fqfGgwoTwn#o?Bl&TSa!K*k3?6qRI?zv4Sy{R9+i$;JKHy(zig4d;sRI69 zf44Jg^1U0$?~LTPMe>Ow@dl9my{Mr`zH^KTVfAEXr0u!B4W>{jLl}kJaJTpvjs@{2t`T1Vi3@<_|3~uUqpG_K$#;+B-zS~9 zNSpyA9sv@E0g2;)#Hqlf0DE3yEa&tIp7}N6OdxR#khla$TmU3)01`(4iDQ7of50RW z3yC9v#J51=Um)=_Fu~V4LCjCxZyxyN72;wbaTTz&rxMBUj>H#0;u0Y74v_c{NL&ac z?gSFo0*S+c#Q#7(J19`0P`qsCVK+eB1|{KwJWftc zBl+=>xB?iOEnlpts@_INgm(pc`Nt3k!$^LAB<=wc?*oaOfyDVh;(s9VHIO(UNSqKP z-#!xG09mo=3VMDIFms@#rR8~dj{r6C5sbuFK;kkWaTk!d3`jf%Bz^-Dw*iUsKsHQa zYC+{?(!G_byBZ{g#h(A!9#wSe?&tr)=5=P=P7>U1Ntf*BiaQRvC%9^^5f2i(i8_akRT75G~ zkYmG6&J2u8%?;s;^F7O}YCk0;^e^u(<7bxA_sfmGflT~&fsv6?G*BI;E^{8Xp5jJ| zYfM+v&fS#x8G-2+^G*>K{u8}dZ|CLZeMD~g?IMwACli_Lf`Wq0H8nMFXtmlWCMG6+ z{WH}3OBLq(L)(S*bQ=6tVq)SRA0HokCrA5eCnp=Rvx`lxtDAkko4b9!hl5?Nr-Pl? z)5VERTV`v4K=5TcBggXco$?PG?31rAq|d>b|d-bkbJl(7VzoY+>HZ0J*XvHn(Ad(R#=2-f)tDkbRYM2 zao`Ds!Y>HLJoZyIFwcw6=kK<)vP=wewiru^IkQxj?~mkf!%kXz41MQtbVQHi<9(=9 zR3iC!k^Ic~#%nKOc18vc8w^N3E!3z~sBDlSowp%hkZg<#cE1?l?wH2R)gK!N<{2^T ztF5(7q?hf9;UxNwOVS)sQ5A>ezr$X=9ES%xaeS-?74kA9UonowuEkOIS|p!0lCRrj zLw_%Q8}(hNQnjK?QIFY0`Iwj-gWMp;OTMlS$;`9(q4_}Hy64E{Z|iJ+qKoUdZ;5=$ zSXbbW?KJLPsxmZmlm3A=Y*bbt`L%H}njl5Ya-5-S^10*7FTIHQxw+WW-Gw@RC$^}X zvAjWwqJnfxNC?Jwf6Lh*e?M17*Y(d~aB%S9l$4aOEsmee4|UvsjeOu(nP!76CE=)5 zW?_%21PwYVl5Y^nw~gf6M)GYV`O*Ge8}bE}Z)M`d1nKbpCQ5&5JM2o;aCrb$aJDR@f()&Od^+g&s&gU)0M5 zXrQ%npraUvx@9=r*NA0Vk%&E|h@Dx84Rl>_42kD}EFT~2?&(5xmlm5eDy(jA!GdNP zrYkE^AkD($^l;>cox~`YqiSJl>Q~HnQm@zlf%fE9)&~yu5Jv(%qCdvO)Pq=D*LBNkq>e8wY6~40e=bq0k-2+cR*qS&Za=N8&ah@imbA``D;y$BK?d%xj~5 zw^XCJsRV`c928XYF(oey6L?k_=ef%m;$o4(e50A@Y;DK2IK6kCcpXUG3M5_yifdUY zq32uG5{HU50k)mXr1wCA{q2P`CkTJF=Aedb>S)hK^0_1V-m$W|9*f%Km_d3)%3>5M z@-S7Fj{K@*dj7GPk{f^tNw$QMzQl0rJ?({sg`1eQ#rdptl7+{SMdFa4OSLUVD!nn~ zTsY>cldx1LLTOh9Hgx6SxgH62c9&px2fYvN64bR8VrxeslCPg^mC|!ALs63iMU4e0 zs1>82n)Ft3Nq02zi^Gt36__9({WQnfr#~6W$jJDN!N@KamMP}`=2y+ioRGL2NW2A1 zr1_me^Gnht!HVv3tnHJc+)#&2hI(x6m!XQT)m>6l>Pj$OkxDv+C~oAVxIP|*RZ%Fc zj6_jo1PaSSQCJ#?sS*}Fe;4`=97E#2V653Y6U_IJS@1FzVo&CjAU%a5-z8VBu=EcsTzo5`PDYBZF~` z-bh>xB(4TlYem?k&mq0}*hLt)hn`8VCY5ls5SukANc<5@$me20b_6D*24W)Lm+-I; zMK4U^yI@ix>5e;%iQE%NJRjuPzlRZr-y37bpIPJGY#n0GSni%bBHn?HrMr-LIvC&J zh`BA{SlubabNV9G^;OaOBc(O26#KgJQLm%9r%S`uE+LkcrJy*E@OVDqXbA@sGa~36 z4#p&bA10-EU?R^J6QfRGLfAp%`RqXAIAQ4VZ3YH2sZ^?GSngha*2lk@Ig$1SI+yLm z(3-O-PzGYDN`&ow4cIf(frG<39O&=Bo-PIIHTBq`uEb_lF)C^PojX^K4UJ`3(^Q6~ z&1G27SVG_20veMv@m(E3QQUG#dosk`I3d8Jnqo2LGqPDj7b>=(FiHSX7cj&mD zctu7x85@ZgL(jep6+>F=KR^!#XXRuj&0c%y~v8Z_xiJO8!>C&apC@zP=igZ$Xr$i#zWPj2! z-yz6t(XF0`oaS7bbB)+NHG*T8XK;G{GS1A;;f2eWaGY%Doft;l_yFxg$d0i-9GjXj z?L(No2stUPix+Tg`~vNnW>D5XjXAPWBt8wgMx{;hQ$;6MaVmN1pQe*hXRD)@!^EpH z5;q7X-7VNZGl?x-!zjvY!iIAiB;FdP<&`2XU%s{UOrqav;0!AzsC18#Bv%Z+7Ih z;D#J}@0xMs;stC{jUjP^kT_xZ!W*6#6JLqM3q#_EA@PNfcw}_13OBszfwlD=NPIFB zrYn#*Wk|d`ll}`AX0XRFPWxL8I)-OlN=O!1(R2UZs(vPAuo;gVXJ&oKu8WnHdX3*+ zi+xjL*r}hwz$i5m2MrTNdQ8pk!Ya7|*~x0;3e^~&)`{gc1|*&uHnt3*nD%1{sX8Q1 z6Y|C9O!}GU(%ol3;xrjO0wU9zXLvRicBiDc_@f`fU(6UV&w@ zy+&|#b%@D6| zDYmH;^Y!#D(08Go-aF02Aibl*I61xi-km=`Mf-wL)Dixys8brllX7P~gJXmxrDa=& zhld~hH)_9E%$!@1y^j?Z6m9kM4G%eMjBSR~m``hAlds zvAsiQlquVm((|hp{h|buuKw(bgydAK*4EbN=$r5}cfQMWqO-H}>B2(E)`)PftG!ED z_Gzc^#*?m5+EYGpJ!b-v`#gdLJs$pvS{D{a=^GrIlq^U))gYI@_CM|O_XgmG%e#h4_0IZYJ mu_hDU==gw%@IMTz^`umn;#vc>NoTHi(J|>Ne+N;z7XKSu^X9ey literal 0 HcmV?d00001 diff --git a/.github/NSIS/windows.nsi b/.github/NSIS/windows.nsi new file mode 100644 index 0000000..01ef00e --- /dev/null +++ b/.github/NSIS/windows.nsi @@ -0,0 +1,167 @@ +!define APP_NAME "Kapow!" +!define COMP_NAME "BBVA Innovation Labs" +!define WEB_SITE "https://kapow.readthedocs.io/en/v$%NSIS_VERSION%/" +!define VERSION "$%NSIS_VERSION%.0" +!define COPYRIGHT "BBVA, 2019-2020" +!define DESCRIPTION "Kapow! If you can script it, you can HTTP it." +!define INSTALLER_NAME "$%NSIS_INSTALLER_NAME%" +!define MAIN_APP_EXE "kapow.exe" +!define ICON "kapow.ico" +!define BANNER "kapow.bmp" +!define LICENSE_TXT "../../LICENSE" + +!define INSTALL_DIR "$PROGRAMFILES64\${APP_NAME}" +!define INSTALL_TYPE "SetShellVarContext all" +!define REG_ROOT "HKLM" +!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}" +!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" +!define REG_START_MENU "Start Menu Folder" + +var SM_Folder + +###################################################################### + +VIProductVersion "${VERSION}" +VIAddVersionKey "ProductName" "${APP_NAME}" +VIAddVersionKey "CompanyName" "${COMP_NAME}" +VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" +VIAddVersionKey "FileDescription" "${DESCRIPTION}" +VIAddVersionKey "FileVersion" "${VERSION}" + +###################################################################### + +SetCompressor /SOLID Lzma +Name "${APP_NAME}" +Caption "${APP_NAME}" +OutFile "${INSTALLER_NAME}" +BrandingText "${APP_NAME}" +InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" "" +InstallDir "${INSTALL_DIR}" + +###################################################################### + +!define MUI_ICON "${ICON}" +!define MUI_UNICON "${ICON}" +!define MUI_WELCOMEFINISHPAGE_BITMAP "${BANNER}" +!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${BANNER}" + +###################################################################### + +!include "MUI2.nsh" + +!define MUI_ABORTWARNING +!define MUI_UNABORTWARNING + +!insertmacro MUI_PAGE_WELCOME + +!ifdef LICENSE_TXT +!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}" +!endif + +!insertmacro MUI_PAGE_DIRECTORY + +!ifdef REG_START_MENU +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${APP_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}" +!insertmacro MUI_PAGE_STARTMENU Application $SM_Folder +!endif + +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_CONFIRM + +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +###################################################################### + +Section -MainProgram + ${INSTALL_TYPE} + + SetOverwrite ifnewer + SetOutPath "$INSTDIR" + File /r "install_dir\\" + + ; Add the installation folder to the system PATH -> to enable grr.exe + ExecWait '$INSTDIR\PathEd.exe add "$INSTDIR"' ; put the path in quotes because of possible spaces + +SectionEnd + +###################################################################### + +Section -Icons_Reg +SetOutPath "$INSTDIR" +WriteUninstaller "$INSTDIR\uninstall.exe" + +!ifdef REG_START_MENU +!insertmacro MUI_STARTMENU_WRITE_BEGIN Application +CreateDirectory "$SMPROGRAMS\$SM_Folder" +CreateShortCut "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" + +!ifdef WEB_SITE +WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME} Documentation.lnk" "$INSTDIR\${APP_NAME} website.url" +!endif +!insertmacro MUI_STARTMENU_WRITE_END +!endif + +!ifndef REG_START_MENU +CreateDirectory "$SMPROGRAMS\${APP_NAME}" +CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" + +!ifdef WEB_SITE +WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} Documentation.lnk" "$INSTDIR\${APP_NAME} website.url" +!endif +!endif + +WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}" + +!ifdef WEB_SITE +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}" +!endif +SectionEnd + +###################################################################### + +Section Uninstall +${INSTALL_TYPE} + +ExecWait '$INSTDIR\PathEd.exe remove "$INSTDIR"' + +RmDir /r "$INSTDIR" + +!ifdef REG_START_MENU +!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder +Delete "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" +!ifdef WEB_SITE +Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME} Documentation.lnk" +!endif + +RmDir "$SMPROGRAMS\$SM_Folder" +!endif + +!ifndef REG_START_MENU +Delete "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk" +!ifdef WEB_SITE +Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME} Documentation.lnk" +!endif + +RmDir "$SMPROGRAMS\${APP_NAME}" +!endif + +DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}" +DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}" +SectionEnd diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 860537e..cfd747b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,3 +41,62 @@ jobs: args: release --rm-dist ${{ steps.release-notes.outputs.ARGS }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Archive binaries as artifacts + uses: actions/upload-artifact@v2 + with: + name: binaries + path: | + dist/* + + wininstaller: + runs-on: ubuntu-20.04 + needs: build + strategy: + matrix: + binary: ["kapow_windows_386", "kapow_windows_amd64"] + steps: + - uses: actions/checkout@v2 + - name: Download a single artifact + uses: actions/download-artifact@v2 + with: + name: binaries + - name: Install NSIS + run: | + sudo apt-get update -y + DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --no-install-recommends -y nsis nsis-doc nsis-pluginapi + - name: Prepare NSIS files + run: | + mkdir .github/NSIS/install_dir + cp -p ${{ matrix.binary }}/kapow.exe .github/NSIS/install_dir/ + wget https://github.com/awaescher/PathEd/releases/download/1.0/PathEd.zip + unzip PathEd.zip -d .github/NSIS/install_dir/ + - name: Set variables for the build + id: set-vars + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + release="${GITHUB_REF#refs/tags/}" + upload_url=$(curl -s -u "$GITHUB_TOKEN" https://api.github.com/repos/nilp0inter/kapow/releases \ + | jq -r '.[] | if .tag_name == "'$release'" then . else empty end | .upload_url' \ + | tail -n1) + echo ::set-output name=upload_url::$upload_url + echo ::set-output name=nsis_version::${release#v} + unversioned_binary=${{ matrix.binary }}_setup.exe + echo ::set-output name=nsis_installer_name::${unversioned_binary//kapow_/kapow_${release#v}_} + - name: Create Windows installer + uses: joncloud/makensis-action@v3.4 + env: + NSIS_VERSION: ${{ steps.set-vars.outputs.nsis_version }} + NSIS_INSTALLER_NAME: ${{ steps.set-vars.outputs.nsis_installer_name }} + with: + script-file: .github/NSIS/windows.nsi + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.set-vars.outputs.upload_url }} + asset_path: .github/NSIS/${{ steps.set-vars.outputs.nsis_installer_name }} + asset_name: ${{ steps.set-vars.outputs.nsis_installer_name }} + asset_content_type: application/octet-stream diff --git a/.goreleaser.yml b/.goreleaser.yml index ac7d7e2..f472aa1 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -55,5 +55,5 @@ dockers: - "bbvalabsci/kapow:v{{ .Major }}" release: - draft: true + draft: false prerelease: auto diff --git a/docs/source/the_project/install_and_configure.rst b/docs/source/the_project/install_and_configure.rst index 04abaf3..5e5b5c5 100644 --- a/docs/source/the_project/install_and_configure.rst +++ b/docs/source/the_project/install_and_configure.rst @@ -40,9 +40,12 @@ Install the downloaded binary using the following command as a privileged user. Windows® ++++++++ -Unzip the downloaded zipfile and move `kapow.exe` to a directory of your choice; -then update the system :envvar:`PATH` variable to include that directory. -Note that the zipfile also includes the LICENSE. +Native windows installers are provided for both 32 and 64 bit versions. + +Alternatively, you can download the provided zipfile, expand it, and move +`kapow.exe` to a directory of your choice; then update the system :envvar:`PATH` +variable to include that directory. Note that the zipfile also includes the +LICENSE. Install the package with ``go get``