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:
Add an automated update system for Endless OS specific components.
The recommended method is to add a CI job which runs
bst trackon 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 buildtwice 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_refsjob.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.ymlfile
in the
daily_update_elementsandweekly_update_elementsjobs.The elements to be automatically tracked are defined in: