Skip to content

Automated component updates #205

@ghost

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:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions