Commit Graph

33 Commits

Author SHA1 Message Date
Igor Pecovnik
95baded3b2
fix signing issues 2026-01-12 08:39:04 +01:00
Igor Pecovnik
997a4e9ea5
Re-start seqential RFC 2026-01-12 00:42:30 +01:00
Igor Pecovnik
d10295ad8c
Create timestamped snapshots 2026-01-11 22:31:05 +01:00
Igor Pecovnik
492e431131
Logging 2026-01-11 22:14:16 +01:00
Igor Pecovnik
a6c9b99509
Fix 2026-01-11 22:05:17 +01:00
Igor Pecovnik
e1f55e5d7a
fix 2026-01-11 21:57:31 +01:00
Igor Pecovnik
92052384aa
Drop snapshots 2026-01-11 21:57:31 +01:00
Igor Pecovnik
80ebbe24b6
fix: ensure all components are always published with fresh snapshots
Fixes an issue where subsequent repository runs would fail with 404 errors
for Release files when no new packages were added. The problem was that
snapshots were only created conditionally, leading to missing components
in the published repository.

Changes:
- update_main: always drop and recreate common snapshot (remove check that
  prevented updates if snapshot was already published)
- process_release: always create utils/desktop snapshots even if repos are
  empty, ensuring all components are included in publish
- merge_repos: always create snapshots for all repos and create repos if
  they don't exist, preventing missing components on merge

This ensures the repository structure is complete on every run, regardless
of whether new packages are added.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-11 10:39:02 +01:00
Igor Pecovnik
63fe441107
fix: always publish main component even if utils/desktop are empty
This fixes the case where repositories like debs-beta only have packages
in the main/common component (e.g., sid with only kernel packages).
Previously, the merge command would skip publishing if both utils and
desktop repos were empty, resulting in an incomplete repository.

Now we always publish at minimum the main/common component, ensuring all
distributions with any packages get properly published.
2026-01-11 09:30:49 +01:00
Igor Pecovnik
72ec2b171b
feat: implement parallel repository management workflow
This commit implements a complete parallel repository management system
that allows building and publishing Debian repositories in parallel,
significantly reducing build time for multiple distributions.

- `update-main`: Builds common/main component once for all releases
- `update -R <release>`: Builds release-specific components in isolated DBs
- `merge`: Combines common + release-specific components into final repos

- Isolated databases (aptly-isolated-<release>) avoid locking during parallel builds
- Common component built once, not duplicated per release
- Release-specific components (utils, desktop) built independently
- Final merge combines all components with proper GPG signing

- Fixed GPG signing to target top-level Release files (dists/{release}/Release)
- Pool cleanup before publishing avoids "file already exists" errors
- Smart package import skips duplicates during merge
- Proper handling of empty repositories and missing components
- Improved error handling and logging throughout

1. update-main: Build common component (once)
2. update -R <release>: Parallel workers build release-specific components
3. merge: Combine all components and publish with GPG signatures

This enables GitHub Actions to run multiple release builders in parallel,
reducing total repository build time from hours to minutes.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-11 00:19:28 +01:00
Igor
43c7710bfd
tools/repository/extract-repo.sh: simplify extraction by copying directly from pool (#9174)
* tools/repository/extract-repo.sh: simplify extraction by copying directly from pool

Remove dependency on Packages index files. Instead of parsing package metadata
to find file locations, directly scan the pool/ directory structure and copy all
.deb files found in each component subdirectory.

This simplifies the code and makes it more robust since it doesn't rely on
index files being present or correctly formatted.

Signed-off-by: Igor Pecovnik <igor@armbian.com>

* Add helper script: recursively clean Armbian Debian package artifacts

* Update tools/repository/cleanup-debs.sh

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Signed-off-by: Igor Pecovnik <igor@armbian.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-08 12:23:40 +01:00
Igor Pecovnik
6d2d2e97a8 Fix repository management script for parallel execution
- Remove redundant run_cmd function, use run_aptly consistently
- Include EOS releases in repository processing (remove -ve 'eos' filter)
- Fix showall command to auto-discover repos from isolated databases
- Fix source file preservation in parallel mode (keep sources for workers)
- Fix snapshot management to handle published snapshots correctly
- Fix drop_unsupported_releases to only drop unsupported, not all repos
- Remove isolated DB cleanup that caused data loss on each run
- Remove inappropriate sudo usage from html and date commands
- Enable FORCE_PUBLISH by default for better workflow
- Improve common snapshot creation in isolated mode
- Add isolated database support to showall function

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-05 01:48:26 +01:00
Igor Pecovnik
e70fab2a19 Revert few Rabbit's suggestions that broke repository management 2026-01-02 20:46:16 +01:00
Igor
4bba1d3c5e
Repo tools: add parallel repository generation support (#9150)
**Repository tools: enable parallel repo generation and refactor repo.sh**

Add support for parallel repository generation using GitHub Actions, allowing
multiple workers to build different releases concurrently without database
locking conflicts.

### Highlights
- Add `-R/--single-release`, `update-main`, and `merge` for CI-level parallelism
- Use isolated per-release databases; remove local `-j/--parallel-jobs`
- Sign all Release files; optimize signing order
- Add `extract-repo.sh` for extracting and reorganizing packages from repositories
- Replace file-based logging with syslog (`logger`), removing sudo requirement
- Improve error handling, signing logic, and robustness
- Refactor repo.sh for better readability and documentation
- Apply CodeRabbit-recommended fixes

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-02 16:48:06 +01:00
Jianfeng Liu
f17caa7104 repo: add loong64 support 2025-08-05 15:12:06 +02:00
Igor
028cdb9c39
Repository signing: add support for dual signing (#8320)
* Repository signing: add support for dual signing
2025-06-23 17:25:48 +02:00
Igor Pecovnik
0999ebfd69 Repository management: disable broken and not needed functionality Acquire-By-Hash
- faster repo generation
- cleaner repository
2024-12-13 11:46:07 +01:00
Igor Pecovnik
9041c08979 Implement config driven BSP package modification to set last good kernel for a single device
This will prevent upgrading to higher kernels which are known to be broken.
2024-08-24 15:36:19 +02:00
Igor Pecovnik
c91668e645 Cosmetic fix: do not show repository keys that doesn't exits 2024-08-03 17:51:52 +02:00
Igor Pecovnik
c958cdc684 Repo management: drop unused component 2024-08-03 16:09:15 +02:00
Igor Pecovnik
239f3a5dc3 Repo management: rework to increase reliability and speed
- introduce common repo so we only add packages once
- publish via snapshots to increase reliability
- overwrite packages in case of conflicts
2024-07-25 16:42:23 +02:00
Igor Pecovnik
ae469d6503 Change the way repository is getting updated 2024-05-10 13:25:27 +01:00
Igor Pecovnik
abd4f458cc Unset hardcoded defaults from repo management tool 2024-03-07 12:09:29 +01:00
Igor Pecovnik
2da50b4172 Drop repository for unsupported Releases 2024-03-02 15:05:09 +01:00
Igor Pecovnik
39ee6545d9 Repository management - change control filename 2023-09-17 09:25:34 +02:00
Igor
f3736c990a Add functionality to delete packages from a list
Signed-off-by: Igor <igor@armbian.com>
2023-08-18 13:39:24 +02:00
Igor Pecovnik
c2f213a6f6 Internal: repository management will run on same host
Move executing check from the script
2023-08-12 09:59:53 +02:00
Igor
13ed5c0d62 Update repo 2023-08-10 22:43:22 +02:00
Igor
e492d3eeed Improve repository management
Signed-off-by: Igor <igor@armbian.com>
2023-08-10 22:43:22 +02:00
Konstantin Litvinov
8398dd1116
Added Debian 12 Bookworm. (#4740)
* Added Debian 12 Bookworm.

* Link identical

* Make minimal truly minimal again

Move netplan.io to CLI image only

* Add netplan.io to Bullseye standard CLI

Co-authored-by: Konstantin Litvinov <klitvinov@piesoft.us>
Co-authored-by: Igor <igor@armbian.com>
2023-01-26 10:04:17 +01:00
Igor Pečovnik
7684dae801
Address permission issue when cleaning added packages (#4628) 2022-12-31 15:54:39 +01:00
Igor Pečovnik
ff6c515e3f
Add next Ubuntu 23.04 / Lunar lobster (#4625) 2022-12-30 20:59:35 +01:00
Igor Pečovnik
84ca39c83c
Moving repository handling from main script (#4600)
* Moving repository handling from main script

- cleaning
- working

TBD: handling of parameters

* Not needed anymore

* Paramter handling, edit config in mktemp

* Typo

* Improve string handling

* Cleanining

* Compacting

* Change to backslash compatible sed replacement

* Publish all, update selected to avoid having erros at update

* Add support for html index generation

* Bugfix

* More arch

* Don't run publish if there is nothing in the incoming

* Add repo sync control file creation

* Fix hardcoded value
2022-12-23 21:58:06 +01:00