Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for testing on embedded distributions #8

Merged
merged 22 commits into from
Feb 27, 2024

Conversation

tomeon
Copy link
Collaborator

@tomeon tomeon commented Feb 24, 2024

Plus a smattering of other features and fixes.

Summary:

  1. Add support for running LibreELEC under Vagrant. This includes tooling for building a custom Vagrant box for LibreELEC guests, plus a Vagrant plugin defining the LibreELEC guest type.
  2. Add support for running OSMC under Vagrant. This includes tooling for building a custom Vagrant box for OSMC guests, but does not include any Vagrant plugin: OSMC is based on Debian, which already has a suitable Vagrant guest plugin.
  3. Add support for Alpine Linux to the Ansible role, add an Alpine Linux Vagrant guest, and add Alpine Linux to the list of distributions tested in the GitHub Actions workflow.
  4. Add a contributing guide with information on development tooling.
  5. Use the wait_for module (which is for waiting for a particular host) instead of the pause module (which is for pausing Ansible's execution).
  6. Use root as kodi_user on LibreELEC,
  7. Ensure all groups in kodi_groups exist.
  8. Use the service module rather than using the systemd module, and begin migration to using kodi_service rather than kodi_systemd_service. Alpine, among other distribution, does not use systemd for service supervision and management.
  9. Add a Nix flake that provides, among other things, the tooling required to build LibreELEC and OSMC Vagrant boxes and to run Vagrant guests based on those boxes.

Thank you for your consideration!

for compatibility with systems that implement Kodi services (e.g.
Alpine) but that do not use systemd.
as `kodi_service` is more generic and accurate (for instance, Alpine
Linux provides a Kodi service, but it uses OpenRC rather than systemd).

BREAKING CHANGE: if calling code defines both
`kodi_service` and `kodi_systemd_service`, or calling code defines
`kodi_systemd_service` and the target hosts include Alpine, LibreELEC,
or OSMC machines, *and* the values of `kodi_service` and
`kodi_systemd_service` differ, then a fatal error will be raised.
Previously, `kodi_service` would have been ignored.
as `pause` pauses playbook execution and incompatible with the `free`
strategy, while `wait_for` is per-host (desirable since we are waiting
for Kodi to start on a particular host, not just waiting in general) and
*is* compatible with the `free` strategy.
as not all guests have `rsync` installed.
by setting `DEBIAN_FRONTEND=1` interactive and by automatically
selecting a `tzdata` "Area" and "Zone".  Additionally, pass
`--no-install-recommends` to `apt install` to cut down on the number of
packages installed (and therefore cut down on the occasion to issue any
interactive prompts).
for running GitHub Actions jobs locally.
when creating the groups specified in `kodi_groups`.
as the relevant service supervision/management solution (e.g. OpenRC in
Alpine) may not be running (or runnable!) inside a container.
@tomeon tomeon force-pushed the embedded-distro-tests branch 2 times, most recently from 74e1ab8 to 953b8b2 Compare February 25, 2024 17:04
via a `.gitattributes` file that marks those with the `export-ignore`
property (thus excluding them from `git archive` archives, which is how
Ansible Galaxy creates/distributes roles).
@tomeon tomeon force-pushed the embedded-distro-tests branch from 953b8b2 to 64f7bca Compare February 25, 2024 17:06
@jose1711 jose1711 merged commit d0d06dd into jose1711:master Feb 27, 2024
0 of 6 checks passed
@jose1711
Copy link
Owner

Thank you!

@tomeon tomeon deleted the embedded-distro-tests branch February 27, 2024 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants