build.windows.amd64 1.5 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.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;DebugType=none;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