Added necessary code to create an AppImage for Linux + docker images via nix.
Also add GitHub action logic to check whether the package continues to build via nix, including the AppImage and docker image. Currently limiting code to Linux x86, as this is the only local machine.
The resulting AppImage can then be used on all x86-Linux systems independent of the Distro (see #208). Even on systems with much older glibc versions thanks to the amazing work of ralismark in nix-appimage.
All packages (audible-cli-full, audible-cli-docker, audible-cli-AppImage) include all plugins except audible-cli, which includes none.
Though, it is trivial to pick-and-choose which plugins should be included included by default if desired.
For the decrypt plugin ffmpeg-7-headless is used.
Automation
I have also included a GitHub action automation that ensures that all nix artefacts can be build, that the nix source code is formatted correctly, and that the AppImage can be executed on the ubuntu runner.
It also includes an automation that will add the AppImage to the GitHub release assets section (see https://github.com/kai-tub/audible-cli-appimage/releases/tag/audible-cli-b3adb9 for example).
TODO
[ ] Get feedback :D
[ ] Update README (I will update it once we have a better idea of what to include/exclude from the PR)
[x] Automatically push the docker image to a docker registry when a release is tagged
TL;DR
audible-cli
via nix including all plugins!Trying out nix
On a Linux x86 machine, install
nix
via the upstream installer and enable flake support or use the more popular nix-installer from DeterminateSystems that enables flake support out-of-the-box (recommended).Move to the repository and build the desired artefact via:
One can check the available packages via
nix flake show
and those under thepackages
entry:On an
x86_64-linux
host, the system can be skipped, so to buildaudible-cli-AppImage
runnix build .#audible-cli-AppImage
.All build outputs will be located locally inside of the repository with the name
result
and symbolically linked to the output path in thenix store
.AppImage
The resulting AppImage can then be used on all x86-Linux systems independent of the Distro (see #208). Even on systems with much older glibc versions thanks to the amazing work of ralismark in nix-appimage.
Docker
With little changes, the nix output can also be used to create a LayeredDocker image (see the nix-docker-or-both blog post from numtide and Nix is a better Docker image builder than Docker's image builder from xeiaso for details).
The OCI-Container can be built and executed via
Plugins
All packages (
audible-cli-full
,audible-cli-docker
,audible-cli-AppImage
) include all plugins exceptaudible-cli
, which includes none. Though, it is trivial to pick-and-choose which plugins should be included included by default if desired. For the decrypt pluginffmpeg-7-headless
is used.Automation
I have also included a GitHub action automation that ensures that all nix artefacts can be build, that the nix source code is formatted correctly, and that the AppImage can be executed on the
ubuntu
runner. It also includes an automation that will add theAppImage
to the GitHub release assets section (see https://github.com/kai-tub/audible-cli-appimage/releases/tag/audible-cli-b3adb9 for example).TODO