mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-12-18 19:44:06 +00:00
166 lines
4.6 KiB
YAML
166 lines
4.6 KiB
YAML
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
|