New: Set up CI with Azure Pipelines (#897)

* Set up CI with Azure Pipelines

[skip ci]

* Remove Travis, Build Multiple Environments

* Change Task Type to Bash

* Checkout submodules

* Remove Appveyor Tests, Add Azure Tests

* Oops Forget Steps

* bad name

* test script fixes

* add tests to build job

* fixup tests

* name test runs

* fpcalc and artifacts

* Try to fix installer

* Publish separately

* Try publish

* Another go at artifacts

* Tidy up

* Add sentry, assembly info patching and bump version

* Only patch one AssemblyInfo; set node version 10

* Try pipeline artifacts again

* Tidy up - pipeline artifact seems to be way forward

* Fix installer publish

* first go at test job seperation

* job names and depends/consitions for tests

* pusblish single file test artifact

* pipeline artifact for test

* blitz the pattern filter

* windows test jobs

* mac tests, checkout on test jobs

* try to download build artifact to test job

* download and extract artifact

* Set LD_LIBRARY_PATH and print some sqlite debug info on mac tests

* fixup! tests

* integration test fixes

* fixup! integration test fixes

* fixup! integration test fixes

* more fixup

* use bash cp

* test fixups

* mkdir before copy

* linux works! add osx integration tests

* im tooo tired

* coverage attempt

* coverage seperate stage

* windows paths for integration test

* switch coverage to windows where opencover actually works

* fix test script

* one last go

* Simplify installer, try to fix name

* Try to parallelize backend and frontend build

* Try adding a matrix

* Try matrix jobs not stages

* Try to fix package step

* Remove opencover install

* Try to fix tests

* coverage fixes

* revert build.sh changes

* triggers so we don't double build

* Publish coverage package so we can debug

* try coverage no build, output artifact

* use the full pipeline workspace from build job

* fix automation tests for new ui

* Assorted fix attempts

* Another go

* MacOS debug

* Tidy up, try to fix mac

* Fix mac fpcalc, add mac integration tests

* Add cross platform automation tests

* Fix packages

* Try to fix Automation tests

* Don't wait on the installer to create standard packages

* Fixes

* delete logentries reference

* run automation tests in headless mode

* try install firefox mac

* Revert "try install firefox mac"

This reverts commit 4684bb19018747cb00407e1d8df64391f44f5183.

* test sonarcloud prepare outputs

* basic analyze and upload

* don't limit fetch depth on analyze

* manual scanner do front and backend?

* full analyize with tests, coverage

* should depend on tests, coverage

* no need for condition on coverage

* Fix up build numbering

* Try to fix sonar

* Separate coverage calculation and publication

* Try to fix coverage upload
This commit is contained in:
Qstick
2019-08-13 13:15:59 -04:00
committed by GitHub
parent 72947029f4
commit 6932046c5f
16 changed files with 664 additions and 244 deletions
+2 -71
View File
@@ -1,72 +1,3 @@
version: '0.6.2.{build}'
image:
- Visual Studio 2017
- Ubuntu1804
assembly_info:
patch: true
file: 'src\NzbDrone.Common\Properties\SharedAssemblyInfo.cs'
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}-rc1'
environment:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
nodejs_version: "10"
SENTRY_AUTH_TOKEN:
secure: dIzaGkyqP8JefC+GyXH2RtBHCufpzegoJnxvwGenCsMZNgaVbnoNo4ZMnPY2WYpstCcdXmZb7hbPYmu4FRkKQ8xDQ34YNGlKRKnlFuOQoq8=
SENTRY_ORG: "lidarr"
install:
- git submodule update --init --recursive
- cmd: powershell Install-Product node $env:nodejs_version
- cmd: powershell Set-Service SCardSvr -StartupType Manual
- sh: nvm install $nodejs_version
- sh: sudo apt update
- sh: sudo apt install -y libchromaprint-tools
build_script:
- cmd: C:\msys64\usr\bin\bash -lc "cd \"$APPVEYOR_BUILD_FOLDER\" && exec ./build.sh
- sh: ./build.sh
after_build:
- cmd: C:\msys64\usr\bin\bash -lc "cd \"$APPVEYOR_BUILD_FOLDER\" && exec ./appveyor-package.sh
- sh: ./appveyor-package.sh
- ps: Get-ChildItem .\_artifacts\*.zip | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- ps: Get-ChildItem .\_artifacts\*.exe | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- ps: Get-ChildItem .\_artifacts\*.tar.gz | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
test_script:
- node --version
- yarn --version
- cmd: C:\msys64\usr\bin\bash -lc "cd \"$APPVEYOR_BUILD_FOLDER\" && exec ./test.sh Windows Unit
- sh: ./test.sh Linux Unit
- sh: find "$APPVEYOR_BUILD_FOLDER" -type f -name 'myresults.xml' -print0 | xargs -0 -I '{}' curl -F 'file=@{}' "https://ci.appveyor.com/api/testresults/nunit3/$APPVEYOR_JOB_ID"
cache:
- node_modules -> package.json
pull_requests:
do_not_increment_build_number: true
skip_branch_with_pr: true
on_failure:
- ps: Get-ChildItem .\_artifacts\*.zip | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- ps: Get-ChildItem .\_artifacts\*.exe | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- ps: Get-ChildItem .\_artifacts\*.tar.gz | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
only_commits:
skip_commits:
files:
- src/
- osx/
- gulp/
- logo/
- setup/
- frontend/
- appveyor.yml
- build.sh
- test.sh
- package.json
- appveyor-package.sh
- '**/**'