build.windows.amd64 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. #= Windows 7+ amd64 (x64) .zip
  3. set -o errexit
  4. set -o xtrace
  5. # Version variables
  6. NSSM_VERSION="nssm-2.24-101-g897c7ad"
  7. NSSM_URL="http://files.evilt.win/nssm/${NSSM_VERSION}.zip"
  8. FFMPEG_URL="https://repo.jellyfin.org/releases/server/windows/ffmpeg/jellyfin-ffmpeg-portable_win64.zip";
  9. # Move to source directory
  10. pushd "${SOURCE_DIR}"
  11. # Get version
  12. if [[ ${IS_UNSTABLE} == 'yes' ]]; then
  13. version="${BUILD_ID}"
  14. else
  15. version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
  16. fi
  17. output_dir="dist/jellyfin-server_${version}"
  18. # Build binary
  19. dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime win-x64 --output "${output_dir}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
  20. # Prepare addins
  21. addin_build_dir="$( mktemp -d )"
  22. wget ${NSSM_URL} -O "${addin_build_dir}"/nssm.zip
  23. wget ${FFMPEG_URL} -O "${addin_build_dir}"/jellyfin-ffmpeg.zip
  24. unzip "${addin_build_dir}"/nssm.zip -d "${addin_build_dir}"
  25. cp "${addin_build_dir}"/${NSSM_VERSION}/win64/nssm.exe "${output_dir}"/nssm.exe
  26. unzip "${addin_build_dir}"/jellyfin-ffmpeg.zip -d "${addin_build_dir}"/jellyfin-ffmpeg
  27. cp "${addin_build_dir}"/jellyfin-ffmpeg/* "${output_dir}"
  28. rm -rf "${addin_build_dir}"
  29. # Create zip package
  30. pushd dist
  31. zip -qr jellyfin-server_"${version}".portable.zip jellyfin-server_"${version}"
  32. popd
  33. rm -rf "${output_dir}"
  34. # Move the artifacts out
  35. mkdir -p "${ARTIFACT_DIR}/"
  36. mv dist/jellyfin[-_]*.zip "${ARTIFACT_DIR}/"
  37. if [[ ${IS_DOCKER} == YES ]]; then
  38. chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
  39. fi
  40. popd