cleanups
This commit is contained in:
1 parent
fb5f01d291
commit
7168bc4683
10 files changed
+370
-72
No files matched your search
@@ -219,6 +219,9 @@ POLL_INTERVAL=300
|
||||
PACKAGE_RELEASE=auto
|
||||
MAX_GLIBC_VERSION=2.34
|
||||
RUN_LINUX_TESTS=1
|
||||
RELEASE_RETENTION=10
|
||||
PACKAGE_RETENTION=10
|
||||
CLEAN_BUILD_CACHE=1
|
||||
|
||||
OPNSENSE_ABI=26.7
|
||||
OPNSENSE_RETENTION=10
|
||||
@@ -231,6 +234,12 @@ APPLY_FREEBSD_PATCHES=1
|
||||
|
||||
`RUN_LINUX_TESTS=1` jest domyślne. Testy są bramką tylko dla DEB/RPM/SUSE i nie wpływają na gałąź OPNsense. Ustaw `0`, jeśli chcesz całkowicie pominąć testy Linux.
|
||||
|
||||
`PACKAGE_RETENTION=10` zachowuje ostatnie 10 wersji **osobno dla RustProxy i Docker Agenta** w każdym kanale Linux: DEB, RHEL/DNF RPM i SUSE RPM. Oznacza to do 10 kompletnych wersji obu produktów, a nie 10 plików łącznie.
|
||||
|
||||
`RELEASE_RETENTION=10` zachowuje 10 najnowszych atomowych snapshotów `data/repository/releases/`. Aktualnie serwowany snapshot jest zawsze chroniony przed usunięciem.
|
||||
|
||||
`CLEAN_BUILD_CACHE=1` powoduje usunięcie `cargo target` oraz cache kompilacji Go po każdym pełnym cyklu budowania. `CARGO_TARGET_DIR` i `GOCACHE` znajdują się pod `/tmp/rust-package-builder`, więc duże artefakty kompilacji nie trafiają już do trwałego `data/`. Ustaw `0`, jeśli świadomie chcesz zachować te cache pomiędzy buildami w działającym kontenerze.
|
||||
|
||||
`OPNSENSE_RETENTION=10` zachowuje ostatnie 10 wersji pakietu dla danej serii/architektury OPNsense. `0` wyłącza usuwanie starych wersji.
|
||||
|
||||
`FREEBSD_NATIVE_ENABLED=1` (domyślnie) włącza natywny pakiet FreeBSD i oddzielny kanał publikacji. `0` wyłącza budowanie natywnego FreeBSD. **Uwaga przy aktualizacji:** istniejący plik `.env` z `FREEBSD_NATIVE_ENABLED=0` ma pierwszeństwo przed nową wartością domyślną — zmień go ręcznie na `1`, inaczej pakiet FreeBSD nadal nie powstanie. `FREEBSD_NATIVE_RETENTION=10` ogranicza liczbę zachowanych wersji. Repo używa tego samego publicznego hosta/portu co OPNsense, ale pod oddzielnym prefiksem `OPNSENSE_REPOSITORY_URL/freebsd/`.
|
||||
@@ -365,7 +374,7 @@ Testy integracyjne są dostępne w pełnym repozytorium developerskim.
|
||||
```text
|
||||
data/
|
||||
├── aptly/
|
||||
├── cargo/
|
||||
├── cargo/ # registry/git cache; bez target/
|
||||
├── packages/
|
||||
│ ├── deb/
|
||||
│ └── rpm/x86_64/
|
||||
@@ -417,17 +426,17 @@ Jeżeli istnieje starsze `last_commit` oraz poprawne APT/RPM dla tego SHA, zosta
|
||||
|
||||
The OPNsense branch reuses the Cargo package `VERSION` already detected by the main build pipeline. If `apply-freebsd-patches.sh` is run manually, it falls back to `RUST_PROXY_PYTHON` (`/usr/bin/python3.11`) so Rocky Linux 9's default Python 3.9 does not cause a missing `tomllib` error.
|
||||
|
||||
### Czyszczenie cache Cargo
|
||||
### Czyszczenie danych po kompilacji i retencja
|
||||
|
||||
Po **udanym opublikowaniu pakietów** każdej gałęzi (Linux/OPNsense/FreeBSD native) builder
|
||||
usuwa `target/**/incremental` i `target/debug`, a także pliki starsze
|
||||
niż 30 dni z `target/release/deps` oraz
|
||||
`target/x86_64-unknown-freebsd/release/deps`. Zachowuje aktualne artefakty
|
||||
release, fingerprinty oraz cache zależności, więc kolejne buildy nie startują
|
||||
od zera. Starsze usunięte zależności mogą wymagać pojedynczej rekompilacji.
|
||||
Builder nie zapisuje już `cargo target` w `data/cargo/target` ani `GOCACHE` w `data/go/cache`. Rejestr Cargo/cache Git oraz pobrane moduły Go mogą pozostać w `data/`, ale duże artefakty kompilacji trafiają pod `/tmp/rust-package-builder/`. Przy `CLEAN_BUILD_CACHE=1` (domyślnie) są usuwane po każdym cyklu, także gdy jedna z gałęzi zakończy się błędem. Workspace źródła i pliki pośrednie również są tworzone pod `/tmp/rust-package-builder/work` i standardowo usuwane po cyklu.
|
||||
|
||||
Ustawienia środowiskowe: `CLEAN_TARGET_AFTER_BUILD=0` wyłącza czyszczenie;
|
||||
`TARGET_CACHE_MAX_AGE_DAYS=30` określa wiek nieużywanych plików.
|
||||
Przy starcie builder automatycznie usuwa pozostałości po starszych wydaniach: `data/cargo/target`, `data/go/cache` oraz stare katalogi w `data/work/`. Dzięki temu aktualizacja buildera odzyskuje miejsce bez ręcznego czyszczenia.
|
||||
|
||||
Retencja Linux jest kontrolowana przez `PACKAGE_RETENTION=10`: osobno zachowywane jest 10 DEB RustProxy, 10 DEB Docker Agenta, 10 RHEL RPM każdego produktu i 10 SUSE RPM każdego produktu. Po zmianie zestawu DEB lokalne repo Aptly jest synchronizowane z zachowanymi paczkami, stare snapshoty Aptly są usuwane, a `aptly db cleanup` zwalnia nieużywane obiekty.
|
||||
|
||||
`RELEASE_RETENTION=10` ogranicza liczbę atomowych katalogów `repository/releases`. Kolejne snapshoty korzystają z hardlinków do niezmienionych plików poprzedniego wydania, więc te same RPM-y i dane repozytorium nie są fizycznie kopiowane przy każdym buildzie.
|
||||
|
||||
Retencja OPNsense (`OPNSENSE_RETENTION=10`) i natywnego FreeBSD (`FREEBSD_NATIVE_RETENTION=10`) pozostaje niezależna.
|
||||
|
||||
|
||||
## RustProxy 0.34.x: plik `--config` i miękki reload
|
||||
|
||||
Reference in new issue
Block a user