Always activate add torrent dialogs when they are requested over ipc #1047
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
# SPDX-FileCopyrightText: 2015-2024 Alexey Rochev | |
# | |
# SPDX-License-Identifier: CC0-1.0 | |
name: CI | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: | |
- master | |
- 'feature/**' | |
schedule: | |
- cron: '0 0 * * 0' | |
jobs: | |
build-rpm: | |
strategy: | |
fail-fast: false | |
matrix: | |
container-image: ['fedora:38', 'fedora:39', 'opensuse/tumbleweed:latest'] | |
compiler: [gcc] | |
qt-version: [5] | |
include: | |
- container-image: 'fedora:38' | |
compiler: clang | |
- container-image: 'fedora:39' | |
compiler: clang | |
- container-image: 'opensuse/tumbleweed:latest' | |
qt-version: 6 | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container-image }} | |
steps: | |
- name: Add GCC problem matcher | |
uses: ammaraskar/gcc-problem-matcher@master | |
- name: Set packages install command for dnf | |
if: startsWith(matrix.container-image, 'fedora') | |
run: echo 'INSTALL_PACKAGES=dnf -y --setopt=install_weak_deps=False install' >> "$GITHUB_ENV" | |
- name: Set packages install command for zypper | |
if: startsWith(matrix.container-image, 'opensuse') | |
run: echo 'INSTALL_PACKAGES=zypper --non-interactive --gpg-auto-import-keys in --no-recommends' >> "$GITHUB_ENV" | |
- name: Install Git and rpm-build | |
run: ${{env.INSTALL_PACKAGES}} git rpm-build | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Set Fedora compiler RPM macro | |
id: fedora-compiler | |
if: startsWith(matrix.container-image, 'fedora') | |
run: | | |
echo "rpm-macro=--define 'toolchain ${{ matrix.compiler }}'" >> "$GITHUB_OUTPUT" | |
- name: Add KF6 repository | |
if: startsWith(matrix.container-image, 'opensuse') && matrix.qt-version == 6 | |
run: | | |
zypper ar https://download.opensuse.org/repositories/KDE:/Unstable:/Frameworks/openSUSE_Factory/KDE:Unstable:Frameworks.repo | |
- name: Install build dependencies | |
run: | | |
readarray -t dependencies < <(rpmspec ${{steps.fedora-compiler.outputs.rpm-macro}} ${{ matrix.qt-version == 6 && '--define "with_qt6 1"' || '' }} -q --srpm --qf '[%{REQUIRES}\n]' packaging/rpm/tremotesf.spec) | |
${{env.INSTALL_PACKAGES}} "${dependencies[@]}" | |
- name: Make source archive | |
run: | | |
# Git complains if we don't do that | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
sourcedir="$(rpmbuild --eval '%_sourcedir')" | |
mkdir -p "$sourcedir" | |
.github/workflows/make-source-archive.py --output-directory "$sourcedir" zstd | |
- name: Build RPM | |
run: | | |
rpmbuild ${{steps.fedora-compiler.outputs.rpm-macro}} --${{ matrix.qt-version == 6 && 'with' || 'without' }} qt6 -bb packaging/rpm/tremotesf.spec | |
build-deb: | |
strategy: | |
fail-fast: false | |
matrix: | |
container-image: ['debian:11', 'debian:12', 'ubuntu:22.04', 'ubuntu:23.10'] | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container-image }} | |
steps: | |
- name: Add GCC problem matcher | |
uses: ammaraskar/gcc-problem-matcher@master | |
- name: Install dependencies needed to make source archive | |
run: | | |
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --assume-yes install ca-certificates git python3 cmake | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Make source archive | |
run: | | |
# Git complains if we don't do that | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
.github/workflows/make-source-archive.py --output-directory .. --debian gzip | |
- name: Check out Debian sources | |
uses: actions/checkout@v4 | |
with: | |
repository: equeim/tremotesf-debian | |
path: tremotesf-debian | |
- name: Remove everything except debian/ directory | |
run: | | |
mv tremotesf-debian/debian debian | |
rm -rf tremotesf-debian | |
- name: Install build dependencies | |
run: | | |
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --assume-yes build-dep . | |
- name: Build DEB | |
run: | | |
dpkg-buildpackage | |
build-flatpak: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Add GCC problem matcher | |
uses: ammaraskar/gcc-problem-matcher@master | |
- name: Set up Flatpak | |
run: | | |
sudo add-apt-repository -y ppa:flatpak/stable | |
sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --assume-yes install flatpak flatpak-builder elfutils | |
flatpak remote-add --user --if-not-exists flathub 'https://flathub.org/repo/flathub.flatpakrepo' | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Build Tremotesf | |
run: | | |
flatpak-builder --user --install-deps-from=flathub build-dir org.equeim.Tremotesf.json | |
build-windows-msvc: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- msvc | |
#- msvc-clang | |
uses: ./.github/workflows/build-windows-msvc.yml | |
with: | |
build-with-msvc-clang-toolchain: ${{ matrix.toolchain == 'msvc-clang' && 'true' || 'false' }} | |
build-windows-mingw: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout Tremotesf | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Checkout msys2-packages | |
uses: actions/checkout@v4 | |
with: | |
repository: equeim/msys2-packages | |
path: msys2-packages | |
- name: Set up MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: 'CLANG64' | |
update: 'true' | |
install: | | |
mingw-w64-clang-x86_64-clang | |
mingw-w64-clang-x86_64-cmake | |
mingw-w64-clang-x86_64-cppwinrt | |
mingw-w64-clang-x86_64-fmt | |
mingw-w64-clang-x86_64-openssl | |
mingw-w64-clang-x86_64-pkgconf | |
mingw-w64-clang-x86_64-qt6-base | |
mingw-w64-clang-x86_64-qt6-svg | |
mingw-w64-clang-x86_64-qt6-tools | |
mingw-w64-clang-x86_64-qt6-translations | |
mingw-w64-clang-x86_64-cxxopts | |
- name: Build KF6 dependencies | |
shell: msys2 {0} | |
run: | | |
cd "$GITHUB_WORKSPACE/msys2-packages/mingw-w64-extra-cmake-modules-qt6" | |
makepkg-mingw --cleanbuild --syncdeps --force --noconfirm --install | |
cd "$GITHUB_WORKSPACE/msys2-packages/mingw-w64-kwidgetsaddons-qt6" | |
makepkg-mingw --cleanbuild --syncdeps --force --noconfirm --install | |
- name: Generate C++/WinRT headers | |
shell: msys2 {0} | |
run: | | |
cppwinrt -input sdk -output /clang64/include | |
- name: Add GCC problem matcher | |
uses: ammaraskar/gcc-problem-matcher@master | |
- name: Build with LLVM MinGW toolchain | |
shell: msys2 {0} | |
run: | | |
set -e -o pipefail | |
echo '::group::Configuring CMake' | |
cmake -S . --preset base -D TREMOTESF_QT6=ON | |
echo '::endgroup' | |
echo '::group::Building Debug' | |
cmake --build --preset base-debug | |
echo '::endgroup' | |
echo '::group::Testing Debug' | |
ctest --preset base-debug | |
echo '::endgroup' | |
echo '::group::Building Release' | |
cmake --build --preset base-release | |
echo '::endgroup' | |
echo '::group::Testing Release' | |
ctest --preset base-release | |
echo '::endgroup' | |
build-macos: | |
uses: ./.github/workflows/build-macos.yml | |
reuse-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
- name: Check REUSE compliance | |
run: | | |
sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --assume-yes install pipx | |
pipx run reuse lint |