1 parent
443850196d
commit
ebf8ff7869
1 file changed
-25
@@ -1,16 +1,3 @@
|
||||
# Сборка BiLauncher под Windows, Linux и macOS и публикация в Gitea Releases.
|
||||
#
|
||||
# push тега vX.Y.Z (или vX.Y.Z-rc1 → pre-release):
|
||||
# create-release создаёт черновик релиза → три сборки прикладывают к нему файлы →
|
||||
# publish добавляет SHA256SUMS.txt и снимает флаг черновика. Если какая-то сборка
|
||||
# упала, релиз остаётся черновиком и пользователям не виден.
|
||||
# Ручной запуск (workflow_dispatch): те же сборки, но результат — артефакты прогона,
|
||||
# релиз не создаётся.
|
||||
#
|
||||
# Пути к Qt на раннерах задаются в их config.yaml (runner.envs): QT_ROOT — kit Qt,
|
||||
# QT_TOOLS — папка Tools из Qt Online Installer (там CMake и Ninja).
|
||||
# Секрет RELEASE_TOKEN — PAT с правом repository: write.
|
||||
|
||||
name: release
|
||||
|
||||
on:
|
||||
@@ -56,7 +43,6 @@ jobs:
|
||||
TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||
TAG: ${{ steps.meta.outputs.tag }}
|
||||
run: |
|
||||
# Описание релиза — раздел CHANGELOG.md для этой версии
|
||||
base="${TAG#v}"; base="${base%%-*}"
|
||||
notes=$(awk -v v="$base" '
|
||||
/^## \[/ { if (on) exit; if (index($0, "[" v "]")) { on=1; next } }
|
||||
@@ -85,12 +71,9 @@ jobs:
|
||||
run: |
|
||||
export PATH="$QT_TOOLS/CMake/bin:$QT_TOOLS/Ninja:$PATH"
|
||||
rm -rf build AppDir dist
|
||||
# LIBDIR=lib: zlibreference.cpp ищет libz рядом, в ../lib/BiLauncher,
|
||||
# а на Ubuntu по умолчанию был бы lib/x86_64-linux-gnu.
|
||||
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_PREFIX_PATH="$QT_ROOT" \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib
|
||||
# На ВМ 6 ГБ памяти: без ограничения 42 параллельных компилятора уходят в OOM.
|
||||
cmake --build build -j 8
|
||||
cmake --install build --prefix "$PWD/AppDir/usr"
|
||||
|
||||
@@ -142,7 +125,6 @@ jobs:
|
||||
shell: powershell
|
||||
run: |
|
||||
$ErrorActionPreference = "Stop"
|
||||
# Короткие пути: дерево WebEngine легко вылезает за MAX_PATH.
|
||||
$build = "C:\r\bl-build"; $stage = "C:\r\bl-stage"; $dist = "$PWD\dist"
|
||||
Remove-Item -Recurse -Force $build, $stage, $dist -ErrorAction SilentlyContinue
|
||||
|
||||
@@ -163,14 +145,10 @@ jobs:
|
||||
& "$env:ISCC_DIR\ISCC.exe" /Q "/DAppVersion=$env:VERSION" "/DSourceDir=$stage" "/DOutputDir=$dist" packaging\windows\BiLauncher.iss
|
||||
if ($LASTEXITCODE) { throw "iscc" }
|
||||
|
||||
# Portable: то же дерево, что ставит установщик, без vc_redist
|
||||
# (в portable-варианте среда выполнения MSVC должна уже стоять в системе).
|
||||
Remove-Item "$stage\bin\vc_redist.x64.exe" -ErrorAction SilentlyContinue
|
||||
$portable = "C:\r\BiLauncher-$env:VERSION"
|
||||
Remove-Item -Recurse -Force $portable -ErrorAction SilentlyContinue
|
||||
Move-Item $stage $portable
|
||||
# Системный bsdtar по полному пути: в PATH раннера раньше стоит GNU tar из Git,
|
||||
# который не умеет zip и принимает «C:» за имя удалённого хоста.
|
||||
& "$env:SystemRoot\System32\tar.exe" -a -c -f "$dist\BiLauncher-$env:VERSION-win64-portable.zip" -C C:\r "BiLauncher-$env:VERSION"
|
||||
if ($LASTEXITCODE) { throw "zip" }
|
||||
Remove-Item -Recurse -Force $portable
|
||||
@@ -179,7 +157,6 @@ jobs:
|
||||
$sums = Get-ChildItem $dist | ForEach-Object {
|
||||
"{0} {1}" -f (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower(), $_.Name }
|
||||
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(($sums -join "`n") + "`n"))
|
||||
# Не Out-File: PowerShell 5.1 пишет UTF-8 с BOM, и имя первой переменной ломается.
|
||||
[IO.File]::AppendAllText($env:GITHUB_OUTPUT, "sums=$b64`n")
|
||||
|
||||
- name: Загрузка в релиз
|
||||
@@ -226,8 +203,6 @@ jobs:
|
||||
- id: pack
|
||||
name: Ad-hoc подпись и DMG
|
||||
run: |
|
||||
# Без Developer ID: ad-hoc подпись нужна, чтобы приложение вообще
|
||||
# запускалось на Apple Silicon; Gatekeeper всё равно спросит подтверждение.
|
||||
codesign --force --deep --sign - stage/BiLauncher.app
|
||||
codesign --verify --deep --strict stage/BiLauncher.app
|
||||
mkdir -p dmgroot dist
|
||||
|
||||
Reference in new issue
Block a user