Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 179 additions & 15 deletions .github/workflows/package-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
cpio \
dbus-daemon \
desktop-file-utils \
ffmpeg-free \
findutils \
gcc-c++ \
git \
Expand All @@ -59,6 +60,8 @@ jobs:
protobuf-devel \
qt6-linguist \
qt6-qtbase-devel \
qt6-qtdeclarative \
qt6-qtdeclarative-devel \
qt6-rpm-macros \
rpm-build \
rpmlint \
Expand Down Expand Up @@ -155,11 +158,13 @@ jobs:
rpm -V tryx-panorama-manager
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $(tr -d '\r\n' < VERSION)"
ldd /usr/bin/tryx-panorama-manager |
tee "$RUNNER_TEMP/tryx-panorama-manager.ldd"
if grep -q 'not found' "$RUNNER_TEMP/tryx-panorama-manager.ldd"; then
exit 1
fi
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
QT_QPA_PLATFORM=offscreen tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"
Expand Down Expand Up @@ -221,7 +226,21 @@ jobs:
protobuf-compiler \
qmake6 \
qt6-base-dev \
qt6-declarative-dev \
qt6-declarative-dev-tools \
qt6-l10n-tools \
qml6-module-qt-labs-folderlistmodel \
qml6-module-qtqml \
qml6-module-qtqml-models \
qml6-module-qtqml-workerscript \
qml6-module-qtquick \
qml6-module-qtquick-controls \
qml6-module-qtquick-dialogs \
qml6-module-qtquick-layouts \
qml6-module-qtquick-shapes \
qml6-module-qtquick-templates \
qml6-module-qtquick-window \
qml6-module-qttest \
systemd \
systemd-dev \
udev \
Expand Down Expand Up @@ -299,11 +318,13 @@ jobs:
dpkg --verify tryx-panorama-manager
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $(tr -d '\r\n' < VERSION)"
ldd /usr/bin/tryx-panorama-manager |
tee "$RUNNER_TEMP/tryx-panorama-manager.ldd"
if grep -q 'not found' "$RUNNER_TEMP/tryx-panorama-manager.ldd"; then
exit 1
fi
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
QT_QPA_PLATFORM=offscreen tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"
Expand Down Expand Up @@ -352,6 +373,7 @@ jobs:
namcap \
protobuf \
qt6-base \
qt6-declarative \
qt6-tools \
shadow \
systemd
Expand Down Expand Up @@ -424,11 +446,13 @@ jobs:
pacman -Qkk tryx-panorama-manager
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $(tr -d '\r\n' < VERSION)"
ldd /usr/bin/tryx-panorama-manager |
tee "$RUNNER_TEMP/tryx-panorama-manager.ldd"
if grep -q 'not found' "$RUNNER_TEMP/tryx-panorama-manager.ldd"; then
exit 1
fi
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
QT_QPA_PLATFORM=offscreen tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"
Expand All @@ -452,3 +476,143 @@ jobs:
if-no-files-found: error
overwrite: true
retention-days: 7

rpm-runtime-smoke:
name: Clean RPM runtime / Fedora ${{ matrix.fedora }}
needs: rpm
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- fedora: "43"
image: registry.fedoraproject.org/fedora@sha256:b1df059ba84f5ed169e245ee8dfd086925a8eba8e502994840cfe17ed75c6079
- fedora: "44"
image: registry.fedoraproject.org/fedora@sha256:a2383763c3f25bb4fd4f806d5d2d004ca02589c331e5e94235da1289eb7de633
container:
image: ${{ matrix.image }}
defaults:
run:
shell: bash
steps:
- name: Download RPM built in this workflow
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: tryx-rpm-f${{ matrix.fedora }}-${{ github.run_id }}
path: dist

- name: Install only declared runtime dependencies and smoke-test
run: |
set -euo pipefail
rpm_file=$(find dist -maxdepth 1 -type f -name '*.rpm' -print -quit)
test -n "$rpm_file"
dnf install -y \
"https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-${{ matrix.fedora }}.noarch.rpm"
dnf install -y --allowerasing "$rpm_file"
version=$(rpm -q --qf '%{VERSION}' tryx-panorama-manager)
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $version"
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/tryx-no-session-bus \
QT_QPA_PLATFORM=offscreen \
tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"

deb-runtime-smoke:
name: Clean DEB runtime / Ubuntu 24.04
needs: deb
runs-on: ubuntu-24.04
timeout-minutes: 15
container:
image: ubuntu@sha256:52df9b1ee71626e0088f7d400d5c6b5f7bb916f8f0c82b474289a4ece6cf3faf
env:
DEBIAN_FRONTEND: noninteractive
defaults:
run:
shell: bash
steps:
- name: Download DEB built in this workflow
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: tryx-deb-ubuntu24.04-${{ github.run_id }}
path: dist

- name: Install only declared runtime dependencies and smoke-test
run: |
set -euo pipefail
deb_file=$(find dist -maxdepth 1 -type f -name '*.deb' -print -quit)
test -n "$deb_file"
apt-get update
apt-get install -y "./$deb_file"
version=$(dpkg-query -W -f='${Version}' tryx-panorama-manager)
version=${version%%-*}
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $version"
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/tryx-no-session-bus \
QT_QPA_PLATFORM=offscreen \
tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"

arch-runtime-smoke:
name: Clean Arch runtime
needs: arch
runs-on: ubuntu-24.04
timeout-minutes: 15
container:
image: archlinux@sha256:bf0af8920a0e70715207d9c4f463ebac321db72748db2b8a391b639696965d87
defaults:
run:
shell: bash
steps:
- name: Download Arch package built in this workflow
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: tryx-arch-${{ github.run_id }}
path: dist

- name: Install only declared runtime dependencies and smoke-test
run: |
set -euo pipefail
package_file=$(find dist -maxdepth 1 -type f \
-name '*.pkg.tar.zst' -print -quit)
test -n "$package_file"
pacman -Syu --noconfirm
mapfile -t package_dependencies < <(
bsdtar -xOf "$package_file" .PKGINFO |
sed -n 's/^depend = //p'
)
test "${#package_dependencies[@]}" -gt 0
pacman -S --noconfirm --needed "${package_dependencies[@]}"
pacman -U --noconfirm "$package_file"
version=$(pacman -Q tryx-panorama-manager | awk '{print $2}')
version=${version%-*}
test "$(tryx-panorama-manager --version)" = \
"tryx-panorama-manager $version"
for binary in tryx-panorama-manager; do
ldd "/usr/bin/$binary" | tee "$RUNNER_TEMP/$binary.ldd"
if grep -q 'not found' "$RUNNER_TEMP/$binary.ldd"; then
exit 1
fi
done
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/tryx-no-session-bus \
QT_QPA_PLATFORM=offscreen \
tryx-panorama-manager --smoke-test
ffmpeg -hide_banner -encoders \
> "$RUNNER_TEMP/ffmpeg-encoders.txt" 2>&1
grep -qw libx264 "$RUNNER_TEMP/ffmpeg-encoders.txt"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ build.tar.xz
*.so
*.d
Makefile
Makefile.quick
Makefile.runtime
tests/quick/target_wrapper.sh
.qmake.stash
moc_*.cpp
moc_predefs.h
Expand Down
Loading