From c8a48e43832855b28a91c068a6780ae9ce9d7161 Mon Sep 17 00:00:00 2001 From: neodiX Date: Tue, 24 Dec 2024 10:40:26 +0400 Subject: [PATCH] add github workflow for appimages creation --- .../build-ton-linux-x86-64-appimage.yml | 51 ++++++++++++++++++ assembly/appimage/AppRun | 3 ++ assembly/appimage/create-appimages.sh | 35 ++++++++++++ assembly/appimage/ton.png | Bin 0 -> 5571 bytes 4 files changed, 89 insertions(+) create mode 100644 .github/workflows/build-ton-linux-x86-64-appimage.yml create mode 100644 assembly/appimage/AppRun create mode 100644 assembly/appimage/create-appimages.sh create mode 100644 assembly/appimage/ton.png diff --git a/.github/workflows/build-ton-linux-x86-64-appimage.yml b/.github/workflows/build-ton-linux-x86-64-appimage.yml new file mode 100644 index 00000000..46e74cc1 --- /dev/null +++ b/.github/workflows/build-ton-linux-x86-64-appimage.yml @@ -0,0 +1,51 @@ +name: Ubuntu TON build (AppImages, x86-64) + +on: [push,workflow_dispatch,workflow_call] + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] + runs-on: ${{ matrix.os }} + + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Install system libraries + run: | + sudo apt update + sudo apt install -y build-essential git cmake ninja-build libc++-dev libc++abi-dev + sudo apt remove libgsl-dev + + - if: matrix.os != 'ubuntu-24.04' + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh 16 all + + - name: Build TON + run: | + git submodule sync --recursive + git submodule update + cp assembly/native/build-ubuntu-shared.sh . + chmod +x build-ubuntu-shared.sh + ./build-ubuntu-shared.sh -t -a + + - name: Make AppImages + run: | + cp assembly/appimage/create-appimages.sh . + cp assembly/appimage/AppRun . + cp assembly/appimage/ton.png . + chmod +x create-appimages.sh + ./create-appimages.sh + + - name: Upload artifacts + uses: actions/upload-artifact@master + with: + name: ton-appimages-${{ matrix.os }} + path: appimages/artifacts diff --git a/assembly/appimage/AppRun b/assembly/appimage/AppRun new file mode 100644 index 00000000..df760c76 --- /dev/null +++ b/assembly/appimage/AppRun @@ -0,0 +1,3 @@ +#!/bin/bash +export PATH=$PATH:$(dirname "$0")/usr/bin +cd "$(dirname $APPIMAGE)" & exec app "$@" diff --git a/assembly/appimage/create-appimages.sh b/assembly/appimage/create-appimages.sh new file mode 100644 index 00000000..7ada084a --- /dev/null +++ b/assembly/appimage/create-appimages.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +if [ ! -d "artifacts" ]; then + echo "No artifacts found." + exit 2 +fi + +rm -rf appimages + +mkdir -p appimages/artifacts + +wget -nc https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage +chmod +x ./appimagetool-x86_64.AppImage + +cd appimages +for file in ../artifacts/*; do + if [[ -f "$file" && "$file" != *.so ]]; then + appName=$(basename "$file") + echo $appName + # prepare AppDir + mkdir -p $appName.AppDir/usr/{bin,lib} + cp ../AppRun $appName.AppDir/AppRun + sed -i "s/app/$appName/g" $appName.AppDir/AppRun + chmod +x ./$appName.AppDir/AppRun + printf '[Desktop Entry]\nName='$appName'\nExec='$appName'\nIcon='$appName'\nType=Application\nCategories=Utility;\n' > $appName.AppDir/$appName.desktop + cp ../ton.png $appName.AppDir/$appName.png + cp $file $appName.AppDir/usr/bin/ + chmod +x ./$appName.AppDir/usr/bin/$appName + # create AppImage + ./../appimagetool-x86_64.AppImage $appName.AppDir + mv $appName-x86_64.AppImage artifacts/$appName + fi +done + +cp -r ../artifacts/{smartcont,lib} artifacts/ diff --git a/assembly/appimage/ton.png b/assembly/appimage/ton.png new file mode 100644 index 0000000000000000000000000000000000000000..2a25c863dbab04619e4ff51dd67612439d84f6f7 GIT binary patch literal 5571 zcmV;!6+G&RP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA6h5>%>9^eF z{EAB5>y)Iood3J`o_p>&ny%{}#0I+Jsh3a1{_~Ug>7lSE5%cIN@_$gGc|F1Kf>7*x zw};NB$kL6cj+A#D-Iwj}5$bKIKUclYepmum8chzMV@;N`hYUF9-+}05d;t zA6nAdM>;&Qe`V>~c}1jy(18M=qI}oYUI)MLg;VPH^fgW=9V9m>fSlC4*l{T?!^5cw zYweFzlMXTw6u<=DZ%f>LpqF%HNz+~8V3cC=A{#{M~)4UjvDM(QnF=Hm~<3I zX#t$>8D98m59z4N@%t+lSNTatJrosyw*4w;A=l8iskmrXO8~3h?mc`lK{`k_meu%= zuB{*)1yDr*T63>w1WlhBUqIhdPTEotf8!Nw5EN3v1gaT;mPtMwlrf)r`AFQ~kTsD7^R08N3N>;pprf)B88!Bf?6q+iJ z0MN7PB+~dyWe|Y&{1uO;kq+V*hUq+Z18ED3*aFa6qMpPc=^(BU4D0nJq%9z#dbnCY zkEiE6X#K8}h#4>9;JG;IiiVIQ0M2=MM9dkHU;>!4xBEi>2&8u&%B5ls#Q~>zlmk&OtL)=Y)PIZr<^-GEIT0iUJ&XvK}2oP-Q z7#6`Rg@6fYdSWX_`(+#n06+Zdz|VAumnjfhzf$n?y15VlTEBvD^3q)vKs1p;>sJ=z z)%PY`o`Jh5fcGyBm$Y<}4x%LGEggq043Ul-xV8vh^>)wUix}U7q^YY7ytBrgG(_$Q zpsJ;_D}lSb$T$^2Z&$qwyTvX{fo|N}ht`iwqC1hAvB!nP^iGceCA+$!!%5OXkckur zd;<-Yq~i#VjsTS{ooM|?9t`uSdcje@h;t)AMN3DI+deNu2+I6=Z=*xu5)O?3bq9LT z`VmU{MzrOv4izqOLI6j;h#zW0k0-*w(e~kY&pWX{VEYtkAdxD?-7W;gKz&uQ&6U7y z7XU^&AcbIe+^Eg+LhDBg!)_C@Q2^TZE2M=W1z@Wo*(HEc;bQhe#1b_7#sOOdP}Gc7 zDiDhaH{0S$v0eZtdq##vaJv_=nD|KQM7Q>> z(3(0(3qfqdS~Igu0B@a(dz_7|MifQY51g|sO2V==08V}oC$VZVV9f}C){i)hRVHVF z04iE=>W{cUWs3zGus{G9=#RKUcY-tup-=(fkS{fgbl0)Z#1_|5}Q=mkQG!TRz5`(0{0{o=2{?o~ z;pQ;uBiH!p$ymdO1JV?)q8tRM1aK*utl1-WuB-T#>W~lpSF|LOdT2+7(5d|{ZLFG6 zY(BxE5`e&;|3pfEY6fW|>}bzi_Jr7d<$ORh2$%~XKI{qa5>fzGots7k{Q|}tt3!U1 zQOsQ2B3l2~s(onv7GgZi#g#tN5r?8?^RqJMBY<$~*SA$0S4}#Ib)-_d&sZ1;h3R+D zWCYN5I#jF7DpFg~`t8E&)spGQD-xy#Y&Hc-id5XLdvleBp-Oh*)wEL&RgjJlm>FBCi|jo3`;F^8&H zTf#4{@B@|-E zr?IUc36lB8xO%AnNBhYYkAvYYtk>yi_Kl=Re-io_#c`H2FD-4jwTN`Ck!1uB#`-;; z4GSmV4-JNGrC*z0OD7R<>_1i}{kX0F`O~G?fsz{*#uwE1VLxeIhuBk~-OEZzi<?)U=Kw5$z{?Kir(uE$_p=g z?Y|-KAe}rSg$D_)kxBuxY50Y=AMr;$AMh6R$MGNm0rn^s?(HNkks;P|5L#!L2SQE2 z$l;0*X{by&G^GD@zraK2;V;Pc1rflScLfdsO6b7&wyw>1nAp=@4|xcV9#^n|RR?=B zjj{QI*fEmYbHLTuv)?QxEhTy8FQB(Cd{8a9e(~1;8NA+MP?nA-Z&x}v;;B0zw=Yx5 z99ab5@dS4Q1DT?YitdXIf^NKLNGk7HS^$Hx)P?%@L;aYmbUq z#n9XIO89&v6u_v98sZW?w?T;rxeFUXac_d}eC0w$0T^#s-GV1SxA78Ptvj80CsDi^-Aj?-gjom`yaoHk)C`6fD=3^_r+j0 zCFq$iN}m4hp!dv>%(Gs2*p^V0K+OT)j?{4?Cx;?lPeR@iV3Yw+q?2T2CtV?0;QRq}Be%UO zOr5wwP(lD_pr==Vdw)4;3Cr>CKyIOEhn)MqQ&Bj+7a3%3Uqx+8upVFWdvZ{Dl|YyIpp06oQgsMF!=b&bxHB45p)m$e*UF* zeNIFz0es`l9@1iEM6_@K&;>VtCi$k&RMZlH!R$SdiID!JVCThP7rf;|Nlu5;qnrS~ zhypkM>S~4Y2(1KNYROKuCO;XJ6MzBiZ0kE~gxM1~1iI9yoN@6cs3-vN+16;I07nI2 zdA`88B}GR`0YH5n5x)TbK|r3bbXG~PqL!fOZ5w=W5praVbC)RW^1xXoB|u#PEPET8 ze7CP_&MhP?}ll-vED05tIHhhO99!|_jF z4U-lNN=1EU<(5#)`~5p4PX%QP%q9AxuX9ve>BoOoLRw6y6!n>v@7)>pJ|KH8G#Y;R zYsf;76PGAPeS*1vUdTH=BFWM3Lip$ZQ_B^2FDP%Md{jrERi@&6E`=NOw zmXq?F*Zm_QspHX^uM6=9fbL zT%=jrO#cAZ&rNTGq)or&TawoWV&Z>59+Hy}IhsfD%zEZOck|0={S#>Z)->aP(*lTq zW5Of_79+4}VTiPBX5#|LA3D{C^PdS6jZXa0^s}L9I(tI>-OI{I%Vu7>oB0o6*iSA{ z0NL?2K~}@tmw;k&SZMl7=0A}Zv+`j-xfl}wucw^c<7$j~&aib6Br21MM{i^P6EHE$ z4l#HlfP;0o4xY>nyCJJaSUPe_jY(NCCdXDX%E)n_WTg*iw zVCl#ySwfNOw!{PHrSOi*vVEiO^OubsOGU7seP089YX2`vlS zvMC1mwdbSg`ZQr&0A&~tkrhy#(2++W>DlrC_=UA&3~p@Y5- zslxm)>^}~0TPa1`rU^!lQy>Naeii-kf(}eVejMbsQWktzEWrFK;B3eX;Gs;!90~`o&Eplf0a)24X_lD( zECOg?KXRcOL!8B!q3e@|@7|gv4>V4JfN0P2Gzg&U6H4|6_sIhlq=n={^NjFOEf3ee zG@N=cyGdskz?UmAHrkxP4)@R6CP29y6=Xqqc9X`TvmpNMxXVk=kisQ?Eg`1>I4OU^ zIsfpno6g4vj$qIm6?u#qM}R^JZFepDVBc8`doGlG0=T;dR|4iFTq?ATVLz1IH6x!H z=M%ttYta`(h4Z$E$=>Ms=-zy0Y&HcN&7qE%plQhh#H?n@gTt^Xr1A$u!@Vbmu* zSLiZ4Pzhj0v7;5>gvMT%C`Nr!Go3ES5A6dz|1hou=+Ly3CHb(XfIDCGTv$)Lg+(iX z*=6|cp~Yu|lm1W96z+V{Gpm#~h=IYZFK@z?04=w^VzH<4M$Gh2O~)e)vlRvb+z`Q) z04*nat=y|B-ib$E7^n&}ST)?Nw?UY{ z?2A0JycTGX@C6pSMCs96{y-2(A-F$KC_%N9$d>&rV6exr7 zQb`Lj<7!+tOnkvqk_0 z`&VLlNyH%z)>&q3mI+|(ypTt;?6)CEPBd-x9Ls8%T4}QSRy;S1*p9xHD%}Gm7JsvG zF@V^L!;F?~&CeWoi&)D(}>lM(i(BYP$domd_5ZuEk<|2m@3_D0T{HeFSX<}Cn6JuNnG0C!kH=;1Ypov zU%hs=Nez2M9ah%{43i)oXK{KBa6KPf9A5S|mVH*8L#xYH&bI7?7b|WGz#y7Pm9${> zD|P9wuPULbXKfoU3m^l=POAwIp<-@|Zw!o?QxHyGIu`;kKn*AbKd+k?0T>t$CB)I? zAhr)^#U+pFxL@rLOE5Esdudqn&1dsuj#qz=DESFOO7-&tM9v#c1 zNP*_%Hfb8a0x)>5ZD_>-EEFd;Z>%W0Z@z2$T&8d>fDAYt5*PlRdjhy!jE7i>aYLdp zEu`^p{RRSz0At`#APPd5eg=^o@5W=DUxsIkxn^!zKp^Wk5NQM$1M4XAh+#>OiI)mZ zNC6leIv=llx1V$nw>h$=6kMy_T|^Z?2CXIPNeq$>;tGMV-cUl?0wT5mGT@BJ9mJgT zOhN_$WI!L0lZds_&4WAwFu?O=4$xCyJx!vV22u$iLtFpIti2ddYCWgdmEXi!EN9_J zD1Z!?qscGr=^`DZFfMPZx*;OxSq*6gkRg@w_;%ph08Zl3=>e%vDM>DXF|?h%o@9b_ z5L0{seM>oMON}Z5$gp&O_s=ekkPecKyJq-5y4U(@q}-yG0LDO{=~SfgY%-y!05Y8I zOWpLc>Tc6B4_C}Dv%eAxuP7~mF@Ab7zVQRKB8!@r6gMo2kdDHj048v(E%EIGy`&=} z2kS~#J5qW`6i@&;nYp{8Jto7$nHkaAHo22~nSW3KR8;J`+A~brLSW45d+o0=Dgh_} zW`5p2w4{~CTowCQmad(L(;GHW0EIF%lG^-1-z(=mo}`0ggxCMjT&?-rWf4DSlPm}n zfL(OPlKajkp8oydiFhP^YKJw+m*({ZBe#SGzkg@sujd4BEb)%EYSb} literal 0 HcmV?d00001