diff --git a/.ci/azure-pipelines.yml b/.ci/azure-pipelines.yml index 705a64d85e..03bd0f690c 100644 --- a/.ci/azure-pipelines.yml +++ b/.ci/azure-pipelines.yml @@ -178,18 +178,39 @@ jobs: persistCredentials: true - task: CmdLine@2 - displayName: "Update submodules" + displayName: "Check out web" condition: and(succeeded(), or(contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')) ,eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion')) inputs: - script: 'git submodule foreach --recursive git checkout $(Build.SourceBranch)' - workingDirectory: '$(Build.SourcesDirectory)' + script: 'git clone --single-branch --branch $(Build.SourceBranch) --depth=1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web' - task: CmdLine@2 - displayName: "Update submodules (PR)" + displayName: "Check out web (PR)" condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master')) ,eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest')) inputs: - script: 'git submodule foreach --recursive git checkout $(System.PullRequest.TargetBranch)' - workingDirectory: '$(Build.SourcesDirectory)' + script: 'git clone --single-branch --branch $(System.PullRequest.TargetBranch) --depth 1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web' + + - task: NodeTool@0 + displayName: 'Install Node.js' + condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')) ,eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion')) + inputs: + versionSpec: '10.x' + + - task: CmdLine@2 + displayName: "Build Web UI" + condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')) ,eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion')) + inputs: + script: yarn install + workingDirectory: $(Agent.TempDirectory)/jellyfin-web + + - task: CopyFiles@2 + displayName: Copy the web UI + inputs: + sourceFolder: $(Agent.TempDirectory)/jellyfin-web/dist # Optional + contents: '**' + targetFolder: $(Build.SourcesDirectory)/MediaBrowser.WebDashboard/jellyfin-web + cleanTargetFolder: true # Optional + overWrite: true # Optional + flattenFolders: false # Optional - task: CmdLine@2 displayName: Clone the UX repository @@ -214,7 +235,7 @@ jobs: inputs: sourceFolder: $(Build.SourcesDirectory)/deployment/windows/ # Optional contents: 'jellyfin*.exe' - targetFolder: $(System.ArtifactsDirectory)/setup + targetFolder: $(System.ArtifactsDirectory)/MediaBrowser.WebDashboard/jellyfin-web cleanTargetFolder: true # Optional overWrite: true # Optional flattenFolders: true # Optional diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 2b97b13311..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "MediaBrowser.WebDashboard/jellyfin-web"] - path = MediaBrowser.WebDashboard/jellyfin-web - url = https://github.com/jellyfin/jellyfin-web.git - branch = . diff --git a/Dockerfile b/Dockerfile index 017f8c697a..483345e39d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN apt-get update \ && chmod 777 /cache /config /media COPY --from=ffmpeg / / COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web/src +COPY --from=web-builder /dist /jellyfin/jellyfin-web EXPOSE 8096 VOLUME /cache /config /media diff --git a/Dockerfile.arm b/Dockerfile.arm index d06eeb561a..8a91d71bed 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -35,7 +35,7 @@ RUN apt-get update \ && mkdir -p /cache /config /media \ && chmod 777 /cache /config /media COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web/src +COPY --from=web-builder /dist /jellyfin/jellyfin-web EXPOSE 8096 VOLUME /cache /config /media diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 1c5de4ed0e..b24d5d5991 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -35,7 +35,7 @@ RUN apt-get update \ && mkdir -p /cache /config /media \ && chmod 777 /cache /config /media COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web/src +COPY --from=web-builder /dist /jellyfin/jellyfin-web EXPOSE 8096 VOLUME /cache /config /media diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index 716dd0fcdc..e9e884a3f6 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -312,7 +312,7 @@ namespace Jellyfin.Server if (string.IsNullOrEmpty(webDir)) { // Use default location under ResourcesPath - webDir = Path.Combine(AppContext.BaseDirectory, "jellyfin-web", "src"); + webDir = Path.Combine(AppContext.BaseDirectory, "jellyfin-web"); } } diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 8839868944..a439493673 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -10,7 +10,7 @@ - + PreserveNewest diff --git a/MediaBrowser.WebDashboard/jellyfin-web b/MediaBrowser.WebDashboard/jellyfin-web deleted file mode 160000 index 867a5e664c..0000000000 --- a/MediaBrowser.WebDashboard/jellyfin-web +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 867a5e664cb968602b50dee4874fcb961eed4803