Releases: armbian/configng
Releases · armbian/configng
26.8.0-trunk.162.0612.130428
runner-cleanup: give job-completed hook a .sh extension The GitHub runner validates ACTIONS_RUNNER_HOOK_JOB_COMPLETED and rejects it in the 'Complete runner' step unless the path ends in .sh/.ps1/.js: Error: /usr/local/sbin/runner-job-completed is not a valid path to a script. Make sure it ends in '.sh', '.ps1' or '.js'. Rename runner-job-completed -> runner-job-completed.sh, install it under that name, point the per-runner .env at it, and remove the old extensionless copy from earlier installs. The .env wiring is an idempotent sed, so re-running install migrates existing runners to the new path. Signed-off-by: Igor Pecovnik <igor@armbian.com>
26.8.0-trunk.160.0612.072900
runner-cleanup: chown workspace after each job via JOB_COMPLETED hook Armbian builds run in Docker as root and bind-mount the runner workspace, leaving root-owned files under _work (cache/sources, cache/aptcache, ...). The next job's actions/checkout runs as the runner user and fails to clean the workspace: 'EACCES: permission denied, rmdir .../cache/aptcache/lists'. The runner process runs continuously and doesn't restart between jobs, so systemd start/stop hooks can't fire per-job. GitHub's ACTIONS_RUNNER_HOOK_JOB_COMPLETED does — it runs after every job as the runner user (which has passwordless sudo). Add a runner-job-completed hook that selectively chowns the runner's _work tree back to the runner user (only files not already owned by it), and wire it into every runner's .env during module_armbian_runners install (idempotent; covers existing runners, takes effect on each runner's next restart). Complements the start-of-job selective chown in armbian/actions#23 and is workspace-agnostic (covers any job on the runner, not just those using the runner-clean action). Signed-off-by: Igor Pecovnik <igor@armbian.com>
26.8.0-trunk.160.0612.072848
runner-cleanup: chown workspace after each job via JOB_COMPLETED hook Armbian builds run in Docker as root and bind-mount the runner workspace, leaving root-owned files under _work (cache/sources, cache/aptcache, ...). The next job's actions/checkout runs as the runner user and fails to clean the workspace: 'EACCES: permission denied, rmdir .../cache/aptcache/lists'. The runner process runs continuously and doesn't restart between jobs, so systemd start/stop hooks can't fire per-job. GitHub's ACTIONS_RUNNER_HOOK_JOB_COMPLETED does — it runs after every job as the runner user (which has passwordless sudo). Add a runner-job-completed hook that selectively chowns the runner's _work tree back to the runner user (only files not already owned by it), and wire it into every runner's .env during module_armbian_runners install (idempotent; covers existing runners, takes effect on each runner's next restart). Complements the start-of-job selective chown in armbian/actions#23 and is workspace-agnostic (covers any job on the runner, not just those using the runner-clean action). Signed-off-by: Igor Pecovnik <igor@armbian.com>
26.8.0-trunk.155.0611.205643
runners: make remove work via --api with named params and a range remove was an internal positional helper (remove <name> <index>) and ignored the named gh_token/runner_name/start/stop params, so an --api call like `remove runner_name=ampere-1 start=76 stop=80` operated on a literal runner named "runner_name=ampere-1" and removed nothing. Worse, prefix/registration_url were derived only inside the install branch, so remove/remove_online/purge built a malformed '//actions/runners' URL that matched no runners. - Derive prefix/registration_url before the case so every subcommand reaches the GitHub API. - remove now accepts both the internal positional form and an --api named call with a start..stop range, removing <name>-<index> on GitHub and the matching actions-runner-<index> locally; returns non-zero if any GitHub delete failed (preserves install's skip-if-busy behavior). - purge: pass the index to remove (was dropping it).
26.8.0-trunk.143.0610.201303
`Automatic` documentation update
26.8.0-trunk.142.0610.185504
docs(git_cdn): add GCDN001 help header/footer markdown module_git_cdn (id GCDN001) had a config.software.json entry but no help header/footer markdown. Add them in the APT001 (apt-cacher-ng) style: overview + key features in the header, tabbed access / client config / directories / logs in the footer. Signed-off-by: Igor Pecovnik <igor@armbian.com>
26.8.0-trunk.140.0610.174518
software: tune git_cdn runtime envs (cache size, workers, depth, bundle) Pass the proven git_cdn env vars on container run: - PACK_CACHE_SIZE_GB=500 and GUNICORN_WORKER=12 (exposed as module options; workers otherwise defaults to host cpu_count()) - PACK_CACHE_DEPTH=true to cache shallow clones - CDN_BUNDLE_URL="" to disable the upstream Android/AOSP clone-bundle default, irrelevant for a GitHub proxy Verified every name/value against git_cdn source.
26.8.0-trunk.138.0610.114924
module_aptcacherng: use current ghcr.io/armbian image Replace the abandoned sameersbn/apt-cacher-ng:3.3-20200524 (2020) image with ghcr.io/armbian/apt-cacher-ng:latest, built from debian trixie (apt-cacher-ng 3.7.x) by armbian/docker-armbian-build. This fixes the reliability problems (stale/corrupt indexes, 503s under concurrent load, broken HTTPS repos) that came from the dead 3.3 image. Cache path and foreground run are unchanged, so install/remove/purge/ status all work as before. Author updated to @igorpecovnik since we now build the image. Signed-off-by: Igor Pecovnik <igor@armbian.com>
26.8.0-trunk.125.0608.214111
Add module_aptcacherng: apt-cacher-ng caching proxy
Single-container module wrapping sameersbn/apt-cacher-ng:3.3-20200524.
Caches Debian / Ubuntu .deb downloads on the LAN so each apt fetch from
upstream mirrors only happens once.
Wiring:
- tools/modules/software/module_aptcacherng.sh — install / remove /
purge / status / help, same shape as module_qbittorrent /
module_netbox. Cache lives at ${SOFTWARE_FOLDER}/apt-cacher-ng/cache
so the purge action cleans it up correctly.
- tools/json/config.software.json — APT001 / APT002 / APT003 entries
under Software → Management (next to NetBox), with the standard
install / remove / purge triplet and a container_type=docker hint.
- tools/modules/runtime/config.runtime.sh — runtime URL hook so the
Management menu links straight to the acng-report.html hit-rate page
once the container is installed.
- tools/include/markdown/APT001-header.md + APT001-footer.md — the
per-menu-ID header/footer pair the docs system splices into the
rendered page (same convention as NBOX01 / FIL001).
26.8.0-trunk.121.0608.111447
fix(runners): use valid curl --create-dirs flag curl has no --create-dir option; the correct long form is --create-dirs. Newer curl (Debian trixie, 8.x) rejects the unknown option outright and aborts the runner tarball download, leaving the install with no tarball to unpack. Older curl builds tolerated it. Signed-off-by: Igor Pecovnik <igor@armbian.com>