opt: refactor file existence detect logic #1257
Workflow file for this run
This file contains 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: 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 |