actions: drop Qt5 CI and rename others

This commit is contained in:
shenleban tongying 2024-06-19 11:11:19 -04:00
parent 10104d77aa
commit 28c9f8fee2
9 changed files with 7 additions and 395 deletions

View file

@ -57,12 +57,12 @@ jobs:
- name: Run build-wrapper
run: |
cmake . -DWITH_FFMPEG_PLAYER=OFF
cmake .
cmake --build .
job2:
name: windows Build and analyze
runs-on: windows-2019
runs-on: windows-latest
steps:
- uses: actions/setup-python@v3
with:
@ -84,7 +84,7 @@ jobs:
- name: Run build-wrapper
run: |
cmake -S . -DWITH_FFMPEG_PLAYER=OFF
cmake -S . -DWITH_FFMPEG_PLAYER=OFF
cmake --build . --config Release
job3:
name: macos Build and analyze
@ -137,7 +137,6 @@ jobs:
brew install icu4c
- name: Run build-wrapper
run: |
export PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig:"$PKG_CONFIG_PATH"
cmake . -DWITH_FFMPEG_PLAYER=OFF
cmake .
cmake --build .

View file

@ -28,7 +28,7 @@ jobs:
strategy:
matrix:
os: [windows-2019]
qt_ver: [5.15.2,6.6.3]
qt_ver: [6.6.3]
qt_arch: [win64_msvc2019_64]
steps:
- uses: actions/setup-python@v3

View file

@ -1,80 +0,0 @@
name: macos-homebrew-PR-check
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
pull_request:
branches:
- dev
- master
- experimental
- staged
paths-ignore:
- 'docs/**'
# - ".github/**"
- "howto/**"
- "*.md"
- "locale/**"
- "website/**"
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-12]
qt_ver: [6.6.3]
qt_arch: [clang_64]
env:
targetName: GoldenDict
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_ver }}
arch: ${{ matrix.qt_arch }}
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtspeech
- uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
- name: Set outputs
id: githash
run: |
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: install deps on macos
run: |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=TRUE
brew install cmake ninja
brew install automake
brew install autoconf
brew install libtool
brew install opencc
brew install libao
brew install libiconv
brew install lzo bzip2
brew install libogg
brew install zstd lzip
brew install libvorbis --force
brew install hunspell
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 ..
# brew install xz
brew install pkg-config
brew install libiconv
brew install xapian
brew install libzim
- name: compile
run: |
qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_iconv CONFIG+=use_xapian CONFIG+=no_ffmpeg_player
make

View file

@ -1,224 +0,0 @@
name: macos-homebrew-breakpad
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
#push:
# branches:
# - dev
# - master
# # - staged
# paths-ignore:
# - 'docs/**'
# - ".github/**"
# - "howto/**"
# - "*.md"
# - ".clang-format"
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13]
qt_ver: [ 6.6.0 ]
qt_arch: [clang_64]
env:
targetName: GoldenDict
version: 24.05.13
version-suffix: alpha
prerelease: true
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set outputs
id: githash
run: |
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: install deps on macos
run: |
brew install cmake ninja
brew install automake
brew install autoconf
brew install libtool
brew install opencc
brew install speex
brew install wavpack
brew install automake fdk-aac git lame libass libtool libvorbis libvpx opus sdl shtool texi2html theora wget x264 x265 xvid nasm
brew install libiconv
brew install lzo bzip2
brew install libogg
brew install zstd lzip
brew install libvorbis
brew install hunspell
git clone https://github.com/xiaoyifang/eb.git
cd eb && ./configure && make -j 8 && sudo make install && cd ..
brew install xz lzo
brew install pkg-config
brew install create-dmg
brew install xapian
brew install libzim
# brew reinstall icu4c
brew install dylibbundler
find /opt -name libicudata.72.dylib
find /usr/local -name libicudata.72.dylib
- name: version-file
shell: bash
env:
VAR_SUFFIX: ${{env.version-suffix}}
VAR_VERSION: ${{env.version}}
run: |
current_tag=$(git rev-parse --short=8 HEAD)
release_date=$(date +'%Y%m%d')
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
cat version.txt
echo "$version"
- name: vcpkg install
shell: bash
run: |
vcpkg install breakpad
- name: copy vcpkg packages into winlibs
shell: bash
run: |
ls -al /usr/local/share/vcpkg/packages/breakpad*
cp -R /usr/local/share/vcpkg/packages/breakpad*/* thirdparty/breakpad
ls -al thirdparty/breakpad/lib
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_ver }}
arch: ${{ matrix.qt_arch }}
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
- name: compile
run: |
qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_xapian CONFIG+=use_breakpad CONFIG+=no_ffmpeg_player CONFIG+=no_tts_support
make -j8
- name: package
run: |
macdeployqt ${targetName}.app -no-strip -qmldir=. -verbose=1
otool -L GoldenDict.app/Contents/MacOS/GoldenDict
ls -al GoldenDict.app/Contents/Frameworks
# otool -L GoldenDict.app/Contents/Frameworks/libicu*.dylib
ls -al /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib
# cp -r /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib GoldenDict.app/Contents/Frameworks
codesign --force --deep -s - GoldenDict.app
ls -al GoldenDict.app/Contents/Frameworks
mkdir tmp
mv ${targetName}.app ./tmp
# --background "installer_background.png"
create-dmg --volname "${targetName} Installer" --volicon "icons/macicon.icns" --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon "${targetName}.app" 200 190 --hide-extension "${targetName}.app" --app-drop-link 600 185 --skip-jenkins "${targetName}.dmg" tmp/
- name: changelog
id: changelog
run: |
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
echo "previousTag : $previousTag"
echo "prev_tag=$previousTag" >> $GITHUB_OUTPUT
echo "curr_tag=$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)" >> $GITHUB_OUTPUT
- name: Set outputs
id: vars
run: |
echo "sha_short=$(git rev-parse --short=8 HEAD)" >> $GITHUB_OUTPUT
echo "release_date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
echo "release_time=$(date +'%H%M%S')" >> $GITHUB_OUTPUT
echo "release_time_clock=$(date +'%H:%M:%S')" >> $GITHUB_OUTPUT
echo "release_hm=$(date +'%y%m%d')" >> $GITHUB_OUTPUT
# tag 上传Release
- name: "Build Changelog"
id: build_changelog
uses: mikepenz/release-changelog-builder-action@v3
with:
commitMode: false
fromTag: ${{ steps.changelog.outputs.prev_tag }}
toTag: "${{ steps.changelog.outputs.curr_tag }}"
configurationJson: |
{
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
"categories": [
{
"title": "## 🚀 Features",
"labels": ["feature","feat","opt"]
},
{
"title": "## 🐛 Fixes",
"labels": ["fix","bug"]
}
,
{
"title": "## 🤖 Github action",
"labels": ["action"]
}
,
{
"title": "## 🧼 Clean Code",
"labels": ["clean"]
}
],
"label_extractor": [
{
"pattern": "([^:]*):.*",
"target": "$1",
"on_property": "title",
"flags": "gu"
}
]
}
- name: uploadRelease
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.targetName }}.dmg
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_homebrew_breakpad_${{steps.vars.outputs.release_date}}.dmg
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
overwrite: true
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
prerelease: ${{env.prerelease}}
body: |
#### Install instructions for Windows, macOS and Linux
<https://xiaoyifang.github.io/goldendict-ng/install/>.
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
Qt6.X is recommended for various enhancements.
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
Linux users can use Flatpak or build from source.
https://flathub.org/apps/io.github.xiaoyifang.goldendict_ng
macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
#### Build Details
Flatpak
macOS: macOS-12 and macOS-13
Windows: Visual studio 2019
based on: ${{github.ref_name}}
#### Changes
${{steps.build_changelog.outputs.changelog}}

View file

@ -1,84 +0,0 @@
name: Ubuntu-PR-check
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
pull_request:
branches:
- dev
- master
- experimental
- staged
paths-ignore:
- 'docs/**'
# - ".github/**"
- "howto/**"
- "*.md"
- "locale/**"
- "website/**"
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
qt_ver: [5.15.2,6.6.0]
qt_arch: [gcc_64]
steps:
- name: Install Qt
if: ${{ matrix.qt_ver == '5.15.2' }}
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_ver }}
modules: qtwebengine
- name: Install Qt
if: ${{ matrix.qt_ver != '5.15.2' }}
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_ver }}
arch: ${{ matrix.qt_arch }}
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
- name: ubuntu install thirdparty dependencies
run: |
sudo apt-get install git pkg-config build-essential qt5-qmake
sudo apt-get install libvorbis-dev zlib1g-dev libhunspell-dev x11proto-record-dev
sudo apt-get install qtdeclarative5-dev libxtst-dev liblzo2-dev libbz2-dev
sudo apt-get install libavutil-dev libavformat-dev libeb16-dev
sudo apt-get install libqt5webkit5-dev libqt5svg5-dev libqt5x11extras5-dev qttools5-dev
sudo apt-get install qttools5-dev-tools qtmultimedia5-dev libqt5multimedia5-plugins doxygen libzstd-dev #libopencc-dev
sudo apt-get install libxkbcommon-dev libc6-dev
sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld
git clone https://github.com/BYVoid/OpenCC
pwd
cd OpenCC/
make PREFIX=/usr -j$(nproc)
sudo make install
cd ..
sudo apt install libxapian-dev
sudo apt-get install libzim-dev
- uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
- name: build goldendict
run: |
qmake CONFIG+=release PREFIX=/usr CONFIG+=zim_support CONFIG+=chinese_conversion_support CONFIG+=use_iconv CONFIG+=use_xapian
make INSTALL_ROOT=appdir -j`nproc` install; find appdir/
#copy missing shared dll to appdir.
mkdir -p appdir/usr/lib
cp $(ldd appdir/usr/bin/goldendict | grep -o '\W/[^ ]*' |grep gobject ) appdir/usr/lib
cp $(ldd appdir/usr/bin/goldendict | grep -o '\W/[^ ]*' |grep libpango ) appdir/usr/lib

View file

@ -27,12 +27,13 @@ dictionaries.
- support >4GB dictionary
- support highdpi screen resolution
- built with xapian as fulltext engine
- support Qt5.15.2 and higher ,include latest Qt6
- support latest Qt6
- performance optimization(eg. >10000000 headwords support)
- anki integration
- dark theme
- daily auto release support
- lots of bug fixes and improvements
- general code improvements for easier development
## Help GoldenDict's Development