Commit Graph

6 Commits

Author SHA1 Message Date
Thomas Eizinger
4d95b813bd ci(apt): import packages one by one (#10938)
When importing packages into the APT repository, we need to do so
one-by-one. Moving packages using a glob-pattern confuses the CLI
because it wants to overwrite files it just created.

Current main:
https://github.com/firezone/firezone/actions/runs/19619491316/job/56177170625
This PR:
https://github.com/firezone/firezone/actions/runs/19619725967/job/56177805109
2025-11-24 15:53:27 +00:00
Thomas Eizinger
49b7701536 ci: promote preview .deb to stable on release (#10846)
The current CI job expects the release to have the `.deb` files
attached. Since writing that workflow, I've changed my mind on attaching
the `.deb` files there. Instead, they are only uploaded to the
repository. Without documentation on how to use them, these `.deb` files
are unlikely to provide a good user experience.

We change the job to instead promote the latest "preview` archives to
the stable repo.
2025-11-10 19:57:02 +00:00
Thomas Eizinger
28ea0730b6 feat(apt): import .deb files from import- directory (#10694)
Currently, the `sync-apt.sh` script just generates metadata for all
packages found in the `.deb` directory. Unfortunately, this requires the
packages to already be uploaded with a certain naming convention,
otherwise `apt-ftparchive packages` doesn't actually detect them and
creates an empty `Packages` file.

The solution here is to extend the `sync-apt.sh` script to normalize the
filename to what we need it to be. This requires us to upload the new
`.deb` files to the `pool` directory. Instead of messing around with the
existing files in there, we slightly change how the `sync-apt.sh` script
works.

In its new version, it expects packages to be in the `import-stable` and
`import-preview` directories. It will then download these, normalize
their names and move them to a local `pool-stable` and `pool-preview`
directory respectively (potentially overwriting and existing one that is
already there, this allows for updating packages).

As a final step, it will generate the metadata for all packages in
`pool-stable` and `pool-preview`, upload both directories, upload the
metadata and then delete the imported `.deb` files.
2025-10-23 10:09:07 +00:00
Thomas Eizinger
883d95c2c8 feat(apt): sign contents of APT repository (#10688)
In order to secure an APT repository, the `Release` file containing the
hashes of all packages needs to be signed with a GPG key. These
signatures simply need to be synced back up to the repository. The rest
is handled by `apt` itself.

Resolves: #10599
2025-10-22 23:44:48 +00:00
Thomas Eizinger
2026d08aea chore(apt): introduce stable and preview distributions (#10679)
In order to distribute pre-releases, it is useful to have a `preview`
distribution in addition to the `stable` one.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2025-10-22 12:11:33 +00:00
Thomas Eizinger
7e5ec7c2d7 ci: upload .deb from releases to APT repository (#10587)
This PR creates the necessary CI infrastructure to copy `.deb` packages
from releases to our APT repository. Re-generation of the index is
separated out into a dedicated workflow to avoid concurrency issues and
so we can re-generate it without making a release.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-16 19:39:35 +00:00