Skip to content

Always activate add torrent dialogs when they are requested over ipc #1047

Always activate add torrent dialogs when they are requested over ipc

Always activate add torrent dialogs when they are requested over ipc #1047

Workflow file for this run

# 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