mirror of
https://github.com/Radarr/Radarr
synced 2025-01-03 13:54:29 +00:00
Improve pipeline and build
This commit is contained in:
parent
6ef388e258
commit
0b7c00bfe6
5 changed files with 319 additions and 219 deletions
|
@ -11,13 +11,8 @@ variables:
|
||||||
minorVersion: $[counter('minorVersion', 2000)]
|
minorVersion: $[counter('minorVersion', 2000)]
|
||||||
radarrVersion: '$(majorVersion).$(minorVersion)'
|
radarrVersion: '$(majorVersion).$(minorVersion)'
|
||||||
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
|
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
|
||||||
windowsInstaller: 'Radarr.$(buildName).windows-installer.exe'
|
|
||||||
windowsZip: 'Radarr.$(buildName).windows.zip'
|
|
||||||
macOsApp: 'Radarr.$(buildName).osx-app.zip'
|
|
||||||
macOsTar: 'Radarr.$(buildName).osx.tar.gz'
|
|
||||||
linuxTar: 'Radarr.$(buildName).linux.tar.gz'
|
|
||||||
sentryOrg: 'radarr'
|
sentryOrg: 'radarr'
|
||||||
dotnetVersion: '2.2.x'
|
dotnetVersion: '3.0.x'
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branches:
|
branches:
|
||||||
|
@ -45,7 +40,7 @@ stages:
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'vs2017-win2016'
|
imageName: 'windows-2019'
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
@ -57,10 +52,11 @@ stages:
|
||||||
submodules: true
|
submodules: true
|
||||||
fetchDepth: 1
|
fetchDepth: 1
|
||||||
- task: UseDotNet@2
|
- task: UseDotNet@2
|
||||||
displayName: 'Install .net core 2.2'
|
displayName: 'Install .net core 3.0'
|
||||||
inputs:
|
inputs:
|
||||||
version: $(dotnetVersion)
|
version: $(dotnetVersion)
|
||||||
- bash: ./build.sh --only-backend
|
condition: ne(variables['osName'], 'Windows')
|
||||||
|
- bash: ./build.sh --backend
|
||||||
displayName: Build Radarr Backend
|
displayName: Build Radarr Backend
|
||||||
- bash: |
|
- bash: |
|
||||||
find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
|
find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
|
||||||
|
@ -87,11 +83,11 @@ stages:
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
|
||||||
- stage: Build_Frontend
|
- stage: Build_Frontend
|
||||||
displayName: Build Frontend
|
displayName: Frontend
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: Frontend
|
- job: Build
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
Linux:
|
Linux:
|
||||||
|
@ -102,7 +98,7 @@ stages:
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'vs2017-win2016'
|
imageName: 'windows-2019'
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
steps:
|
steps:
|
||||||
|
@ -113,7 +109,7 @@ stages:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
submodules: true
|
submodules: true
|
||||||
fetchDepth: 1
|
fetchDepth: 1
|
||||||
- bash: ./build.sh --only-frontend
|
- bash: ./build.sh --frontend
|
||||||
displayName: Build Radarr Frontend
|
displayName: Build Radarr Frontend
|
||||||
env:
|
env:
|
||||||
FORCE_COLOR: 0
|
FORCE_COLOR: 0
|
||||||
|
@ -122,7 +118,7 @@ stages:
|
||||||
displayName: Publish Frontend
|
displayName: Publish Frontend
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
|
||||||
- stage: Package
|
- stage: Installer
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- Build_Backend
|
- Build_Backend
|
||||||
- Build_Frontend
|
- Build_Frontend
|
||||||
|
@ -130,7 +126,7 @@ stages:
|
||||||
- job: Windows_Installer
|
- job: Windows_Installer
|
||||||
displayName: Create Installer
|
displayName: Create Installer
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'vs2017-win2016'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
fetchDepth: 1
|
fetchDepth: 1
|
||||||
|
@ -146,16 +142,21 @@ stages:
|
||||||
artifactName: WindowsFrontend
|
artifactName: WindowsFrontend
|
||||||
targetPath: _output
|
targetPath: _output
|
||||||
displayName: Fetch Frontend
|
displayName: Fetch Frontend
|
||||||
- bash: ./build.sh --only-packages
|
- bash: ./build.sh --packages
|
||||||
displayName: Create Packages
|
displayName: Create Packages
|
||||||
- bash: |
|
- bash: |
|
||||||
./setup/inno/ISCC.exe "./setup/radarr.iss"
|
setup/inno/ISCC.exe setup/radarr.iss //DFramework=net462
|
||||||
cp ./setup/output/Radarr.*windows.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/${WINDOWSINSTALLER}
|
cp setup/output/Radarr.*windows.net462.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-installer.exe
|
||||||
displayName: Create Windows installer
|
displayName: Create .NET 462 Windows installer
|
||||||
- publish: $(Build.ArtifactStagingDirectory)
|
- publish: $(Build.ArtifactStagingDirectory)
|
||||||
artifact: 'WindowsInstaller'
|
artifact: 'WindowsInstaller'
|
||||||
displayName: Publish Installer
|
displayName: Publish Installer
|
||||||
|
|
||||||
|
- stage: Packages
|
||||||
|
dependsOn:
|
||||||
|
- Build_Backend
|
||||||
|
- Build_Frontend
|
||||||
|
jobs:
|
||||||
- job: Other_Packages
|
- job: Other_Packages
|
||||||
displayName: Create Standard Packages
|
displayName: Create Standard Packages
|
||||||
pool:
|
pool:
|
||||||
|
@ -175,31 +176,30 @@ stages:
|
||||||
artifactName: WindowsFrontend
|
artifactName: WindowsFrontend
|
||||||
targetPath: _output
|
targetPath: _output
|
||||||
displayName: Fetch Frontend
|
displayName: Fetch Frontend
|
||||||
- bash: ./build.sh --only-packages
|
- bash: ./build.sh --packages
|
||||||
displayName: Create Packages
|
displayName: Create Packages
|
||||||
- bash: |
|
- bash: |
|
||||||
chmod a+x $(artifactsFolder)/macos/Radarr/Radarr
|
find . -name "Radarr" -exec chmod a+x {} \;
|
||||||
chmod a+x $(artifactsFolder)/macos-app/Radarr.app/Contents/MacOS/Radarr
|
find . -name "Radarr.Update" -exec chmod a+x {} \;
|
||||||
find . -name "Radarr.Console" -exec chmod a+x {} \;
|
displayName: Set executable bits
|
||||||
displayName: Set Mac executable bits
|
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create Windows zip
|
displayName: Create Windows zip
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(windowsZip)'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows.zip'
|
||||||
archiveType: 'zip'
|
archiveType: 'zip'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/windows/net462
|
rootFolderOrFile: $(artifactsFolder)/windows/net462
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create MacOS app
|
displayName: Create MacOS app
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(macOsApp)'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app.zip'
|
||||||
archiveType: 'zip'
|
archiveType: 'zip'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/macos-app/net462
|
rootFolderOrFile: $(artifactsFolder)/macos-app/net462
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create MacOS tar
|
displayName: Create MacOS tar
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(macOsTar)'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx.tar.gz'
|
||||||
archiveType: 'tar'
|
archiveType: 'tar'
|
||||||
tarCompression: 'gz'
|
tarCompression: 'gz'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
|
@ -207,11 +207,11 @@ stages:
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create Linux tar
|
displayName: Create Linux tar
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(linuxTar)'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux.tar.gz'
|
||||||
archiveType: 'tar'
|
archiveType: 'tar'
|
||||||
tarCompression: 'gz'
|
tarCompression: 'gz'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/linux/net462
|
rootFolderOrFile: $(artifactsFolder)/linux-x64/net462
|
||||||
- publish: $(Build.ArtifactStagingDirectory)
|
- publish: $(Build.ArtifactStagingDirectory)
|
||||||
artifact: 'Packages'
|
artifact: 'Packages'
|
||||||
displayName: Publish Packages
|
displayName: Publish Packages
|
||||||
|
@ -235,30 +235,21 @@ stages:
|
||||||
condition: succeeded()
|
condition: succeeded()
|
||||||
jobs:
|
jobs:
|
||||||
- job: Unit
|
- job: Unit
|
||||||
|
displayName: Unit Native
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
Linux:
|
|
||||||
osName: 'Linux'
|
|
||||||
imageName: 'ubuntu-16.04'
|
|
||||||
failBuild: true
|
|
||||||
Mac:
|
Mac:
|
||||||
osName: 'Mac'
|
osName: 'Mac'
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
failBuild: false
|
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'vs2017-win2016'
|
imageName: 'windows-2019'
|
||||||
failBuild: true
|
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: UseDotNet@2
|
|
||||||
displayName: 'Install .net core 2.2'
|
|
||||||
inputs:
|
|
||||||
version: $(dotnetVersion)
|
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
inputs:
|
inputs:
|
||||||
|
@ -270,12 +261,19 @@ stages:
|
||||||
sudo dpkg -i repo-mediaarea_1.0-9_all.deb
|
sudo dpkg -i repo-mediaarea_1.0-9_all.deb
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libmediainfo-dev libmediainfo0v5 mediainfo
|
sudo apt-get install -y libmediainfo-dev libmediainfo0v5 mediainfo
|
||||||
sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
|
displayName: Install mediainfo
|
||||||
displayName: Install mediainfo and fix sqlite
|
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
|
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
|
||||||
- powershell: Set-Service SCardSvr -StartupType Manual
|
- powershell: Set-Service SCardSvr -StartupType Manual
|
||||||
displayName: Enable Windows Test Service
|
displayName: Enable Windows Test Service
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
- bash: |
|
||||||
|
SYMLINK=5_18_1
|
||||||
|
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
|
||||||
|
echo "##vso[task.setvariable variable=MONOPREFIX;]$MONOPREFIX"
|
||||||
|
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
|
||||||
|
displayName: Set Mono Version
|
||||||
|
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
|
||||||
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
|
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
|
||||||
displayName: Make Test Dummy Executable
|
displayName: Make Test Dummy Executable
|
||||||
- task: Bash@3
|
- task: Bash@3
|
||||||
|
@ -292,28 +290,87 @@ stages:
|
||||||
testResultsFormat: 'NUnit'
|
testResultsFormat: 'NUnit'
|
||||||
testResultsFiles: '**/TestResult.xml'
|
testResultsFiles: '**/TestResult.xml'
|
||||||
testRunTitle: '$(osName) Unit Tests'
|
testRunTitle: '$(osName) Unit Tests'
|
||||||
failTaskOnFailedTests: $(failBuild)
|
failTaskOnFailedTests: true
|
||||||
|
|
||||||
- stage: Integration_Automation
|
- job: Unit_Docker
|
||||||
displayName: Integration / Automation
|
displayName: Unit Docker
|
||||||
dependsOn: Package
|
strategy:
|
||||||
|
matrix:
|
||||||
|
mono510:
|
||||||
|
testName: 'Mono 5.10'
|
||||||
|
containerImage: radarr/testimages:mono-5.10
|
||||||
|
mono512:
|
||||||
|
testName: 'Mono 5.12'
|
||||||
|
containerImage: radarr/testimages:mono-5.12
|
||||||
|
mono514:
|
||||||
|
testName: 'Mono 5.14'
|
||||||
|
containerImage: radarr/testimages:mono-5.14
|
||||||
|
mono516:
|
||||||
|
testName: 'Mono 5.16'
|
||||||
|
containerImage: radarr/testimages:mono-5.16
|
||||||
|
mono518:
|
||||||
|
testName: 'Mono 5.18'
|
||||||
|
containerImage: radarr/testimages:mono-5.18
|
||||||
|
mono520:
|
||||||
|
testName: 'Mono 5.20'
|
||||||
|
containerImage: radarr/testimages:mono-5.20
|
||||||
|
mono600:
|
||||||
|
testName: 'Mono 6.0'
|
||||||
|
containerImage: radarr/testimages:mono-6.0
|
||||||
|
mono604:
|
||||||
|
testName: 'Mono 6.4'
|
||||||
|
containerImage: radarr/testimages:mono-6.4
|
||||||
|
mono606:
|
||||||
|
testName: 'Mono 6.6'
|
||||||
|
containerImage: radarr/testimages:mono-6.6
|
||||||
|
|
||||||
|
pool:
|
||||||
|
vmImage: 'ubuntu-16.04'
|
||||||
|
|
||||||
|
container: $[ variables['containerImage'] ]
|
||||||
|
|
||||||
|
timeoutInMinutes: 10
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- bash: mono --version
|
||||||
|
displayName: Check Mono version
|
||||||
|
- checkout: none
|
||||||
|
- task: DownloadPipelineArtifact@2
|
||||||
|
displayName: Download Test Artifact
|
||||||
|
inputs:
|
||||||
|
buildType: 'current'
|
||||||
|
artifactName: LinuxTests
|
||||||
|
targetPath: $(testsFolder)
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: Run Tests
|
||||||
|
inputs:
|
||||||
|
targetType: 'filePath'
|
||||||
|
filePath: '$(testsFolder)/test.sh'
|
||||||
|
arguments: 'Linux Unit Test'
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
displayName: Publish Test Results
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: 'NUnit'
|
||||||
|
testResultsFiles: '**/TestResult.xml'
|
||||||
|
testRunTitle: '$(testName) Unit Tests'
|
||||||
|
failTaskOnFailedTests: true
|
||||||
|
|
||||||
|
- stage: Integration
|
||||||
|
displayName: Integration
|
||||||
|
dependsOn: Packages
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
- job: Integration_Native
|
- job: Integration_Native
|
||||||
displayName: Integration Native
|
displayName: Integration Native
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
Linux:
|
|
||||||
osName: 'Linux'
|
|
||||||
imageName: 'ubuntu-16.04'
|
|
||||||
pattern: 'Radarr.**.linux.tar.gz'
|
|
||||||
Mac:
|
Mac:
|
||||||
osName: 'Mac'
|
osName: 'Mac'
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
pattern: 'Radarr.**.osx.tar.gz'
|
pattern: 'Radarr.**.osx.tar.gz'
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'vs2017-win2016'
|
imageName: 'windows-2019'
|
||||||
pattern: 'Radarr.**.windows.zip'
|
pattern: 'Radarr.**.windows.zip'
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
|
@ -323,19 +380,11 @@ stages:
|
||||||
- bash: |
|
- bash: |
|
||||||
SYMLINK=5_18_1
|
SYMLINK=5_18_1
|
||||||
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
|
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
|
||||||
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;].:$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
|
echo "##vso[task.setvariable variable=MONOPREFIX;]$MONOPREFIX"
|
||||||
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
|
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
|
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
|
||||||
displayName: Set Mono Version
|
displayName: Set Mono Version
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
|
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
|
||||||
- bash: |
|
|
||||||
sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
|
|
||||||
displayName: Fix sqlite
|
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
|
|
||||||
- task: UseDotNet@2
|
|
||||||
displayName: 'Install .net core 2.2'
|
|
||||||
inputs:
|
|
||||||
version: $(dotnetVersion)
|
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
|
@ -358,7 +407,6 @@ stages:
|
||||||
- bash: |
|
- bash: |
|
||||||
mkdir -p ./bin/
|
mkdir -p ./bin/
|
||||||
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Radarr/. ./bin/
|
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Radarr/. ./bin/
|
||||||
ls -lR
|
|
||||||
displayName: Move Package Contents
|
displayName: Move Package Contents
|
||||||
- task: Bash@3
|
- task: Bash@3
|
||||||
displayName: Run Integration Tests
|
displayName: Run Integration Tests
|
||||||
|
@ -378,31 +426,34 @@ stages:
|
||||||
displayName: Integration Docker
|
displayName: Integration Docker
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
mono504:
|
|
||||||
testName: 'Mono 5.4'
|
|
||||||
containerImage: mono:5.4
|
|
||||||
mono508:
|
|
||||||
testName: 'Mono 5.8'
|
|
||||||
containerImage: mono:5.8
|
|
||||||
mono510:
|
mono510:
|
||||||
testName: 'Mono 5.10'
|
testName: 'Mono 5.10'
|
||||||
containerImage: mono:5.10
|
containerImage: radarr/testimages:mono-5.10
|
||||||
mono512:
|
mono512:
|
||||||
testName: 'Mono 5.12'
|
testName: 'Mono 5.12'
|
||||||
containerImage: mono:5.12
|
containerImage: radarr/testimages:mono-5.12
|
||||||
mono514:
|
mono514:
|
||||||
testName: 'Mono 5.14'
|
testName: 'Mono 5.14'
|
||||||
containerImage: mono:5.14
|
containerImage: radarr/testimages:mono-5.14
|
||||||
mono516:
|
mono516:
|
||||||
testName: 'Mono 5.16'
|
testName: 'Mono 5.16'
|
||||||
containerImage: mono:5.16
|
containerImage: radarr/testimages:mono-5.16
|
||||||
mono518:
|
mono518:
|
||||||
testName: 'Mono 5.18'
|
testName: 'Mono 5.18'
|
||||||
containerImage: mono:5.18
|
containerImage: radarr/testimages:mono-5.18
|
||||||
mono520:
|
mono520:
|
||||||
testName: 'Mono 5.20'
|
testName: 'Mono 5.20'
|
||||||
containerImage: mono:5.20
|
containerImage: radarr/testimages:mono-5.20
|
||||||
|
mono600:
|
||||||
|
testName: 'Mono 6.0'
|
||||||
|
containerImage: radarr/testimages:mono-6.0
|
||||||
|
mono604:
|
||||||
|
testName: 'Mono 6.4'
|
||||||
|
containerImage: radarr/testimages:mono-6.4
|
||||||
|
mono606:
|
||||||
|
testName: 'Mono 6.6'
|
||||||
|
containerImage: radarr/testimages:mono-6.6
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
pattern: 'Radarr.**.linux.tar.gz'
|
pattern: 'Radarr.**.linux.tar.gz'
|
||||||
|
|
||||||
|
@ -410,14 +461,12 @@ stages:
|
||||||
vmImage: 'ubuntu-16.04'
|
vmImage: 'ubuntu-16.04'
|
||||||
|
|
||||||
container: $[ variables['containerImage'] ]
|
container: $[ variables['containerImage'] ]
|
||||||
|
|
||||||
|
timeoutInMinutes: 15
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- bash: mono --version
|
- bash: mono --version
|
||||||
displayName: Check Mono version
|
displayName: Check Mono version
|
||||||
- task: UseDotNet@2
|
|
||||||
displayName: 'Install .net core 2.2'
|
|
||||||
inputs:
|
|
||||||
version: $(dotnetVersion)
|
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
|
@ -456,6 +505,11 @@ stages:
|
||||||
failTaskOnFailedTests: true
|
failTaskOnFailedTests: true
|
||||||
displayName: Publish Test Results
|
displayName: Publish Test Results
|
||||||
|
|
||||||
|
- stage: Automation
|
||||||
|
displayName: Automation
|
||||||
|
dependsOn: Packages
|
||||||
|
|
||||||
|
jobs:
|
||||||
- job: Automation
|
- job: Automation
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -471,7 +525,7 @@ stages:
|
||||||
failBuild: false
|
failBuild: false
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'vs2017-win2016'
|
imageName: 'windows-2019'
|
||||||
pattern: 'Radarr.**.windows.zip'
|
pattern: 'Radarr.**.windows.zip'
|
||||||
failBuild: true
|
failBuild: true
|
||||||
|
|
||||||
|
@ -479,14 +533,6 @@ stages:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- bash: |
|
|
||||||
sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
|
|
||||||
displayName: Fix sqlite
|
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
|
|
||||||
- task: UseDotNet@2
|
|
||||||
displayName: 'Install .net core 2.2'
|
|
||||||
inputs:
|
|
||||||
version: $(dotnetVersion)
|
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
|
@ -539,63 +585,97 @@ stages:
|
||||||
failTaskOnFailedTests: $(failBuild)
|
failTaskOnFailedTests: $(failBuild)
|
||||||
displayName: Publish Test Results
|
displayName: Publish Test Results
|
||||||
|
|
||||||
# - stage: Analyze
|
- stage: Analyze
|
||||||
# dependsOn: []
|
dependsOn: []
|
||||||
# displayName: Analyze
|
displayName: Analyze
|
||||||
# condition: eq(variables['system.pullrequest.isfork'], false)
|
|
||||||
|
|
||||||
# jobs:
|
|
||||||
# # - job: Analyze_Frontend
|
|
||||||
# # displayName: Frontend
|
|
||||||
# # pool:
|
|
||||||
# # vmImage: vs2017-win2016
|
|
||||||
# # steps:
|
|
||||||
# # - checkout: self # Need history for Sonar analysis
|
|
||||||
# # - task: SonarCloudPrepare@1
|
|
||||||
# # env:
|
|
||||||
# # SONAR_SCANNER_OPTS: ''
|
|
||||||
# # inputs:
|
|
||||||
# # SonarCloud: 'SonarCloud'
|
|
||||||
# # organization: 'radarr'
|
|
||||||
# # scannerMode: 'CLI'
|
|
||||||
# # configMode: 'manual'
|
|
||||||
# # cliProjectKey: 'radarr_Radarr.UI'
|
|
||||||
# # cliProjectName: 'RadarrUI'
|
|
||||||
# # cliProjectVersion: '$(radarrVersion)'
|
|
||||||
# # cliSources: './frontend'
|
|
||||||
# # - task: SonarCloudAnalyze@1
|
|
||||||
|
|
||||||
# - job: Analyze_Backend
|
|
||||||
# displayName: Backend
|
jobs:
|
||||||
# pool:
|
- job: Lint_Frontend
|
||||||
# vmImage: vs2017-win2016
|
displayName: Lint Frontend
|
||||||
# steps:
|
strategy:
|
||||||
# - checkout: self # Need history for Sonar analysis
|
matrix:
|
||||||
# submodules: true
|
Linux:
|
||||||
# - task: SonarCloudPrepare@1
|
osName: 'Linux'
|
||||||
# inputs:
|
imageName: 'ubuntu-16.04'
|
||||||
# SonarCloud: 'SonarCloud'
|
Windows:
|
||||||
# organization: 'radarr'
|
osName: 'Windows'
|
||||||
# scannerMode: 'MSBuild'
|
imageName: 'windows-2019'
|
||||||
# projectKey: 'radarr_Radarr'
|
pool:
|
||||||
# projectName: 'Radarr'
|
vmImage: $(imageName)
|
||||||
# projectVersion: '$(radarrVersion)'
|
steps:
|
||||||
# extraProperties: |
|
- task: NodeTool@0
|
||||||
# sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
|
displayName: Set Node.js version
|
||||||
# sonar.coverage.exclusions=**/Radarr.Api.V1/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
|
inputs:
|
||||||
# sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/_tests/CoverageResults/coverage.opencover.xml
|
versionSpec: '10.x'
|
||||||
# sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
|
- checkout: self
|
||||||
# - bash: ./build.sh --only-backend
|
submodules: true
|
||||||
# displayName: Build Radarr Backend
|
fetchDepth: 1
|
||||||
# - task: Bash@3
|
- bash: ./build.sh --lint
|
||||||
# displayName: Coverage Unit Tests
|
displayName: Lint Radarr Frontend
|
||||||
# inputs:
|
env:
|
||||||
# targetType: 'filePath'
|
FORCE_COLOR: 0
|
||||||
# filePath: ./test.sh
|
|
||||||
# arguments: Windows Unit Coverage
|
# - job: Analyze_Frontend
|
||||||
# - task: PublishCodeCoverageResults@1
|
# displayName: Frontend
|
||||||
# displayName: Publish Coverage Results
|
# condition: eq(variables['system.pullrequest.isfork'], false)
|
||||||
# inputs:
|
# pool:
|
||||||
# codeCoverageTool: 'cobertura'
|
# vmImage: windows-2019
|
||||||
# summaryFileLocation: './_tests/CoverageResults/coverage.cobertura.xml'
|
# steps:
|
||||||
# # - task: SonarCloudAnalyze@1
|
# - checkout: self # Need history for Sonar analysis
|
||||||
|
# - task: SonarCloudPrepare@1
|
||||||
|
# env:
|
||||||
|
# SONAR_SCANNER_OPTS: ''
|
||||||
|
# inputs:
|
||||||
|
# SonarCloud: 'SonarCloud'
|
||||||
|
# organization: 'radarr'
|
||||||
|
# scannerMode: 'CLI'
|
||||||
|
# configMode: 'manual'
|
||||||
|
# cliProjectKey: 'radarr_Radarr.UI'
|
||||||
|
# cliProjectName: 'RadarrUI'
|
||||||
|
# cliProjectVersion: '$(radarrVersion)'
|
||||||
|
# cliSources: './frontend'
|
||||||
|
# - task: SonarCloudAnalyze@1
|
||||||
|
|
||||||
|
# - job: Analyze_Backend
|
||||||
|
# displayName: Backend
|
||||||
|
# condition: eq(variables['system.pullrequest.isfork'], false)
|
||||||
|
# pool:
|
||||||
|
# vmImage: windows-2019
|
||||||
|
# steps:
|
||||||
|
# - checkout: self # Need history for Sonar analysis
|
||||||
|
# submodules: true
|
||||||
|
# - task: UseDotNet@2
|
||||||
|
# displayName: 'Install .net core 3.0'
|
||||||
|
# inputs:
|
||||||
|
# version: $(dotnetVersion)
|
||||||
|
# - task: SonarCloudPrepare@1
|
||||||
|
# inputs:
|
||||||
|
# SonarCloud: 'SonarCloud'
|
||||||
|
# organization: 'radarr'
|
||||||
|
# scannerMode: 'MSBuild'
|
||||||
|
# projectKey: 'radarr_Radarr'
|
||||||
|
# projectName: 'Radarr'
|
||||||
|
# projectVersion: '$(radarrVersion)'
|
||||||
|
# extraProperties: |
|
||||||
|
# sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
|
||||||
|
# sonar.coverage.exclusions=**/Radarr.Api.V1/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
|
||||||
|
# sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/_tests/CoverageResults/coverage.opencover.xml
|
||||||
|
# sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
|
||||||
|
# - task: DotNetCoreCLI@2
|
||||||
|
# displayName: Build backend
|
||||||
|
# inputs:
|
||||||
|
# command: 'build'
|
||||||
|
# projects: 'src/Radarr.Windows.sln'
|
||||||
|
# - task: Bash@3
|
||||||
|
# displayName: Coverage Unit Tests
|
||||||
|
# inputs:
|
||||||
|
# targetType: 'filePath'
|
||||||
|
# filePath: ./test.sh
|
||||||
|
# arguments: Windows Unit Coverage
|
||||||
|
# - task: PublishCodeCoverageResults@1
|
||||||
|
# displayName: Publish Coverage Results
|
||||||
|
# inputs:
|
||||||
|
# codeCoverageTool: 'cobertura'
|
||||||
|
# summaryFileLocation: './_tests/CoverageResults/coverage.cobertura.xml'
|
||||||
|
# - task: SonarCloudAnalyze@1
|
||||||
|
|
149
build.sh
149
build.sh
|
@ -1,25 +1,12 @@
|
||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
outputFolder='./_output'
|
set -e
|
||||||
testPackageFolder='./_tests/'
|
|
||||||
sourceFolder='./src'
|
|
||||||
slnFile=$sourceFolder/Radarr.sln
|
|
||||||
|
|
||||||
#Artifact variables
|
outputFolder='_output'
|
||||||
artifactsFolder="./_artifacts";
|
testPackageFolder='_tests'
|
||||||
|
artifactsFolder="_artifacts";
|
||||||
|
|
||||||
nuget='tools/nuget/nuget.exe';
|
nuget='tools/nuget/nuget.exe';
|
||||||
|
|
||||||
CheckExitCode()
|
|
||||||
{
|
|
||||||
"$@"
|
|
||||||
local status=$?
|
|
||||||
if [ $status -ne 0 ]; then
|
|
||||||
echo "error with $1" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
return $status
|
|
||||||
}
|
|
||||||
|
|
||||||
ProgressStart()
|
ProgressStart()
|
||||||
{
|
{
|
||||||
echo "Start '$1'"
|
echo "Start '$1'"
|
||||||
|
@ -34,8 +21,9 @@ UpdateVersionNumber()
|
||||||
{
|
{
|
||||||
if [ "$RADARRVERSION" != "" ]; then
|
if [ "$RADARRVERSION" != "" ]; then
|
||||||
echo "Updating Version Info"
|
echo "Updating Version Info"
|
||||||
sed -i "s/<AssemblyVersion>[0-9.*]\+<\/AssemblyVersion>/<AssemblyVersion>$RADARRVERSION<\/AssemblyVersion>/g" ./src/Directory.Build.props
|
sed -i'' -e "s/<AssemblyVersion>[0-9.*]\+<\/AssemblyVersion>/<AssemblyVersion>$RADARRVERSION<\/AssemblyVersion>/g" src/Directory.Build.props
|
||||||
sed -i "s/<AssemblyConfiguration>[\$()A-Za-z-]\+<\/AssemblyConfiguration>/<AssemblyConfiguration>${BUILD_SOURCEBRANCHNAME}<\/AssemblyConfiguration>/g" ./src/Directory.Build.props
|
sed -i'' -e "s/<AssemblyConfiguration>[\$()A-Za-z-]\+<\/AssemblyConfiguration>/<AssemblyConfiguration>${BUILD_SOURCEBRANCHNAME}<\/AssemblyConfiguration>/g" src/Directory.Build.props
|
||||||
|
sed -i'' -e "s/<string>10.0.0.0<\/string>/<string>$RADARRVERSION<\/string>/g" macOS/Radarr.app/Contents/Info.plist
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,11 +47,15 @@ CleanFolder()
|
||||||
LintUI()
|
LintUI()
|
||||||
{
|
{
|
||||||
ProgressStart 'ESLint'
|
ProgressStart 'ESLint'
|
||||||
CheckExitCode yarn lint
|
yarn lint
|
||||||
ProgressEnd 'ESLint'
|
ProgressEnd 'ESLint'
|
||||||
|
|
||||||
ProgressStart 'Stylelint'
|
ProgressStart 'Stylelint'
|
||||||
CheckExitCode yarn stylelint
|
if [ "$os" = "windows" ]; then
|
||||||
|
yarn stylelint-windows
|
||||||
|
else
|
||||||
|
yarn stylelint-linux
|
||||||
|
fi
|
||||||
ProgressEnd 'Stylelint'
|
ProgressEnd 'Stylelint'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,23 +66,30 @@ Build()
|
||||||
rm -rf $outputFolder
|
rm -rf $outputFolder
|
||||||
rm -rf $testPackageFolder
|
rm -rf $testPackageFolder
|
||||||
|
|
||||||
CheckExitCode dotnet clean $slnFile -c Debug
|
if [ $os = "windows" ]; then
|
||||||
CheckExitCode dotnet clean $slnFile -c Release
|
slnFile=src/Radarr.Windows.sln
|
||||||
CheckExitCode dotnet msbuild -restore src/Radarr.sln -p:Configuration=Release -t:PublishAllRids
|
else
|
||||||
|
slnFile=src/Radarr.Posix.sln
|
||||||
|
fi
|
||||||
|
|
||||||
|
dotnet clean $slnFile -c Debug
|
||||||
|
dotnet clean $slnFile -c Release
|
||||||
|
dotnet msbuild -restore $slnFile -p:Configuration=Release -t:PublishAllRids
|
||||||
|
|
||||||
ProgressEnd 'Build'
|
ProgressEnd 'Build'
|
||||||
}
|
}
|
||||||
|
|
||||||
RunGulp()
|
YarnInstall()
|
||||||
{
|
{
|
||||||
ProgressStart 'yarn install'
|
ProgressStart 'yarn install'
|
||||||
yarn install --frozen-lockfile
|
yarn install --frozen-lockfile
|
||||||
ProgressEnd 'yarn install'
|
ProgressEnd 'yarn install'
|
||||||
|
}
|
||||||
|
|
||||||
LintUI
|
RunGulp()
|
||||||
|
{
|
||||||
ProgressStart 'Running gulp'
|
ProgressStart 'Running gulp'
|
||||||
CheckExitCode yarn run build --production
|
yarn run build --production
|
||||||
ProgressEnd 'Running gulp'
|
ProgressEnd 'Running gulp'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,30 +114,25 @@ PackageFiles()
|
||||||
PackageLinux()
|
PackageLinux()
|
||||||
{
|
{
|
||||||
local framework="$1"
|
local framework="$1"
|
||||||
|
local runtime="$2"
|
||||||
|
|
||||||
ProgressStart "Creating Linux Package for $framework"
|
ProgressStart "Creating $runtime Package for $framework"
|
||||||
|
|
||||||
local folder=$artifactsFolder/linux/$framework/Radarr
|
local folder=$artifactsFolder/$runtime/$framework/Radarr
|
||||||
|
|
||||||
PackageFiles "$folder" $framework $runtime "linux-x64"
|
PackageFiles "$folder" "$framework" "$runtime"
|
||||||
|
|
||||||
echo "Removing Service helpers"
|
echo "Removing Service helpers"
|
||||||
rm -f $folder/ServiceUninstall.*
|
rm -f $folder/ServiceUninstall.*
|
||||||
rm -f $folder/ServiceInstall.*
|
rm -f $folder/ServiceInstall.*
|
||||||
|
|
||||||
echo "Renaming Radarr.Console.exe to Radarr.exe"
|
|
||||||
rm $folder/Radarr.exe*
|
|
||||||
for file in $folder/Radarr.Console.exe*; do
|
|
||||||
mv "$file" "${file//.Console/}"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Removing Radarr.Windows"
|
echo "Removing Radarr.Windows"
|
||||||
rm $folder/Radarr.Windows.*
|
rm $folder/Radarr.Windows.*
|
||||||
|
|
||||||
echo "Adding Radarr.Mono to UpdatePackage"
|
echo "Adding Radarr.Mono to UpdatePackage"
|
||||||
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
||||||
|
|
||||||
ProgressEnd "Creating Linux Package for $framework"
|
ProgressEnd "Creating $runtime Package for $framework"
|
||||||
}
|
}
|
||||||
|
|
||||||
PackageMacOS()
|
PackageMacOS()
|
||||||
|
@ -151,19 +145,15 @@ PackageMacOS()
|
||||||
|
|
||||||
PackageFiles "$folder" "$framework" "osx-x64"
|
PackageFiles "$folder" "$framework" "osx-x64"
|
||||||
|
|
||||||
echo "Adding Startup script"
|
if [ "$framework" = "net462" ]; then
|
||||||
cp ./macOS/Radarr $folder
|
echo "Adding Startup script"
|
||||||
|
cp macOS/Radarr $folder
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Removing Service helpers"
|
echo "Removing Service helpers"
|
||||||
rm -f $folder/ServiceUninstall.*
|
rm -f $folder/ServiceUninstall.*
|
||||||
rm -f $folder/ServiceInstall.*
|
rm -f $folder/ServiceInstall.*
|
||||||
|
|
||||||
echo "Renaming Radarr.Console.exe to Radarr.exe"
|
|
||||||
rm $folder/Radarr.exe*
|
|
||||||
for file in $folder/Radarr.Console.exe*; do
|
|
||||||
mv "$file" "${file//.Console/}"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Removing Radarr.Windows"
|
echo "Removing Radarr.Windows"
|
||||||
rm $folder/Radarr.Windows.*
|
rm $folder/Radarr.Windows.*
|
||||||
|
|
||||||
|
@ -183,7 +173,7 @@ PackageMacOSApp()
|
||||||
|
|
||||||
rm -rf $folder
|
rm -rf $folder
|
||||||
mkdir -p $folder
|
mkdir -p $folder
|
||||||
cp -r ./macOS/Radarr.app $folder
|
cp -r macOS/Radarr.app $folder
|
||||||
mkdir -p $folder/Radarr.app/Contents/MacOS
|
mkdir -p $folder/Radarr.app/Contents/MacOS
|
||||||
|
|
||||||
echo "Copying Binaries"
|
echo "Copying Binaries"
|
||||||
|
@ -199,9 +189,9 @@ PackageTests()
|
||||||
{
|
{
|
||||||
ProgressStart 'Creating Test Package'
|
ProgressStart 'Creating Test Package'
|
||||||
|
|
||||||
cp ./test.sh $testPackageFolder/net462/win-x64/publish
|
cp test.sh $testPackageFolder/net462/win-x64/publish
|
||||||
cp ./test.sh $testPackageFolder/net462/linux-x64/publish
|
cp test.sh $testPackageFolder/net462/linux-x64/publish
|
||||||
cp ./test.sh $testPackageFolder/net462/osx-x64/publish
|
cp test.sh $testPackageFolder/net462/osx-x64/publish
|
||||||
|
|
||||||
if [ $os = "windows" ] ; then
|
if [ $os = "windows" ] ; then
|
||||||
$nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/win-x64/publish
|
$nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/win-x64/publish
|
||||||
|
@ -233,7 +223,7 @@ PackageWindows()
|
||||||
|
|
||||||
local folder=$artifactsFolder/windows/$framework/Radarr
|
local folder=$artifactsFolder/windows/$framework/Radarr
|
||||||
|
|
||||||
PackageFiles "$folder" "net462" "win-x64"
|
PackageFiles "$folder" "$framework" "win-x64"
|
||||||
|
|
||||||
echo "Removing Radarr.Mono"
|
echo "Removing Radarr.Mono"
|
||||||
rm -f $folder/Radarr.Mono.*
|
rm -f $folder/Radarr.Mono.*
|
||||||
|
@ -257,21 +247,41 @@ case "$(uname -s)" in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
POSITIONAL=()
|
POSITIONAL=()
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "No arguments provided, building everything"
|
||||||
|
BACKEND=YES
|
||||||
|
FRONTEND=YES
|
||||||
|
PACKAGES=YES
|
||||||
|
LINT=YES
|
||||||
|
fi
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]
|
while [[ $# -gt 0 ]]
|
||||||
do
|
do
|
||||||
key="$1"
|
key="$1"
|
||||||
|
|
||||||
case $key in
|
case $key in
|
||||||
--only-backend)
|
--backend)
|
||||||
ONLY_BACKEND=YES
|
BACKEND=YES
|
||||||
shift # past argument
|
shift # past argument
|
||||||
;;
|
;;
|
||||||
--only-frontend)
|
--frontend)
|
||||||
ONLY_FRONTEND=YES
|
FRONTEND=YES
|
||||||
shift # past argument
|
shift # past argument
|
||||||
;;
|
;;
|
||||||
--only-packages)
|
--packages)
|
||||||
ONLY_PACKAGES=YES
|
PACKAGES=YES
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--lint)
|
||||||
|
LINT=YES
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--all)
|
||||||
|
BACKEND=YES
|
||||||
|
FRONTEND=YES
|
||||||
|
PACKAGES=YES
|
||||||
|
LINT=YES
|
||||||
shift # past argument
|
shift # past argument
|
||||||
;;
|
;;
|
||||||
*) # unknown option
|
*) # unknown option
|
||||||
|
@ -282,25 +292,34 @@ esac
|
||||||
done
|
done
|
||||||
set -- "${POSITIONAL[@]}" # restore positional parameters
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
|
||||||
# Only build backend if we haven't set only-frontend or only-packages
|
if [ "$BACKEND" = "YES" ];
|
||||||
if [ -z "$ONLY_FRONTEND" ] && [ -z "$ONLY_PACKAGES" ];
|
|
||||||
then
|
then
|
||||||
UpdateVersionNumber
|
UpdateVersionNumber
|
||||||
Build
|
Build
|
||||||
PackageTests
|
PackageTests
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Only build frontend if we haven't set only-backend or only-packages
|
if [ "$FRONTEND" = "YES" ];
|
||||||
if [ -z "$ONLY_BACKEND" ] && [ -z "$ONLY_PACKAGES" ];
|
|
||||||
then
|
then
|
||||||
RunGulp
|
YarnInstall
|
||||||
|
RunGulp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Only package if we haven't set only-backend or only-frontend
|
if [ "$LINT" = "YES" ];
|
||||||
if [ -z "$ONLY_BACKEND" ] && [ -z "$ONLY_FRONTEND" ];
|
|
||||||
then
|
then
|
||||||
|
if [ -z "$FRONTEND" ];
|
||||||
|
then
|
||||||
|
YarnInstall
|
||||||
|
fi
|
||||||
|
|
||||||
|
LintUI
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PACKAGES" = "YES" ];
|
||||||
|
then
|
||||||
|
UpdateVersionNumber
|
||||||
PackageWindows "net462"
|
PackageWindows "net462"
|
||||||
PackageLinux "net462"
|
PackageLinux "net462" "linux-x64"
|
||||||
PackageMacOS "net462"
|
PackageMacOS "net462"
|
||||||
PackageMacOSApp "net462"
|
PackageMacOSApp "net462"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
"clean": "git clean -fXd",
|
"clean": "git clean -fXd",
|
||||||
"lint": "esprint check",
|
"lint": "esprint check",
|
||||||
"lint-fix": "eslint start --fix",
|
"lint-fix": "eslint start --fix",
|
||||||
"stylelint": "stylelint frontend/**/*.css --config frontend/.stylelintrc"
|
"stylelint-linux": "stylelint $(find frontend -name '*.css') --config frontend/.stylelintrc",
|
||||||
|
"stylelint-windows": "stylelint frontend/**/*.css --config frontend/.stylelintrc"
|
||||||
},
|
},
|
||||||
"repository": "https://github.com/Radarr/Radarr",
|
"repository": "https://github.com/Radarr/Radarr",
|
||||||
"author": "Team Radarr",
|
"author": "Team Radarr",
|
||||||
|
|
|
@ -26,7 +26,7 @@ DefaultDirName={commonappdata}\Radarr\bin
|
||||||
DisableDirPage=yes
|
DisableDirPage=yes
|
||||||
DefaultGroupName={#AppName}
|
DefaultGroupName={#AppName}
|
||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
OutputBaseFilename=Radarr.{#BranchName}.{#BuildVersion}.windows
|
OutputBaseFilename=Radarr.{#BranchName}.{#BuildVersion}.windows.{#Framework}
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
AppCopyright=Creative Commons 3.0 License
|
AppCopyright=Creative Commons 3.0 License
|
||||||
AllowUNCPath=False
|
AllowUNCPath=False
|
||||||
|
@ -36,6 +36,7 @@ CompressionThreads=2
|
||||||
Compression=lzma2/normal
|
Compression=lzma2/normal
|
||||||
AppContact={#ForumsURL}
|
AppContact={#ForumsURL}
|
||||||
VersionInfoVersion={#BaseVersion}.{#BuildNumber}
|
VersionInfoVersion={#BaseVersion}.{#BuildNumber}
|
||||||
|
SetupLogging=yes
|
||||||
|
|
||||||
[Languages]
|
[Languages]
|
||||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
|
@ -47,8 +48,8 @@ Name: "startupShortcut"; Description: "Create shortcut in Startup folder (Starts
|
||||||
Name: "none"; Description: "Do not start automatically"; GroupDescription: "Start automatically"; Flags: exclusive unchecked
|
Name: "none"; Description: "Do not start automatically"; GroupDescription: "Start automatically"; Flags: exclusive unchecked
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "..\_artifacts\windows\net462\Radarr\Radarr.exe"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "..\_artifacts\windows\{#Framework}\Radarr\Radarr.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "..\_artifacts\windows\net462\Radarr\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "..\_artifacts\windows\{#Framework}\Radarr\*"; Excludes: "Radarr.Update"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
|
|
5
test.sh
5
test.sh
|
@ -29,10 +29,9 @@ NUNIT_PARAMS="--workers=1"
|
||||||
|
|
||||||
if [ "$PLATFORM" = "Mac" ]; then
|
if [ "$PLATFORM" = "Mac" ]; then
|
||||||
|
|
||||||
export DYLD_FALLBACK_LIBRARY_PATH="$TEST_DIR:/usr/local/lib:/lib:/usr/lib"
|
export DYLD_FALLBACK_LIBRARY_PATH="$TEST_DIR:$MONOPREFIX/lib:/usr/local/lib:/lib:/usr/lib"
|
||||||
echo $LD_LIBRARY_PATH
|
|
||||||
echo $DYLD_LIBRARY_PATH
|
|
||||||
echo $DYLD_FALLBACK_LIBRARY_PATH
|
echo $DYLD_FALLBACK_LIBRARY_PATH
|
||||||
|
mono --version
|
||||||
|
|
||||||
# To debug which libraries are being loaded:
|
# To debug which libraries are being loaded:
|
||||||
# export DYLD_PRINT_LIBRARIES=YES
|
# export DYLD_PRINT_LIBRARIES=YES
|
||||||
|
|
Loading…
Reference in a new issue