Skip to content

Update translations #1297

Update translations

Update translations #1297

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:39', 'fedora:40', 'opensuse/tumbleweed:latest']
compiler: ['gcc', 'clang']
exclude:
- container-image: 'opensuse/tumbleweed:latest'
compiler: clang
runs-on: ubuntu-latest
container: ${{ startsWith(matrix.container-image, 'fedora') && 'registry.fedoraproject.org' || 'registry.opensuse.org' }}/${{ 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: |
cmd='dnf -y --setopt=install_weak_deps=False install'
echo "INSTALL_PACKAGES=$cmd" >> "$GITHUB_ENV"
echo "INSTALL_LOCAL_PACKAGES=$cmd" >> "$GITHUB_ENV"
- name: Set packages install command for zypper
if: startsWith(matrix.container-image, 'opensuse')
run: |
cmd='zypper --non-interactive in --no-recommends --details'
echo "INSTALL_PACKAGES=$cmd" >> "$GITHUB_ENV"
echo "INSTALL_LOCAL_PACKAGES=$cmd --allow-unsigned-rpm" >> "$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: Install build dependencies
run: |
readarray -t dependencies < <(rpmspec ${{steps.fedora-compiler.outputs.rpm-macro}} -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}} -bb packaging/rpm/tremotesf.spec
- name: Install RPM
run: |
${{env.INSTALL_LOCAL_PACKAGES}} "$(rpm --eval='%_rpmdir')"/*/*.rpm
build-deb:
strategy:
fail-fast: false
matrix:
container-image: ['debian:12', 'ubuntu:24.04']
runs-on: ubuntu-latest
container: docker.io/library/${{ 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
- name: Install DEB
run: |
DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --assume-yes install ../*.deb
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: 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
mingw-w64-clang-x86_64-kwidgetsaddons
- 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 -D TREMOTESF_WITH_HTTPLIB=bundled
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