Commit Graph

12 Commits

Author SHA1 Message Date
Marco Nenciarini
883ba6aa24
fix: use wheel-based build to fix bytecode staleness
The sidecar uses a read-only filesystem which prevents Python from
creating bytecode at runtime. The previous approach pre-compiled
bytecode in a separate base image, but timestamps were corrupted
when files were copied between Docker stages, causing Python to
mark the bytecode as stale and recompile on every invocation.

This change builds Python dependencies as wheels in a pythonbuilder
stage using BuildKit cache mounts, then installs them in the final
python:3.13-slim-trixie stage using a bind mount. Wheels include
pre-compiled bytecode with correct timestamps. The bind mount keeps
wheels out of final layers, and the distroless complexity is
eliminated.

After wheel installation, we run compileall to ensure all Python
bytecode is freshly compiled with correct timestamps, preventing
any stale bytecode from remaining in the final image.

The separate barmanbase image, its workflow, and related Renovate
configuration are no longer needed and have been removed.

Closes #711
Closes #735

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-28 19:45:38 +01:00
Marco Nenciarini
5bc006b035
ci(e2e): pin emulator versions and fix Azurite compatibility (#725)
Some checks failed
release-please / release-please (push) Failing after 2s
Pin all e2e test emulator images to specific SHA256 digests to ensure
immutability and prevent unexpected breakage from upstream changes.

The three emulators (Azurite for Azure, MinIO for S3, and
fake-gcs-server for GCS) were previously using the :latest tag, which
could cause test failures when new versions with breaking changes or
bugs were released.

Using SHA256 digests instead of version tags provides immutability
(ensures we always pull the exact same image), transparency (easy to
verify what's running via digest comparison), and Renovate compatibility
(can still track and propose updates). All pinned SHAs match the current
:latest tag, confirming we're using the same images that were previously
tested.

Updated Renovate configuration to track digest-based updates while
preserving version information in comments for human readability. Fixed
Renovate to scan test directories and handle multi-line regex patterns
for .go files.

Also fixed Azurite compatibility issue by adding the
--skipApiVersionCheck flag. Tests were failing because the PostgreSQL
container images install Python dependencies without version pinning,
which resulted in azure-storage-blob 12.28.0 (released January 6, 2026)
being installed. This version uses API version 2026-02-06 which Azurite
3.35.0 doesn't support yet. The flag allows Azurite to accept any API
version in the test environment.

Note that MinIO is now in maintenance mode and will not receive further
updates, but it has been included for completeness.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-13 09:54:30 +01:00
Marco Nenciarini
97920a529a
ci(renovate): fix plugin-barman-cloud-base image updates (#578)
Closes #576

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-10-08 16:57:56 +02:00
renovate[bot]
0f9bba392c
chore(config): migrate config renovate.json5 (#332)
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 09:13:13 +02:00
Jonathan Gonzalez V.
99561db720
ci: ignore go.mod inside dagger directory (#315)
We should ignore the go.mod files in renovate that are inside the
dagger directory, these go.mod files should be updated using
the proper `dagger update` command

Closes #305

Signed-off-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
2025-05-06 12:09:24 +02:00
Marco Nenciarini
f1b53c952d
chore: use yarn lockfile instead of npm one (#314)
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Co-authored-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
2025-05-06 12:08:25 +02:00
Francesco Canovai
c37047029d
docs: generate pure markdown documentation (#251)
Switch to building documentation in markdown, avoiding the
markdown+html hybrid we have.

Closes #250

Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
2025-04-17 14:19:35 +02:00
Francesco Canovai
51e4dc00ab
chore: update sidecar Dockerfile to use renovate (#135)
Rework the Dockerfile to list Python dependencies.
Those can be updated using renovate.

Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Co-authored-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
2025-02-04 17:47:02 +01:00
Francesco Canovai
34850f2656 chore: exclude dagger e2e module from renovate
Avoid automatic update of dagger module go.mod. It should be updated on
dagger updates.

Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
2025-01-29 11:52:19 +01:00
Francesco Canovai
67d73942ae
chore: group sagikazarmark/daggerverse deps in renovate (#119)
Group all the dagger modules coming from the sagikazarmark/daggerverse
repo in a single renovate PR. This prevents single commits in that repo
to cause multiple PRs in this one.

Closes #118

Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
2024-12-17 14:37:55 +01:00
Jonathan Gonzalez V.
4e66d79fdb
chore: limit renovate PRs and rebases (#56)
Limit the amount of PRs opened by renovate and also do not auto
rebase the PRs to avoid consuming all the GitHub Runners

Signed-off-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
2024-12-06 12:36:00 +01:00
renovate[bot]
607e6265cc
ci: configure renovate (#1)
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
2024-09-26 17:29:28 +02:00