瀏覽代碼

Merge pull request #979 from Wuerfelbecher/release-disable-debug

Build Package releases without debug turned on
Vasily 6 年之前
父節點
當前提交
500c0b9cba

+ 2 - 4
Dockerfile

@@ -4,10 +4,8 @@ FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
 WORKDIR /repo
 COPY . .
 ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-RUN dotnet publish \
-    --configuration release \
-    --output /jellyfin \
-    Jellyfin.Server
+RUN bash -c "source deployment/common.build.sh && \
+    build_jellyfin Jellyfin.Server Release linux-x64 /jellyfin"
 
 FROM jellyfin/ffmpeg as ffmpeg
 FROM microsoft/dotnet:${DOTNET_VERSION}-runtime

+ 2 - 5
Dockerfile.arm

@@ -17,11 +17,8 @@ RUN find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \;
 # Discard objs - may cause failures if exists
 RUN find . -type d -name obj | xargs -r rm -r
 # Build
-RUN dotnet publish \
-    -r linux-arm \
-    --configuration release \
-    --output /jellyfin \
-    Jellyfin.Server
+RUN bash -c "source deployment/common.build.sh && \
+    build_jellyfin Jellyfin.Server Release linux-arm /jellyfin"
 
 
 FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm32v7

+ 2 - 5
Dockerfile.arm64

@@ -18,11 +18,8 @@ RUN find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \;
 # Discard objs - may cause failures if exists
 RUN find . -type d -name obj | xargs -r rm -r
 # Build
-RUN dotnet publish \
-    -r linux-arm64 \
-    --configuration release \
-    --output /jellyfin \
-    Jellyfin.Server
+RUN bash -c "source deployment/common.build.sh && \
+    build_jellyfin Jellyfin.Server Release linux-arm64 /jellyfin"
 
 
 FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm64v8

+ 3 - 4
deployment/common.build.sh

@@ -15,7 +15,6 @@ DEFAULT_CONFIG="Release"
 DEFAULT_OUTPUT_DIR="dist/jellyfin-git"
 DEFAULT_PKG_DIR="pkg-dist"
 DEFAULT_DOCKERFILE="Dockerfile"
-DEFAULT_IMAGE_TAG="jellyfin:"`git rev-parse --abbrev-ref HEAD`
 DEFAULT_ARCHIVE_CMD="tar -xvzf"
 
 # Parse the version from the AssemblyVersion
@@ -36,9 +35,9 @@ build_jellyfin()
 
     echo -e "${CYAN}Building jellyfin in '${ROOT}' for ${DOTNETRUNTIME} with configuration ${CONFIG} and output directory '${OUTPUT_DIR}'.${NC}"
     if [[ $DOTNETRUNTIME == 'framework' ]]; then
-        dotnet publish "${ROOT}" --configuration "${CONFIG}" --output="${OUTPUT_DIR}"
+        dotnet publish "${ROOT}" --configuration "${CONFIG}" --output="${OUTPUT_DIR}" "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none"
     else
-        dotnet publish "${ROOT}" --configuration "${CONFIG}" --output="${OUTPUT_DIR}" --self-contained --runtime ${DOTNETRUNTIME}
+        dotnet publish "${ROOT}" --configuration "${CONFIG}" --output="${OUTPUT_DIR}" --self-contained --runtime ${DOTNETRUNTIME} "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none"
     fi    
     EXIT_CODE=$?
     if [ $EXIT_CODE -eq 0 ]; then
@@ -53,7 +52,7 @@ build_jellyfin_docker()
 (
     BUILD_CONTEXT=${1-$DEFAULT_BUILD_CONTEXT}
     DOCKERFILE=${2-$DEFAULT_DOCKERFILE}
-    IMAGE_TAG=${3-$DEFAULT_IMAGE_TAG}
+    IMAGE_TAG=${3-"jellyfin:$(git rev-parse --abbrev-ref HEAD)"}
 
     echo -e "${CYAN}Building jellyfin docker image in '${BUILD_CONTEXT}' with Dockerfile '${DOCKERFILE}' and tag '${IMAGE_TAG}'.${NC}"
     docker build -t ${IMAGE_TAG} -f ${DOCKERFILE} ${BUILD_CONTEXT}

+ 2 - 1
deployment/debian-package-x64/pkg-src/rules

@@ -16,7 +16,8 @@ override_dh_auto_test:
 override_dh_clistrip:
 
 override_dh_auto_build:
-	dotnet publish --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime $(DOTNETRUNTIME) Jellyfin.Server
+	dotnet publish --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime $(DOTNETRUNTIME) \
+		"-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" Jellyfin.Server
 
 override_dh_auto_clean:
 	dotnet clean -maxcpucount:1 --configuration $(CONFIG) Jellyfin.Server || true

+ 2 - 2
deployment/fedora-package-x64/pkg-src/jellyfin.spec

@@ -49,7 +49,8 @@ Jellyfin is a free software media system that puts you in control of managing an
 %install
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
-dotnet publish --configuration Release --output='%{buildroot}%{_libdir}/jellyfin' --self-contained --runtime %{dotnet_runtime} Jellyfin.Server
+dotnet publish --configuration Release --output='%{buildroot}%{_libdir}/jellyfin' --self-contained --runtime %{dotnet_runtime} \
+    "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" Jellyfin.Server
 %{__install} -D -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/%{name}/LICENSE
 %{__install} -D -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/override.conf
 %{__install} -D -m 0644 Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/%{name}/logging.json
@@ -73,7 +74,6 @@ EOF
 %{_libdir}/%{name}/jellyfin-web/*
 %attr(755,root,root) %{_bindir}/%{name}
 %{_libdir}/%{name}/*.json
-%{_libdir}/%{name}/*.pdb
 %{_libdir}/%{name}/*.dll
 %{_libdir}/%{name}/*.so
 %{_libdir}/%{name}/*.a