From 13af4b2ed131cf4a54f1c8aff6bf2307e8052c58 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Sat, 5 Dec 2020 19:25:12 +0800 Subject: [PATCH] CI on Linux and Win (#1582) --- .github/workflows/ci-linux.yml | 127 +++++++++++++++++++++++++++ .github/workflows/ci-win.yml | 12 ++- libs/vtextedit | 2 +- src/core/configmgr.cpp | 3 +- src/data/core/logo/128x128/vnote.png | Bin 0 -> 2424 bytes src/data/core/logo/16x16/vnote.png | Bin 0 -> 495 bytes src/data/core/logo/256x256/vnote.png | Bin 0 -> 4708 bytes src/data/core/logo/32x32/vnote.png | Bin 0 -> 805 bytes src/data/core/logo/48x48/vnote.png | Bin 0 -> 1083 bytes src/data/core/logo/64x64/vnote.png | Bin 0 -> 1362 bytes src/data/core/vnote.desktop | 13 +++ src/src.pro | 52 ++++++++++- tests/common.pri | 2 + 13 files changed, 204 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/ci-linux.yml create mode 100644 src/data/core/logo/128x128/vnote.png create mode 100644 src/data/core/logo/16x16/vnote.png create mode 100644 src/data/core/logo/256x256/vnote.png create mode 100644 src/data/core/logo/32x32/vnote.png create mode 100644 src/data/core/logo/48x48/vnote.png create mode 100644 src/data/core/logo/64x64/vnote.png create mode 100644 src/data/core/vnote.desktop diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml new file mode 100644 index 00000000..bf57de97 --- /dev/null +++ b/.github/workflows/ci-linux.yml @@ -0,0 +1,127 @@ +name: CI-Linux + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab. + workflow_dispatch: + +env: + VNOTE_VER: 3.0.0 + +jobs: + build-linux: + name: Build On Ubuntu + runs-on: ubuntu-latest + timeout-minutes: 120 + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE. + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: Init Submodules + shell: bash + run: | + auth_header="$(git config --local --get http.https://github.com/.extraheader)" + git submodule sync --recursive + git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 + + - name: Install linuxdeploy + uses: miurahr/install-linuxdeploy-action@v1 + with: + plugins: qt appimage + + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx-qt5-dev tree + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: 5.12.10 + target: desktop + arch: ${{matrix.config.arch}} + modules: qtwebchannel qtwebengine qtsvg qtlocation qttools qttranslations + tools: tools_openssl_x64,1.1.1-4,qt.tools.openssl.gcc_64 + + - name: Create Build Dir + shell: bash + run: mkdir build + working-directory: ${{runner.workspace}} + + - name: Compile qt5ct + shell: bash + run: | + wget -c https://excellmedia.dl.sourceforge.net/project/qt5ct/qt5ct-1.1.tar.bz2 + tar xf qt5ct-1.*.tar.bz2 + cd qt5ct-1.*/ + QT_SELECT=5 qmake + make -j$(nproc) && sudo make install + working-directory: ${{runner.workspace}}/build + + - name: Configure Project + shell: bash + run: | + qmake -v + cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ./ + sudo chmod +rwx ./libfcitxplatforminputcontextplugin.so + cp ./libfcitxplatforminputcontextplugin.so $Qt5_Dir/plugins/platforminputcontexts + qmake CONFIG+=release -spec linux-g++-64 ${GITHUB_WORKSPACE}/vnote.pro + working-directory: ${{runner.workspace}}/build + + - name: Build Project + shell: bash + run: make -j$(nproc) + working-directory: ${{runner.workspace}}/build + + - name: Install Project + shell: bash + run: | + mkdir AppDir + make install INSTALL_ROOT=${{runner.workspace}}/build/AppDir + tree AppDir + working-directory: ${{runner.workspace}}/build + + - name: Package Project + shell: bash + run: | + # Move the lib out to avoid duplication + mv AppDir/usr/lib ./ + LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH + # copy translations + mkdir -p AppDir/usr/translations + cp $Qt5_Dir/translations/qt_zh_CN.qm AppDir/usr/translations + # package qt5ct (EXTRA_QT_PLUGINS seems not work) + # EXTRA_QT_PLUGINS="platformthemes/libqt5ct.so;styles/libqt5ct-style.so" + mkdir -p AppDir/usr/plugins/platformthemes + mkdir -p AppDir/usr/plugins/styles + cp $Qt5_Dir/plugins/platformthemes/* AppDir/usr/plugins/platformthemes/ + cp $Qt5_Dir/plugins/styles/* AppDir/usr/plugins/styles/ + # package libssl.so and libcrypto.so + Qt5_Tools=$Qt5_Dir/../../Tools + linuxdeploy-x86_64.AppImage --appdir ./AppDir --plugin qt --output appimage -l $Qt5_Tools/OpenSSL/binary/lib/libcrypto.so.1.1 -l $Qt5_Tools/OpenSSL/binary/lib/libssl.so.1.1 + mv VNote*.AppImage vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage + cp vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage vnote-linux-x64.AppImage + tree AppDir + working-directory: ${{runner.workspace}}/build + + - name: Archive Artifacts + uses: actions/upload-artifact@v2 + with: + name: vnote-linux-x64_v${{env.VNOTE_VER}} + path: ${{runner.workspace}}/build/vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage + + - name: Update Continuous Build Release + if: github.ref == 'refs/heads/master' + uses: johnwbyrd/update-release@v1.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + files: ${{runner.workspace}}/build/vnote-linux-x64.AppImage + release: Continuous Build + tag: continuous-build diff --git a/.github/workflows/ci-win.yml b/.github/workflows/ci-win.yml index c7870342..294a5118 100644 --- a/.github/workflows/ci-win.yml +++ b/.github/workflows/ci-win.yml @@ -81,7 +81,7 @@ jobs: windeployqt.exe --dir "%DISTRIB_PATH%" .\src\release\vnote.exe copy .\src\release\vnote.exe "%DISTRIB_PATH%\vnote.exe" copy .\src\release\extra.rcc "%DISTRIB_PATH%\extra.rcc" - copy .\libs\vtextedit\src\libs\syntax-highlighting\release\KSyntaxHighlighting.dll "%DISTRIB_PATH%\KSyntaxHighlighting.dll" + copy .\libs\vtextedit\src\libs\syntax-highlighting\release\VSyntaxHighlighting.dll "%DISTRIB_PATH%\VSyntaxHighlighting.dll" copy .\libs\vtextedit\src\editor\release\VTextEdit.dll "%DISTRIB_PATH%\VTextEdit.dll" rem set qt_dir=%Qt5_Dir:/=\% rem for %%I in ("%qt_dir%\..\..") do set "qt_topdir=%%~fI" @@ -92,6 +92,7 @@ jobs: copy "%GITHUB_WORKSPACE%\COPYING.LESSER" "%DISTRIB_PATH%\COPYING.LESSER" echo %GITHUB_SHA% > "%DISTRIB_PATH%\commit" del /F /Q "%DISTRIB_PATH%\translations\qt_*.qm" + 7z a vnote-win-${{matrix.config.platform}}.zip "%DISTRIB_PATH%" working-directory: ${{runner.workspace}}/build env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote @@ -103,3 +104,12 @@ jobs: path: ${{env.DISTRIB_PATH}} env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote + + - name: Update Continuous Build Release + if: github.ref == 'refs/heads/master' + uses: johnwbyrd/update-release@v1.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + files: ${{runner.workspace}}/build/vnote-win-${{matrix.config.platform}}.zip + release: Continuous Build + tag: continuous-build diff --git a/libs/vtextedit b/libs/vtextedit index 1dacef91..00aa03be 160000 --- a/libs/vtextedit +++ b/libs/vtextedit @@ -1 +1 @@ -Subproject commit 1dacef91657e44b110218a377a27a10bfd762616 +Subproject commit 00aa03be1fee3bd661e88d0250af8a3db33c73b3 diff --git a/src/core/configmgr.cpp b/src/core/configmgr.cpp index 48cfcbe3..09a0da15 100644 --- a/src/core/configmgr.cpp +++ b/src/core/configmgr.cpp @@ -158,7 +158,8 @@ void ConfigMgr::checkAppConfig() // Load extra data. splash->showMessage("Loading extra resource data"); - const QString extraRcc(QStringLiteral("extra.rcc")); + const QString extraRcc(PathUtils::concatenateFilePath(QCoreApplication::applicationDirPath(), + QStringLiteral("vnote_extra.rcc"))); bool ret = QResource::registerResource(extraRcc); if (!ret) { Exception::throwOne(Exception::Type::FailToReadFile, diff --git a/src/data/core/logo/128x128/vnote.png b/src/data/core/logo/128x128/vnote.png new file mode 100644 index 0000000000000000000000000000000000000000..b6043d32d0e212f6f277a47082f71d76a7fc230d GIT binary patch literal 2424 zcmZ8jc{J1w7ykXmHiof|?0cceG8OU;#yUe}jfo<=tVv2DgDGQAh@`RaSxRLcdKrxf zS;}rmMV9Qw5?;OUU*C7`dG2%Wea^Z6-Sa##<`*$=m=FvA0JsrW-|~p@e*k4Z>TOz1 zT}LG0g0(aSfDoCZJpllA|LAi75TpzM^Va}CBLe{VZ)7!CppFDa4;@n-0C<@gx@VDc zG=qVb7+s*UN95$4TC?yuXu$TwDx#_#n`jyK+0KBN-rKXi{Y zj;zzx!)EuI1CL1%xOAbCM~zsOQ@4m+E{e{r`3o%jO6{5lz!GX))lf(@FlnbMT9#Qs z7V01cLHNS;M%QdncVU(F_Lnw&Z#NGv(UFtbxL3^p-gB#H5h}tp1BXZ)djQD+piF2v zKo{hK;mrX8M50*_P>P7T>pj9=GT*sCGw;e_)Qn5-w?7H^8yXO|!Us3~CbA4=Nsw6#qq!ORlOBoEOWe{r5d@sr1-vgud`q*nsycs zsn+QI=KpT%pMx{#&ls&>0K9iNoO>vU}Qdv3HBqGZ^+WIunkWn-IZ%sNmYeE6}nX6E?^d8Zss;FUO+)NavD z65@3TtVK5ETg&fX`Ln4*)Vo&W_#Zjmv2Gx@d@X(&!Dw|wU4^Hq#e<(oVuoD^$q+zN zV`wp}6D>^APME0Z?oi&QZ)X8F6Rq>|%P%zSFLAe_G{mz74$g!s`&N>qap%@`5Nc}9 zHL6190EbkOg|mY{VX%%>tR5#-pAvQ`wZT>=q_t{=XwvrOX!iC(CvO>mbsyMKc{^b2 zGmnw4>srsA$7fXkJw&cWT^EYY6kcgtwSm3khRv7th2-irkmm>=+As~9S?QBc33por z0^8`0*e2l<71WJj7N%>_VxQgXaIMeXr-r2SR~v4pkGTZ29$&ofZ8)=2V~c?s637_FdR;QDTq^X(|GI`_t@)RFHufJGw3m7E`hz9 zQ<=vqyZpSH8VeKsLw!tUv$pKyi3tZnlWnLY7ThrGerhG>=auS5)0Qw_C<#u_9xBn% ztM>X4s%O>xT69MaWrG2S&oQthxI?dcGZRW)iQ@>LrtbGsarf#V{^|EIvY)uWh-ly| zNn(0dXQxXWW77s^C7nD8xAxjHUG^GH9aT7{!jp1%2%AWX9v$eOniAfoa{jHI$2M5dHzyYn$TMNp?o}n zc&n_NEbX#l*Khr^_jTzh%fO+W>2X0E-vAVS<>N;r?t5N=vr;IB*KWKG^^?3x#~{(vRZZh=!J`T(0A?GPF)m9_tVC$|L|z1jP8@w zipQfH{o_&(vO;`2%qCX+!v^yJ6IEEjXsM6`mvGW7kL(3;M<21|CPgb66Gd40Ie=t; zA&L07vok0Be$|DA7I~>A{>0sb?QTQzlfUhcbjpg|FivU0fidtg#xYxxot1r1J|v+a z$<{V?W`+LZ%e@RNqN{gK^M7mWa;_ihU$UR- z&aeSmS#b7li#@#ZF=|5{54;R=jXQT0!cyd5@AL#J_!0Nf4i)Ro1mcQjW+OATCp)Uv z#S07_!_jAu@`4l-G~bl$CqXQiYlGmo{AMdlNPHI zc_hL4+$(7!Usq}UWb(IFA&>|iZ@#?~M0d7gc}W~}XivnwR9I|Ic3VK;jW7{A`7_lu zrIU#hvJ8`1w*>s88p|N*RUIBsgZ3LvE)$3Qi&2_17ndNu zP{A(fl+Uc&3vIiT6AsqkNafS3O|LaMn-dF30&9MklXGvrq!6cf<)qfwTYm`)TF3#M z)#dfv;%Qy!t_h+@#CNKF^^0n>I7nm?7pD8@R35B66zt32Xyx?awr^~VDHP98K$mAifJW z?Q}{qGPzIHZ=6}QVhNV^<@)_we8A!KYUFhZ3a^NkzAZgElWVws1N_&ioyW;VfE+LY z#eWc^TX~Ct+b4UyLr_$$0O8p;KR4GEpB6SQrrIdLKf9;#=A1e!9~P50$|X{lq{8=K gh&W0T>RsW$mBG!KoWB0#qr3wc8C=w_)V&t@55k^dQ~&?~ literal 0 HcmV?d00001 diff --git a/src/data/core/logo/16x16/vnote.png b/src/data/core/logo/16x16/vnote.png new file mode 100644 index 0000000000000000000000000000000000000000..b219e37a1186c6520565b6a470aede313ec55c84 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3dtTpz6=aiY77hwEes65fIXajvtYur#PlEk z>xIIYb5cbl9+mP)KKaQakoWKZ{KSdn28S2-1g#NUAhAGE=g@`&+A|j3yTz&Z?e+Wk zww2HQjqX(bpSFQ9J1;Kv$ItKl&Kq`_F{^WHNB9IsOiApkRyaKU{(cVW5C4vrx2-MD zH~g@1qw$Yb83rFVY&2ZM+mV!znwE6p-rkuT7!@{rxy5QAyLRb$gWI+YZoH-!}dCVdMEq-@Qga64G+H^VrDy5FD)T4^W*OC h;ui9E(-(*VqiscUO?}}hV2m*^c)I$ztaD0e0stN=#9sga literal 0 HcmV?d00001 diff --git a/src/data/core/logo/256x256/vnote.png b/src/data/core/logo/256x256/vnote.png new file mode 100644 index 0000000000000000000000000000000000000000..b2562f4b7dd5e37bc7eaecf7afa5362e0943099e GIT binary patch literal 4708 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 literal 0 HcmV?d00001 diff --git a/src/data/core/logo/64x64/vnote.png b/src/data/core/logo/64x64/vnote.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5f4f3da8129dce583f4dd817ea8c4561e2b663 GIT binary patch literal 1362 zcmV-Y1+DstP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00004XF*Lt006O$eEU(800001 zb5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m_e01m_fl`9S#000E3 zNklQr!RD3_mjLnsG`h^0Y&z#F^AR;B>KEf? z=A%S}%n!y7fQku%LB_Na9Uwu7GABA1A{8pz!n#rG*p|7iV~?)w?e&}zOdvhCrO&hV z{+cFj|L30E^SkHwf8AR^g$fn148iA!&9yoRns>?2Bo5EM4K?p?3uX$@=LoG>4OxDT z(+gOQ5A^%+hQ2S*2{b-O$nFHL_poHYIheyWvF-y@0%Dy2aYn6X)0?T#3NK&rU79}V z26o`Z?atUCAP%XJ1pSo|DFY*^G|Ybz!xE6^sXjm@V465VfxI4Do`*QC)~ns+cH>CT z1q@7#&rAYj@|qJDk5BI}V~#o9-;1JM+h(o=wj0~<@gFCd_NBUcd`O_Kcr7w@DPC=7 z`Y&P2=@XD-cR(lf%FzSJNJ_>7i?jIl0oA#M-VM3H{Mm`9`}s&Q!dx9vUJS*ph=Y4qTa=gBB z)iu98l~X{Hpe{Jw5?`rssAZ5z;{47B%e`v-q0D7C(QD<4fc;(Viuzo;=uX_0IM=Va zW{Ee!P*$ZVn*-){z6h|pT==Hb#GagZ@~Z3=e$BOYeJS$iFHj7zHHvNd8|*Dni-?nl=P9od46~4_K(UD+lpf5$TC@&_MEht)O9+!&Unm(K~iI zBK?4n5nve|L5sDAY1feov1Cb>XYmVWCo;#q)pFDmSt5myw#0nPpup4jV`h3?9jI?@ zK_n4U0t}==oRVBjJKX_4S|$4l)CV}dI5t{VS2i_b z*glC!BjjD--KH~&_Tuz~7`kquG~AuMWJNR(ass|LcPd`VRSPpbG5#uOv*V*vzam-) zIRVrMC}nT7LZnqB#Xn=Cc$TEP(L`8ojO;l3yP`cWHO-UcP^U*bOVLDFZjH6}{*8^l z9V4Z1KBM^|qPF=5{CLrfXd`U*2Hz$L4Sn+t_4xpm0F?lh0F?lhfa!|~NY0^PCI}!8 zklz6W3m@wjT2WhXi!1@Mwh6WG8C41J2$v{?p8$=!3|~E>} zP+!Lx1M~q3A;u*T79SvJ?9+C2ZrFpDfaKaqNVtQ`zs)IY)dt!9IaH`np+W)w0W+eujaR2}S literal 0 HcmV?d00001 diff --git a/src/data/core/vnote.desktop b/src/data/core/vnote.desktop new file mode 100644 index 00000000..8772fa51 --- /dev/null +++ b/src/data/core/vnote.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Type=Application +Name=VNote +Name[zh]=VNote笔记 +GenericName=Note-taking Application +GenericName[zh]=笔记软件 +Comment=A pleasant note-taking platform +Comment[zh]=一个舒适的笔记平台 +Icon=vnote +Terminal=false +Exec=vnote %F +MimeType=text/markdown; +Categories=Qt;Utility;TextEditor;Office; diff --git a/src/src.pro b/src/src.pro index 42218192..77ef6974 100644 --- a/src/src.pro +++ b/src/src.pro @@ -13,11 +13,11 @@ TARGET = vnote TEMPLATE = app win32:CONFIG(release, debug|release) { - DESTDIR = $$OUT_PWD/release + SRC_DESTDIR = $$OUT_PWD/release } else:win32:CONFIG(debug, debug|release) { - DESTDIR = $$OUT_PWD/debug + SRC_DESTDIR = $$OUT_PWD/debug } else { - DESTDIR = $$OUT_PWD + SRC_DESTDIR = $$OUT_PWD } RC_ICONS = data/core/icons/vnote.ico @@ -53,8 +53,52 @@ win32 { rcc_binary.depend_command = $$[QT_HOST_BINS]/rcc -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} } rcc_binary.input = RCC_BINARY_SOURCES -rcc_binary.output = $$DESTDIR/${QMAKE_FILE_IN_BASE}.rcc +rcc_binary.output = $$SRC_DESTDIR/vnote_${QMAKE_FILE_IN_BASE}.rcc rcc_binary.CONFIG += no_link target_predeps QMAKE_EXTRA_COMPILERS += rcc_binary OTHER_FILES += $$RCC_BINARY_SOURCES + +## INSTALLS +unix:!macx { + isEmpty(PREFIX): PREFIX = /usr + DATADIR = $${PREFIX}/share + BINDIR = $${PREFIX}/bin + LIBDIR = $${PREFIX}/lib + INCLUDEDIR = $${PREFIX}/include + + # install desktop file + desktop.path = $${DATADIR}/applications + desktop.files += data/core/vnote.desktop + + # install icons + icon16.path = $${DATADIR}/icons/hicolor/16x16/apps + icon16.files = data/core/logo/16x16/vnote.png + + icon32.path = $${DATADIR}/icons/hicolor/32x32/apps + icon32.files = data/core/logo/32x32/vnote.png + + icon48.path = $${DATADIR}/icons/hicolor/48x48/apps + icon48.files = data/core/logo/48x48/vnote.png + + icon64.path = $${DATADIR}/icons/hicolor/64x64/apps + icon64.files = data/core/logo/64x64/vnote.png + + icon128.path = $${DATADIR}/icons/hicolor/128x128/apps + icon128.files = data/core/logo/128x128/vnote.png + + icon256.path = $${DATADIR}/icons/hicolor/256x256/apps + icon256.files = data/core/logo/256x256/vnote.png + + iconsvg.path = $${DATADIR}/icons/hicolor/scalable/apps + iconsvg.files = data/core/logo/vnote.svg + + target.path = $${BINDIR} + + extraresource.path = $${BINDIR} + extraresource.extra = cp $${SRC_DESTDIR}/vnote_extra.rcc $(INSTALL_ROOT)$${BINDIR}/vnote_extra.rcc + + INSTALLS += target desktop icon16 icon32 icon48 icon64 icon128 icon256 iconsvg + INSTALLS += extraresource + message("VNote will be installed in prefix $${PREFIX}") +} diff --git a/tests/common.pri b/tests/common.pri index 5e1ce2d8..2d4d1941 100644 --- a/tests/common.pri +++ b/tests/common.pri @@ -6,3 +6,5 @@ QT += core gui widgets network svg webenginewidgets webchannel QT += testlib CONFIG += c++14 testcase + +CONFIG += no_testcase_installs