Windows-6.x #216
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: Windows-6.x | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
# workflow_run: | |
# workflows: [AutoTag] | |
# types: [completed] | |
workflow_dispatch: | |
push: | |
branches: | |
- dev | |
- master | |
# - staged | |
paths-ignore: | |
- 'docs/**' | |
# - ".github/**" | |
- "howto/**" | |
- "*.md" | |
- ".clang-format" | |
jobs: | |
build: | |
name: Build | |
# see https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2019] | |
qt_ver: [6.5.2 ] | |
qt_arch: [win64_msvc2019_64] | |
env: | |
targetName: GoldenDict.exe | |
version: 23.10.01 | |
version-suffix: alpha | |
prerelease: true | |
steps: | |
- uses: actions/setup-python@v3 | |
with: | |
python-version: '3.9' | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{ matrix.qt_ver }} | |
# target: ${{ matrix.qt_target }} | |
arch: ${{ matrix.qt_arch }} | |
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech | |
setup-python: 'false' | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: true | |
- name: changelog | |
id: changelog | |
shell: bash | |
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: "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" | |
} | |
] | |
} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set outputs | |
id: vars | |
shell: bash | |
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 | |
- 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 build | |
uses: johnwason/vcpkg-action@v5 | |
id: vcpkg | |
with: | |
# pkgs: ffmpeg[core,avcodec,avformat,mp3lame,opus,speex,swresample,vorbis,fdk-aac,gpl] breakpad | |
pkgs: breakpad | |
triplet: x64-windows-release | |
token: ${{ github.token }} | |
- name: copy vcpkg packages into winlibs | |
shell: bash | |
run: | | |
cp -R vcpkg/packages/breakpad_x64-windows-release/* thirdparty/breakpad | |
ls -al thirdparty/breakpad | |
# # msvc编译 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
# with: | |
# arch: ${{ matrix.msvc_arch }} | |
- name: msvc-build goldendict | |
id: build | |
shell: cmd | |
run: | | |
qmake "CONFIG+=zim_support" CONFIG+=release CONFIG+=use_xapian CONFIG+=use_iconv CONFIG+=use_breakpad CONFIG+=no_ffmpeg_player CONFIG+=no_tts_support | |
nmake | |
echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% | |
echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% | |
echo vcToolsInstallDir=%VCToolsInstallDir% >> %GITHUB_ENV% | |
echo vcToolsRedistDir=%VCToolsRedistDir% >> %GITHUB_ENV% | |
echo QTDIR=%Qt6_DIR% >> %GITHUB_ENV% | |
# 打包 | |
- name: windows ps package | |
id: package-windows | |
env: | |
archiveName: GoldenDict-Windows.${{ steps.vars.outputs.sha_short }}-${{ steps.vars.outputs.release_time }} | |
shell: pwsh | |
run: | | |
& .github\scripts\windows-publish.ps1 ${env:archiveName} ${env:targetName} | |
- name: package | |
id: package | |
shell: bash | |
run: | | |
packageName=GoldenDict-Windows.${{ steps.vars.outputs.sha_short }}-${{ steps.vars.outputs.release_time }} | |
echo $packageName | |
echo "packageName=$packageName" >> $GITHUB_OUTPUT | |
- name: upload goldendict.exe only | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: release/${{ env.targetName }} | |
asset_name: ${{ matrix.qt_ver }}.${{ matrix.os }}-${{ env.targetName }} | |
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}} | |
- name: upload pdb | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: release/GoldenDict.pdb | |
asset_name: ${{ matrix.qt_ver }}.${{ matrix.os }}-GoldenDict.pdb | |
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}} | |
- name: copy nsis | |
shell: bash | |
run: | | |
cp tools/nsis/GoldenDict.nsi ${{ steps.package.outputs.packageName }}/ | |
- name: Create installer | |
uses: joncloud/makensis-action@v4 | |
with: | |
arguments: "/V3" | |
script-file: ${{ steps.package.outputs.packageName }}/GoldenDict.nsi | |
- name: make installer | |
run: | | |
cd ${{ steps.package.outputs.packageName }} | |
ls *.exe | |
- name: upload goldendict installer | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ steps.package.outputs.packageName }}/GoldenDict-ng-v23-Installer.exe | |
asset_name: ${{ matrix.qt_ver }}-GoldenDict-ng-Installer.exe | |
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}} | |
- name: uploadRelease | |
# if: startsWith(github.event.ref, 'refs/tags/') | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ steps.package.outputs.packageName }}.zip | |
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.zip | |
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 AppImages or Flatpak. | |
https://flathub.org/zh-Hans/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 | |
AppImage: Ubuntu-20.04 | |
macOS: macOS-12 and macOS-13 | |
Windows: Visual studio 2019 | |
based on: ${{github.ref_name}} | |
#### Changes | |
${{steps.build_changelog.outputs.changelog}} |