name: Build Check concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: workflow_dispatch: pull_request: branches: - dev - master - experimental - staged jobs: job_ubuntu_build_check: name: ubuntu Build and analyze runs-on: ubuntu-24.04 steps: - name: Install dependencies run: | sudo apt-get update sudo apt-get install build-essential ninja-build \ libvorbis-dev zlib1g-dev libhunspell-dev x11proto-record-dev \ libxtst-dev liblzo2-dev libbz2-dev \ libavutil-dev libavformat-dev libeb16-dev \ libzstd-dev libxkbcommon-dev \ libxapian-dev libzim-dev libopencc-dev \ qt6-5compat-dev \ qt6-base-dev \ qt6-multimedia-dev \ qt6-speech-dev \ qt6-svg-dev \ qt6-tools-dev \ qt6-tools-dev-tools \ qt6-webchannel-dev \ qt6-webengine-dev - uses: actions/checkout@v4 with: submodules: false - name: Run build run: | mkdir build_dir cmake -S . \ -B ./build_dir \ -G Ninja cmake --build ./build_dir job_macos_build_check: name: macos Build and analyze runs-on: macos-13 steps: - uses: actions/checkout@v4 with: submodules: false - name: Update brew run: | brew update - name: Install dependencies run: | brew install --force --overwrite \ ninja \ opencc \ ffmpeg \ libao \ libiconv \ bzip2 \ lzip \ libvorbis \ hunspell \ xapian \ libzim \ qt || true - name: Install eb run: | wget https://github.com/mistydemeo/eb/releases/download/v4.4.3/eb-4.4.3.tar.bz2 tar xvjf eb-4.4.3.tar.bz2 cd eb-4.4.3 && ./configure && make -j 8 && sudo make install && cd .. - name: Run build run: | mkdir build_dir cmake -S . \ -B ./build_dir \ -G Ninja cmake --build ./build_dir job_window_build_check: name: windows Build and analyze runs-on: windows-latest steps: - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: 6.7.3 arch: win64_msvc2019_64 modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech setup-python: 'false' - uses: actions/checkout@v4 with: submodules: true - name: Run build run: | # Launch-VsDevShell also provides Ninja & 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\Launch-VsDevShell.ps1' ` -SkipAutomaticLocation -Arch amd64 -HostArch amd64 New-Item -Path './build_dir' -ItemType Directory cmake -S . -B "./build_dir" ` -G Ninja ` -DWITH_VCPKG_BREAKPAD=ON ` -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" ` -DWITH_FFMPEG_PLAYER=OFF cmake --build "./build_dir" job_archlinux_build_check: name: archlinux Build and analyze runs-on: ubuntu-24.04 container: image: ghcr.io/archlinux/archlinux:base-devel steps: - name: Print Version run: | if [[ -f /etc/os-release ]]; then cat /etc/os-release fi - name: Install dependencies run: | # https://github.com/archlinux/archlinux-docker # base-devel is already included in the `base-devel` image pacman --noconfirm -Syuu \ cmake \ ffmpeg \ fmt \ hunspell \ libvorbis \ libxtst \ libzim \ lzo \ ninja \ opencc \ qt6-5compat \ qt6-base \ qt6-multimedia \ qt6-speech \ qt6-svg \ qt6-tools \ qt6-webengine \ tomlplusplus \ xapian-core - uses: actions/checkout@v4 with: submodules: false - name: Run build run: | mkdir build_dir # eb is only available in AUR, so it is disabled cmake -S . \ -B ./build_dir \ -G Ninja \ -DWITH_EPWING_SUPPORT=OFF \ -DWITH_FFMPEG_PLAYER=ON \ -DWITH_TTS=ON \ -DUSE_SYSTEM_FMT=ON \ -DUSE_SYSTEM_TOML=ON cmake --build ./build_dir