jellyfin/deployment
Joshua M. Boniface c0d10800ab
Merge pull request #1925 from joshuaboniface/integrate-web-build-debuntu
Integrate web build into Debuntu package build steps
2019-11-19 01:37:38 -05:00
..
centos-package-x64 REVERT-ME Update to .NET 3.0 2019-11-02 01:17:12 -04:00
debian-package-arm64 Clean up debian-arm64 build steps 2019-10-20 12:59:52 -04:00
debian-package-armhf Clean up debian-armhf build steps 2019-10-20 13:00:14 -04:00
debian-package-x64 Move web-build into Debian build rules 2019-10-20 12:58:10 -04:00
fedora-package-x64 Update path of SOS readme 2019-11-02 01:34:43 -04:00
linux-x64 Remove redundant yarn build command 2019-09-26 22:09:19 -04:00
macos Remove redundant yarn build command 2019-09-26 22:09:19 -04:00
portable Properly build DLL for porable 2019-09-30 01:11:11 -04:00
ubuntu-package-arm64 Clean up ubuntu-arm64 build steps 2019-10-20 13:01:44 -04:00
ubuntu-package-armhf Clean up ubuntu-armhf build steps 2019-10-20 13:01:52 -04:00
ubuntu-package-x64 Clean up ubuntu-x64 build steps 2019-10-20 13:00:38 -04:00
unraid/docker-templates Fix directory capitalization 2019-04-11 04:00:46 +09:30
win-x64 Updating win-x64 build NSSM address 2019-10-28 22:09:46 -07:00
win-x86 updates win32 build script with nssm mirror 2019-10-28 22:10:36 -07:00
windows Merge pull request #1903 from anthonylavado/nsis-update 2019-11-03 14:36:56 -05:00
README.md Clean up deployment directory 2019-09-25 01:28:07 -04:00

Jellyfin Packaging

This directory contains the packaging configuration of Jellyfin for multiple platforms. The specification is below; all package platforms must follow the specification to be compatable with the central build script.

Package List

Operating System Packages

  • debian-package-x64: Package for Debian and Ubuntu amd64 systems.
  • fedora-package-x64: Package for Fedora, CentOS, and Red Hat Enterprise Linux amd64 systems.

Portable Builds (archives)

  • linux-x64: Portable binary archive for generic Linux amd64 systems.
  • macos: Portable binary archive for MacOS amd64 systems.
  • win-x64: Portable binary archive for Windows amd64 systems.
  • win-x86: Portable binary archive for Windows i386 systems.

Other Builds

These builds are not necessarily run from the build script, but are present for other platforms.

  • portable: Compiled .dll for use with .NET Core runtime on any system.
  • docker: Docker manifests for auto-publishing.
  • unraid: unRaid Docker template; not built by build but imported into unRaid directly.
  • windows: Support files and scripts for Windows CI build.

Package Specification

Dependencies

  • If a platform requires additional build dependencies, the required binary names, i.e. to validate which <binary>, should be specified in a dependencies.txt file inside the platform directory.

  • Each dependency should be present on its own line.

Action Scripts

  • Actions are defined in BASH scripts with the name <action>.sh within the platform directory.

  • The list of valid actions are:

    1. build: Builds a set of binaries.
    2. package: Assembles the compiled binaries into a package.
    3. sign: Performs signing actions on a package.
    4. publish: Performs a publishing action for a package.
    5. clean: Cleans up any artifacts from the previous actions.
  • All package actions are optional, however at least one should generate output files, and any that do should contain a clean action.

  • Actions are executed in the order specified above, and later actions may depend on former actions.

  • Actions except for clean should set -o errexit to terminate on failed actions.

  • The clean action should always exit 0 even if no work is done or it fails.

  • The clean action can be passed a variable as argument 1, named keep_artifacts, containing either the value y or n. It is indended to handle situations when the user runs build --keep-artifacts and should be handled intelligently. Usually, this is used to preserve Docker images while still removing temporary directories.

Output Files

  • Upon completion of the defined actions, at least one output file must be created in the <platform>/pkg-dist directory.

  • Output files will be moved to the directory jellyfin-build/<platform> one directory above the repository root upon completion.