-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Add an automated update system for Endless OS specific components.
The recommended method is to add a CI job which runs bst track on your elements and, when it detects changes, opens a PR with the updates. You can run the CI job ~nightly, trigger it manually, and maybe even trigger it whenever a change lands in the 'main' branches of Endless-specific elements.
The PR-based approach is recommended because all component updates go through CI, so you can catch any bad changes before they hit eos-build-meta's 'main' branch. Running bst build twice on the same commit of eos-build-meta will always build exactly the same thing, as the exact refs are still written in the elements.
Context: #194 (comment)
GNOME OS and Freedesktop SDK already do this, here's some details on the existing approaches
gnome-build-meta updater
The GNOME auto-updater is implemented via a "Nightly track refs" entry in their
Gitlab CI Schedules. The .gitlab-ci.yml file defines an update_refs job.
The update is generated by .gitlab-ci/scripts/update-refs.py, a short Python script which hardcodes the logic to find which elements to track.
You could fairly simply adapt the script for Endless OS.
Freedesktop SDK updater
Freedesktop SDK's auto-updater is implemented in their .gitlab-ci.yml
file
in the daily_update_elements and weekly_update_elements jobs.
The elements to be automatically tracked are defined in:
- track-elements.bst (for the daily job)
- track-elements-weekly.bst (for the weekly job)