fix(tests): add processutils.cpp to core_configs to fix test link errors #1177
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI-Linux | |
| on: | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| branches: [ master ] | |
| # Allows you to run this workflow manually from the Actions tab. | |
| workflow_dispatch: | |
| inputs: | |
| debug_enabled: | |
| type: boolean | |
| description: 'Run the build with tmate debugging enabled' | |
| required: false | |
| default: false | |
| env: | |
| VNOTE_VER: 4.2.0 | |
| CMAKE_VER: 3.24.3 | |
| 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 | |
| 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 a Fresh CMake | |
| run: | | |
| wget --no-verbose https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-Linux-x86_64.sh | |
| chmod +x cmake-${CMAKE_VER}-Linux-x86_64.sh | |
| mkdir ${{runner.workspace}}/cmake | |
| sudo ./cmake-${CMAKE_VER}-Linux-x86_64.sh --skip-license --prefix=${{runner.workspace}}/cmake | |
| sudo rm -f /usr/local/bin/cmake /usr/local/bin/cpack | |
| sudo ln -s ${{runner.workspace}}/cmake/bin/cmake /usr/local/bin/cmake | |
| sudo ln -s ${{runner.workspace}}/cmake/bin/cpack /usr/local/bin/cpack | |
| - 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 libfcitx5-qt-dev fcitx-libs-dev extra-cmake-modules libxkbcommon-dev | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tree | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y fuse libxcb-cursor-dev | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libssl-dev | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libsecret-1-dev | |
| python3 -m pip config set global.break-system-packages true | |
| - name: Cache Qt | |
| id: cache-qt | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{runner.workspace}}/Qt | |
| key: ${{ runner.os }}-QtCache-6.9 | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v3 | |
| with: | |
| version: 6.9.3 | |
| target: desktop | |
| modules: 'qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat qtserialport' | |
| tools: 'tools_opensslv3_src' | |
| cache: 'true' | |
| - name: Compile OpenSSLV3 | |
| run: | | |
| cd ${Qt6_DIR}/../../Tools/OpenSSLv3/src | |
| ./Configure | |
| make -j2 | |
| sudo make install | |
| - name: Create Build Dir | |
| run: mkdir build | |
| working-directory: ${{runner.workspace}} | |
| - name: Compile fcitxqt5 | |
| run: | | |
| git clone https://github.com/fcitx/fcitx-qt5 | |
| cd fcitx-qt5 | |
| mkdir build && cd build | |
| cmake -DENABLE_QT5=OFF -DENABLE_QT6=ON .. | |
| make -j2 | |
| sudo make install | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Compile qt6ct | |
| run: | | |
| git clone https://github.com/trialuser02/qt6ct qt6ct.git | |
| cd qt6ct.git | |
| qmake | |
| make -j$(nproc) && sudo make install | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Configure Project | |
| run: | | |
| qmake -v | |
| cmake --version | |
| cmake ${GITHUB_WORKSPACE} | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Build Project | |
| run: | | |
| # Remove the libqsqlmimer.so as libmimerapi.so is not deployed with Qt6 | |
| rm ${{runner.workspace}}/Qt/6.*/gcc_64/plugins/sqldrivers/libqsqlmimer.so | |
| cmake --build . --target pack | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Build and Run Tests | |
| # Build remaining targets (Qt-side tests + vxcore tests; --target pack | |
| # above only built the AppImage target) then run them headlessly via | |
| # the Qt offscreen platform plugin. VNOTE_BUILD_TESTS defaults to ON | |
| # in the root CMakeLists.txt, so no extra -D is needed. | |
| run: | | |
| set -e | |
| cmake --build . | |
| export QT_QPA_PLATFORM=offscreen | |
| # Force a UTF-8 locale so std::filesystem::path round-trips through | |
| # std::string preserve non-ASCII bytes. Without this, CJK filenames | |
| # in tests/data/vnote3_notebooks/* get mangled during VNote3 | |
| # migration (testConvertFolderWith17FilesAndSubfolder, etc.). | |
| export LC_ALL=C.UTF-8 | |
| export LANG=C.UTF-8 | |
| # libVTextEdit.so lives next to the parent build's vnote binary; | |
| # add it to LD_LIBRARY_PATH so Qt-side test exes resolve it at load. | |
| export LD_LIBRARY_PATH="${{runner.workspace}}/build/libs/vtextedit/src:${LD_LIBRARY_PATH:-}" | |
| ctest --output-on-failure | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Re-run failed tests with extra-verbose output (debug aid) | |
| # On failure of the previous step, re-run only the failing tests with | |
| # --extra-verbose so Qt Test's PASS/FAIL lines + assertion details | |
| # land in the CI log. Diagnostic only; never gates the workflow. | |
| if: failure() | |
| run: | | |
| export QT_QPA_PLATFORM=offscreen | |
| export LC_ALL=C.UTF-8 | |
| export LANG=C.UTF-8 | |
| export LD_LIBRARY_PATH="${{runner.workspace}}/build/libs/vtextedit/src:${LD_LIBRARY_PATH:-}" | |
| ctest --rerun-failed --extra-verbose || true | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Fix Package | |
| run: | | |
| mkdir fixpackage | |
| mv VNote*.AppImage ./fixpackage | |
| pushd fixpackage | |
| # Extract the AppImage | |
| ./VNote*.AppImage --appimage-extract | |
| # Remove libnss3.so and libnssutil3.so | |
| rm ./squashfs-root/usr/lib/libnss*.so | |
| # Re-package | |
| rm VNote*.AppImage | |
| linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=./squashfs-root | |
| mv VNote*.AppImage ../ | |
| popd | |
| mv VNote*.AppImage VNote-${{env.VNOTE_VER}}-linux-x64.AppImage | |
| working-directory: ${{runner.workspace}}/build | |
| - name: Archive Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: VNote-${{env.VNOTE_VER}}-linux-x64.AppImage | |
| path: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-linux-x64.AppImage | |
| - name: Update Tag | |
| if: github.ref == 'refs/heads/master' | |
| run: | | |
| git tag --force continuous-build ${GITHUB_SHA} | |
| git push --force --tags | |
| - 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-${{env.VNOTE_VER}}-linux-x64.AppImage | |
| release: Continuous Build | |
| tag: continuous-build | |
| - name: Release | |
| if: github.ref == 'refs/heads/master' && startsWith(github.event.head_commit.message, '[Release]') | |
| uses: ncipollo/release-action@v1.11.0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| artifacts: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-linux-x64.AppImage | |
| commit: master | |
| tag: v${{env.VNOTE_VER}} | |
| allowUpdates: true | |
| draft: true |