freedomofpress / dangerzone

Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs
https://dangerzone.rocks/
GNU Affero General Public License v3.0
3.35k stars 152 forks source link

Add CI tests for .deb/.rpm packages that wil be shipped to users #829

Closed apyrgio closed 1 week ago

apyrgio commented 3 weeks ago

Dangerzone has two Git repos which act as mirrors for the Debian and Fedora repos:

Whenever we're doing a Dangerzone release, we add the final .deb and .rpm packages to these repos. Once the CI tests pass (currently a signature check), they become available for installation by our users.

The above procedure does not cover how the developers check that the packages are actually working. As part of our release procedure we have some safeguards:

  1. Our nightly CI tests always build the .deb/.rpm packages and test that they work on each Linux platform (see the build-deb, install-deb, and build-install-rpm jobs in our ci.yml GitHub actions workflow.
  2. As part of the QA process for Dangerzone, we build and install .deb/.rpm packages manually, and perform a series of tests.

Also, while not strictly enforced, we tend to check the produced .rpm/.deb packages in some selected Fedora / Debian systems.

Even with those safeguards, things can go wrong. More specifically, in the previous release we managed to produce Fedora packages with incorrect permissions (see https://github.com/freedomofpress/dangerzone/issues/727). This faulty package was masked by the fact that PySide6 was segfaulting in Fedora, but still, in principle we can make the same mistake again.

apyrgio commented 3 weeks ago

In order to solve this issue, we propose to add CI tests in the apt-tools-prod / yum-tools-prod repos, that do the exact same checks as our build-deb, install-deb, and build-install-rpm jobs in our ci.yml.

The important difference will be that they will operate on the Debian / Fedora packages that we are adding in the PRs. More specifically they will:

If we enforce passing these checks before merging the PRs, we will be much more confident in our subsequent releases.

almet commented 1 week ago

This is now done :-)