This repository holds workflows and configurations for building OwnTone Debian packages and for updating the Raspberry Pi repository.
Leveraging the magic of Github Actions the workflows can:
-
Create pbuilder images for various distributions and architechtures, and use these to build OwnTone Debian packages by getting the source, using the Debian config in owntone-server/debian and then invoking pdebuild to cross-compile.
-
Update the repository with the new packages using reprepro.
- Edit VER and COMMIT in
pkginfo. - Trigger the
create_dpkg.ymlworkflow, and select the targets you want to build for. When the workflow is complete, check that it has produced artifacts with the expected .deb files. - Trigger
update_repo_rpi.yml. This will load repository data from the latest release (revision), update with packages from the latestcreate_dpkg.yml, and create a new Github release of the repository with assets for publishing. The packages will have been signed using theRPI_REPO_SECKEYGitHub secret.
- Add new distro/arch to
create_dpkg.yml - Add new distro/arch to
update_repo_rpi.yml - Edit
repo/rpi/conf/distributionsandrepo/rpi/conf/incoming. - Commit and push changes.
[extract keys into ~/.gnupg]
$> keyid=$(gpg --list-secret-keys --with-colons | \
grep -E "^sec:" | \
cut -d: -f5) # or specify manually
$> creation_time=$(gpg \
--list-keys \
--with-colons \
--fixed-list-mode "$keyid" | \
grep -E '^[sp]ub:' | \
cut -d: -f6 | \
sort -n | \
tail -1)
$> gpg \
--faked-system-time="$(( creation_time + 1 ))\!" \
--cert-digest-algo SHA256 \
--edit-key "$keyid"
gpg> key 1
gpg> expire
gpg> key 0
gpg> expire
gpg> save
This was made with the help of these great guides/resources: