try fix win ci (#2434)

* try fix win ci

* remove win32

* add more modules

* fix ci

* try fix linux-ci

* fix linux ci

* try fix rcc

* fix rcc path

* tree

* add back qt 5

* use jom
This commit is contained in:
Le Tan 2023-10-08 23:09:31 +08:00 committed by GitHub
parent 75f7250ed1
commit 15d14359d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 72 additions and 52 deletions

View File

@ -38,43 +38,39 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx-qt5-dev tree sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx5-qt-dev tree
- name: Cache Qt - name: Cache Qt
id: cache-qt id: cache-qt
uses: actions/cache@v1 # not v2! uses: actions/cache@v1 # not v2!
with: with:
path: ../Qt path: ../Qt
key: ${{ runner.os }}-QtCache-5.15 key: ${{ runner.os }}-QtCache-6.5
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v2 uses: jurplel/install-qt-action@v3
with: with:
version: 5.15.2 version: 6.5.2
target: desktop target: desktop
modules: qtwebengine modules: 'qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat'
tools: tools_openssl_x64,1.1.1-4,qt.tools.openssl.gcc_64 cache: 'true'
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- name: Create Build Dir - name: Create Build Dir
run: mkdir build run: mkdir build
working-directory: ${{runner.workspace}} working-directory: ${{runner.workspace}}
- name: Compile qt5ct - name: Compile qt6ct
run: | run: |
wget --no-check-certificate -c https://versaweb.dl.sourceforge.net/project/qt5ct/qt5ct-1.1.tar.bz2 git clone https://github.com/trialuser02/qt6ct qt6ct.git
tar xf qt5ct-1.*.tar.bz2 cd qt6ct.git
cd qt5ct-1.*/ qmake
QT_SELECT=5 qmake
make -j$(nproc) && sudo make install make -j$(nproc) && sudo make install
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build
- name: Configure Project - name: Configure Project
run: | run: |
qmake -v qmake -v
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ./ # TODO: libfcitx5
sudo chmod +rwx ./libfcitxplatforminputcontextplugin.so
cp ./libfcitxplatforminputcontextplugin.so $Qt5_Dir/plugins/platforminputcontexts
qmake CONFIG+=release -spec linux-g++-64 ${GITHUB_WORKSPACE}/vnote.pro qmake CONFIG+=release -spec linux-g++-64 ${GITHUB_WORKSPACE}/vnote.pro
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build
@ -94,18 +90,21 @@ jobs:
# Move the lib out to avoid duplication # Move the lib out to avoid duplication
mv AppDir/usr/lib ./ mv AppDir/usr/lib ./
LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
Qt6_Dir=$QT_HOST_BINS/..
tree $Qt6_Dir
tree $Qt6_Dir/../..
# Copy translations # Copy translations
mkdir -p AppDir/usr/translations mkdir -p AppDir/usr/translations
cp $Qt5_Dir/translations/qt_zh_CN.qm AppDir/usr/translations cp $Qt6_Dir/translations/qt_zh_CN.qm AppDir/usr/translations
# Package qt5ct (EXTRA_QT_PLUGINS seems not work) # Package qt5ct (EXTRA_QT_PLUGINS seems not work)
# EXTRA_QT_PLUGINS="platformthemes/libqt5ct.so;styles/libqt5ct-style.so" # EXTRA_QT_PLUGINS="platformthemes/libqt5ct.so;styles/libqt5ct-style.so"
mkdir -p AppDir/usr/plugins/platformthemes mkdir -p AppDir/usr/plugins/platformthemes
mkdir -p AppDir/usr/plugins/styles mkdir -p AppDir/usr/plugins/styles
cp $Qt5_Dir/plugins/platformthemes/* AppDir/usr/plugins/platformthemes/ cp $Qt6_Dir/plugins/platformthemes/* AppDir/usr/plugins/platformthemes/
cp $Qt5_Dir/plugins/styles/* AppDir/usr/plugins/styles/ cp $Qt6_Dir/plugins/styles/* AppDir/usr/plugins/styles/
# Package libssl.so and libcrypto.so # Package libssl.so and libcrypto.so
Qt5_Tools=$Qt5_Dir/../../Tools Qt_Tools=$Qt6_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 linuxdeploy-x86_64.AppImage --appdir ./AppDir --plugin qt --output appimage -l $Qt_Tools/OpenSSL/binary/lib/libcrypto.so.* -l $Qt_Tools/OpenSSL/binary/lib/
tree AppDir tree AppDir
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build

View File

@ -21,29 +21,21 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
# - {
# name: "Build On Win64 Qt 5.12",
# arch: win64_msvc2017_64,
# platform: x64,
# qt: 5.12.11
# }
# - {
# name: "Build On Win32 Qt 5.12",
# arch: win32_msvc2017,
# platform: x86,
# qt: 5.12.11
# }
- { - {
name: "Build On Win64 Qt 5.15", name: "Build On Win64 Qt 5.15",
arch: win64_msvc2019_64, arch: win64_msvc2019_64,
platform: x64, platform: x64,
qt: 5.15.2 qt: 5.15.2,
qt_modules: qtwebengine,
qt_tools: tools_opensslv3_x64
} }
- { - {
name: "Build On Win32 Qt 5.15", name: "Build On Win64 Qt 6.5",
arch: win32_msvc2019, arch: win64_msvc2019_64,
platform: x86, platform: x64,
qt: 5.15.2 qt: 6.5.2,
qt_modules: "qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat",
qt_tools: tools_opensslv3_x64
} }
steps: steps:
@ -64,39 +56,51 @@ jobs:
uses: actions/cache@v1 # not v2! uses: actions/cache@v1 # not v2!
with: with:
path: ../Qt path: ../Qt
key: ${{ runner.os }}-${{matrix.config.arch}}-QtCache-5.12-1 key: ${{runner.os}}-${{matrix.config.arch}}-QtCache-${{matrix.config.qt}}
- name: Install Qt Official Build - name: Install Qt Official Build
uses: jurplel/install-qt-action@v2 uses: jurplel/install-qt-action@v3
with: with:
version: ${{matrix.config.qt}} version: ${{matrix.config.qt}}
target: desktop target: desktop
arch: ${{matrix.config.arch}} arch: ${{matrix.config.arch}}
modules: qtwebengine modules: ${{matrix.config.qt_modules}}
tools: tools_openssl_${{matrix.config.platform}},1.1.1-4,qt.tools.openssl.win_${{matrix.config.platform}} tools: ${{matrix.config.qt_tools}}
cached: ${{ steps.cache-qt.outputs.cache-hit }} cache: 'true'
- name: Create Build Dir - name: Create Build Dir
shell: bash shell: bash
run: mkdir build run: mkdir build
working-directory: ${{runner.workspace}} working-directory: ${{runner.workspace}}
- name: Clone OpenSSL - name: Clone OpenSSL on 5.15
shell: bash shell: bash
if: ${{startsWith(matrix.config.qt, '5.15')}}
run: | run: |
git clone https://github.com/tamlok/openssl-utils.git openssl-utils.git --depth=1 git clone https://github.com/tamlok/openssl-utils.git openssl-utils.git --depth=1
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build
- name: Download JOM
uses: suisei-cn/actions-download-file@v1
with:
url: http://download.qt.io/official_releases/jom/jom.zip
target: ${{runner.temp}}\
- name: Unzip JOM
run: |
7z x jom.zip -ojom
working-directory: ${{runner.temp}}
- name: Configure and Build Project - name: Configure and Build Project
shell: cmd shell: cmd
run: | run: |
qmake --version qmake --version
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}} call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}}
qmake -r -spec win32-msvc CONFIG-=debug CONFIG+=release %GITHUB_WORKSPACE%\vnote.pro qmake -r -spec win32-msvc CONFIG-=debug CONFIG+=release %GITHUB_WORKSPACE%\vnote.pro
nmake ${{runner.temp}}\jom\jom
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build
- name: Package Project - name: Package Project 1
shell: cmd shell: cmd
run: | run: |
qmake --version qmake --version
@ -107,15 +111,28 @@ jobs:
copy .\src\release\vnote_extra.rcc "%DISTRIB_PATH%\vnote_extra.rcc" copy .\src\release\vnote_extra.rcc "%DISTRIB_PATH%\vnote_extra.rcc"
copy .\libs\vtextedit\src\libs\syntax-highlighting\release\VSyntaxHighlighting.dll "%DISTRIB_PATH%\VSyntaxHighlighting.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" copy .\libs\vtextedit\src\editor\release\VTextEdit.dll "%DISTRIB_PATH%\VTextEdit.dll"
rem set qt_dir=%Qt5_Dir:/=\% copy "%GITHUB_WORKSPACE%\package\qt.conf" "%DISTRIB_PATH%\qt.conf"
rem for %%I in ("%qt_dir%\..\..") do set "qt_topdir=%%~fI"
rem set openssl_dir=%qt_topdir%\Tools\OpenSSL\Win_${{matrix.config.platform}}\bin
set openssl_dir=openssl-utils.git\1.1.1j\Win_${{matrix.config.platform}}
copy %openssl_dir%\lib*.dll "%DISTRIB_PATH%\"
copy "%GITHUB_WORKSPACE%\README.md" "%DISTRIB_PATH%\README.md" copy "%GITHUB_WORKSPACE%\README.md" "%DISTRIB_PATH%\README.md"
copy "%GITHUB_WORKSPACE%\COPYING.LESSER" "%DISTRIB_PATH%\COPYING.LESSER" copy "%GITHUB_WORKSPACE%\COPYING.LESSER" "%DISTRIB_PATH%\COPYING.LESSER"
echo %GITHUB_SHA% > "%DISTRIB_PATH%\commit" echo %GITHUB_SHA% > "%DISTRIB_PATH%\commit"
del /F /Q "%DISTRIB_PATH%\translations\qt_*.qm" del /F /Q "%DISTRIB_PATH%\translations\qt_*.qm"
working-directory: ${{runner.workspace}}/build
env:
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
- name: "Package Project: Copy OpenSSL on 5.15"
shell: cmd
if: ${{startsWith(matrix.config.qt, '5.15')}}
run: |
set openssl_dir=openssl-utils.git\1.1.1j\Win_${{matrix.config.platform}}
copy %openssl_dir%\lib*.dll "%DISTRIB_PATH%\"
working-directory: ${{runner.workspace}}/build
env:
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
- name: Package Project 2
shell: cmd
run: |
7z a vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip "%DISTRIB_PATH%" 7z a vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip "%DISTRIB_PATH%"
copy vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip copy vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip
working-directory: ${{runner.workspace}}/build working-directory: ${{runner.workspace}}/build
@ -123,6 +140,7 @@ jobs:
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
- name: Package Installer - name: Package Installer
if: ${{startsWith(matrix.config.qt, '6.')}}
shell: cmd shell: cmd
run: | run: |
copy "%GITHUB_WORKSPACE%\src\data\core\icons\vnote.ico" "%DISTRIB_PATH%\vnote.ico" copy "%GITHUB_WORKSPACE%\src\data\core\icons\vnote.ico" "%DISTRIB_PATH%\vnote.ico"
@ -143,6 +161,7 @@ jobs:
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
- name: Archive Installer - name: Archive Installer
if: ${{startsWith(matrix.config.qt, '6.')}}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi name: VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi

2
package/qt.conf Normal file
View File

@ -0,0 +1,2 @@
[Platforms]
WindowsArguments = fontengine=freetype

View File

@ -79,8 +79,8 @@ win32 {
rcc_binary.commands = $$shell_path($$[QT_HOST_BINS]/rcc.exe) -name ${QMAKE_FILE_IN_BASE} -binary ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} rcc_binary.commands = $$shell_path($$[QT_HOST_BINS]/rcc.exe) -name ${QMAKE_FILE_IN_BASE} -binary ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
rcc_binary.depend_command = $$shell_path($$[QT_HOST_BINS]/rcc.exe) -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} rcc_binary.depend_command = $$shell_path($$[QT_HOST_BINS]/rcc.exe) -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
} else { } else {
rcc_binary.commands = $$[QT_HOST_BINS]/rcc -name ${QMAKE_FILE_IN_BASE} -binary ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} rcc_binary.commands = $$[QT_HOST_LIBEXECS]/rcc -name ${QMAKE_FILE_IN_BASE} -binary ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
rcc_binary.depend_command = $$[QT_HOST_BINS]/rcc -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} rcc_binary.depend_command = $$[QT_HOST_LIBEXECS]/rcc -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
} }
rcc_binary.input = RCC_BINARY_SOURCES rcc_binary.input = RCC_BINARY_SOURCES
rcc_binary.output = $$SRC_DESTDIR/vnote_${QMAKE_FILE_IN_BASE}.rcc rcc_binary.output = $$SRC_DESTDIR/vnote_${QMAKE_FILE_IN_BASE}.rcc