|
|
před 6 roky | |
|---|---|---|
| .. | ||
| debian-package-x64 | před 6 roky | |
| debian-x64 | před 6 roky | |
| docker | před 6 roky | |
| fedora-package-x64 | před 6 roky | |
| framework | před 6 roky | |
| linux-x64 | před 6 roky | |
| osx-x64 | před 6 roky | |
| ubuntu-x64 | před 6 roky | |
| unraid | před 6 roky | |
| win-generic | před 6 roky | |
| win-x64 | před 6 roky | |
| win-x86 | před 6 roky | |
| README.md | před 6 roky | |
| common.build.sh | před 6 roky | |
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.
debian-package-x64: Package for Debian and Ubuntu amd64 systems.fedora-package-x64: Package for Fedora, CentOS, and Red Hat Enterprise Linux amd64 systems.debian-x64: Portable binary archive for Debian amd64 systems.ubuntu-x64: Portable binary archive for Ubuntu amd64 systems.linux-x64: Portable binary archive for generic Linux amd64 systems.osx-x64: 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.These builds are not necessarily run from the build script, but are present for other platforms.
framework: 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.win-generic: Portable binary for generic Windows systems.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.
Actions are defined in BASH scripts with the name <action>.sh within the platform directory.
The list of valid actions are:
build: Builds a set of binaries.package: Assembles the compiled binaries into a package.sign: Performs signing actions on a package.publish: Performs a publishing action for a package.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.
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.
A number of common functions are defined in deployment/common.build.sh for use by platform scripts.
Each action script should import the common functions to define a number of standard variables.
The common variables are:
ROOT: The Jellyfin repostiory root, usually ../...CONFIG: The .NET config, usually Release.DOTNETRUNTIME: The .NET --runtime value, platform-dependent.OUTPUT_DIR: The intermediate output dir, usually ./dist/jellyfin_${VERSION}.BUILD_CONTEXT: The Docker build context, usually ../...DOCKERFILE: The Dockerfile, usually Dockerfile in the platform directory.IMAGE_TAG: A tag for the built Docker image.PKG_DIR: The final binary output directory for collection, invariably pkg-dist.ARCHIVE_CMD: The compression/archive command for release archives, usually tar -xvzf or zip.get_versionReads the version information from SharedVersion.cs.
Arguments: ROOT
build_jellyfinBuild a standard self-contained binary in the current OS context.
Arguments: ROOT CONFIG DOTNETRUNTIME OUTPUT_DIR
build_jellyfin_dockerBuild a standard self-contained binary in a Docker image.
Arguments: BUILD_CONTEXT DOCKERFILE IMAGE_TAG
clean_jellyfinClean up a build for housekeeping.
Arguments: ROOT CONFIG OUTPUT_DIR PKG_DIR
package_portableProduce a compressed archive.
Arguments: ROOT OUTPUT_DIR PKG_DIR ARCHIVE_CMD