Добавить ручные кроссплатформенные сборки GitHub Actions - #1291
Conversation
|
Буду благодарен, если сделаете mac и linux сборку по требованию. |
|
Учел замечания. Workflow теперь запускается только вручную через |
* Add cross-platform GitHub Actions builds * Build Linux packages on Ubuntu 22.04 * Keep Ubuntu 22 builds after runner deprecation * Publish versioned build artifacts to GitHub Releases * Fix cross-platform CI bootstrap * Install CMake in the Ubuntu build container * Target macOS 13.3 for the current toolchain * Build Windows dependencies with Ninja * Define the Linux Conan C++ standard * Support macdeployqt before Qt 6.11 * Keep the MSVC compiler path for nested builds * Fix CI Conan profile resolution * Avoid recursive macOS framework copies * Normalize macOS plugin install names * Configure the real bit7z target on MSVC * Support ranges conversion on Ubuntu 22 * Parse universal macOS dependencies by architecture * Keep foundation warnings compatible with Clang * Rotate trusted Qt download mirrors * Use POSIX shell for Qt mirror retries * Cache the XZ source fallback for Linux CI * Backport missing C++23 library features on Ubuntu 22 * Run CI for project review branches * Keep Linux compatibility headers in one include * Build Ubuntu packages with the native GCC toolchain * Silence a false positive in the vendored SHA-1 code * Backport the C++23 as-rvalue view on Ubuntu 22 * Ignore a GCC false positive in vendored templates * Avoid copies in structured binding loops * Install file for Debian package generation * Bundle Linux runtime dependencies in release packages * Build Ubuntu 22 packages with GCC 14 * Build visible column order without ranges::to * Make platform package builds opt-in * Remove trailing blank line from GCC profile * Restore Conan recipe formatting
Что изменено
Добавлен единый GitHub Actions workflow для сборки FLibrary на Linux, Windows и macOS.
Сборка больше не хранится в памяти конкретного ноутбука, но и не устраивает получасовой парад на каждом PR. Workflow запускается только вручную и никак не задерживает влитие веток.
Как запускать
Actions->Cross-platform builds.Run workflowи выбрать нужную ветку или тег.В форме запуска доступны три флага:
Linux x86_64, включен по умолчанию;macOS arm64 and x86_64, включен по умолчанию и собирает оба DMG;Windows x86_64, опционален и выключен по умолчанию.У workflow остался только триггер
workflow_dispatch. Push, pull request и тег сами по себе ничего не запускают. Автоматической публикации GitHub Releases тоже нет.Артефакты
ubuntu:22.04container, GCC 14.tar.xzи установочный.deb.zip.dmg.dmgПакеты сохраняются в Actions artifacts на 14 дней:
FLibrary-linux-x86_64;FLibrary-windows-x86_64;FLibrary-macos-arm64;FLibrary-macos-x86_64.Для каждого набора создается
SHA256SUMS. Windows-сборка остается доступной для ручной проверки, но никуда автоматически не публикуется.Используются зафиксированные Qt 6.10.3, Conan 2.30.0 и aqtinstall 3.3.0. Внешние Actions закреплены по полным commit SHA, checkout забирает все submodules и не сохраняет credentials.
Linux на Ubuntu 22.04
Job работает на актуальном GitHub host, а сама сборка выполняется внутри
ubuntu:22.04. Поэтому отключение runner labelubuntu-22.04не поменяет glibc и пользовательскую среду пакета.GCC 14 устанавливается из Ubuntu Toolchain PPA и предоставляет используемые проектом C++23 API нативно. Временные compatibility-заголовки,
fmtиrange-v3удалены, в Conan они не добавляются.Проверки пакетов
Workflow проверяет не только код возврата компилятора:
--version,.debпроверяется черезdpkg-deb --info;FLibrary.exe --version;codesign --verify, DMG проходитhdiutil verify;FLibrary.appи ссылкуApplications -> /Applications.Полная матрица из четырех платформ успешно прошла на коммите
e35ea101: Actions run 29712304073.Учтенные замечания ревью
contents: writeудалены;fmtиrange-v3удалены;