mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 19:24:08 +00:00
126 lines
3.9 KiB
YAML
126 lines
3.9 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
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "*.md"
|
|
- "locale/**"
|
|
- "website/**"
|
|
jobs:
|
|
job_ubuntu_build_check:
|
|
name: ubuntu Build and analyze
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
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:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
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-12
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
submodules: false
|
|
- name: Install dependencies
|
|
run: |
|
|
brew install \
|
|
ninja \
|
|
opencc \
|
|
ffmpeg \
|
|
libao \
|
|
libiconv \
|
|
bzip2 \
|
|
lzip \
|
|
libvorbis \
|
|
hunspell \
|
|
xapian \
|
|
libzim \
|
|
qt
|
|
|
|
wget ftp://ftp.sra.co.jp/pub/misc/eb/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.2
|
|
arch: win64_msvc2019_64
|
|
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
|
setup-python: 'false'
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
submodules: true
|
|
- name: Setup vcpkg github caches variables
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
|
- name: Run build
|
|
id: build
|
|
env:
|
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
|
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 `
|
|
-DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" `
|
|
-DWITH_FFMPEG_PLAYER=OFF `
|
|
-DUSE_VCPKG=ON `
|
|
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT\scripts\buildsystems\vcpkg.cmake" `
|
|
-DWITH_VCPKG_BREAKPAD=ON
|
|
cmake --build "./build_dir"
|