-
Notifications
You must be signed in to change notification settings - Fork 899
Use Azure Pipelines exclusively (i.e. drop Travis, AppVeyor) #1761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
a3d9f7b
dd006b7
15d6464
ddd4998
ae05395
5f47dac
369a98b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,7 @@ | ||
# Travis-CI Build for libgit2sharp | ||
# see travis-ci.org for details | ||
|
||
language: csharp | ||
mono: none | ||
|
||
matrix: | ||
include: | ||
- os: linux | ||
dist: xenial | ||
before_install: | ||
- | | ||
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb | ||
sudo dpkg -i packages-microsoft-prod.deb | ||
sudo apt-get update | ||
sudo apt-get install -y powershell | ||
- os: osx | ||
osx_image: xcode8.3 | ||
before_install: | ||
- brew update # This is necessary to get pwsh 6.2 instead of some 6.0-preview that isn't named `pwsh` | ||
- brew cask install powershell | ||
fast_finish: true | ||
|
||
before_install: | ||
- date -u | ||
- uname -a | ||
- env | sort | ||
|
||
install: | ||
- git fetch --unshallow | ||
- pwsh ./tools/Install-DotNetSdk.ps1 ; export PATH=~/.dotnet:$PATH | ||
|
||
# Build libgit2, LibGit2Sharp and run the tests | ||
script: | ||
- ./buildandtest.sh 'LEAKS_IDENTIFYING' | ||
|
||
# Only watch the development branch | ||
# Disable Travis-CI | ||
branches: | ||
only: | ||
- master | ||
- /^maint.*/ | ||
|
||
# Notify of build changes | ||
notifications: | ||
email: | ||
- emeric.fermas@gmail.com | ||
- NOTTHISONE |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<Project> | ||
<PropertyGroup Condition=" '$(IsTestProject)' == 'true' "> | ||
<CoverletOutputFormat>cobertura</CoverletOutputFormat> | ||
<Exclude>[xunit.*]*</Exclude> | ||
<!-- Ensure we preserve each coverlet output file per target framework: https://github.com/tonerdo/coverlet/issues/177 --> | ||
<CoverletOutput>$(OutputPath)/</CoverletOutput> | ||
</PropertyGroup> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This whole file enables code coverage collection when |
||
</Project> |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,7 +11,8 @@ | |
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" /> | ||
<PackageReference Include="coverlet.msbuild" Version="2.7.0" /> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is required for code coverage. |
||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | ||
<PackageReference Include="Moq" Version="4.10.1" /> | ||
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> | ||
<PackageReference Include="xunit" Version="2.4.1" /> | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,7 @@ namespace LibGit2Sharp.Tests | |
public class ShadowCopyFixture : BaseFixture | ||
{ | ||
[Fact] | ||
[Trait("TestCategory", "FailsWhileInstrumented")] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This test sets up an appdomain and loads libgit2sharp. When code coverage is turned on, it invalidates the signature of the strong-name signed assembly and then .NET Framework won't load it. So skip the test during instrumented test runs. We run this test by itself in the very next step on Azure Pipelines to make sure it runs. |
||
public void CanProbeForNativeBinariesFromAShadowCopiedAssembly() | ||
{ | ||
Type type = typeof(Wrapper); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,158 +1,4 @@ | ||
version: '{build}' | ||
|
||
os: Visual Studio 2019 | ||
|
||
# Disable AppVeyor | ||
branches: | ||
only: | ||
- master | ||
- /^maint.*/ | ||
|
||
configuration: release | ||
|
||
skip_tags: true | ||
|
||
nuget: | ||
disable_publish_on_pr: true | ||
|
||
environment: | ||
coveralls_token: | ||
secure: ixIsBslo9NheDb5lJknF58EYdgvZ0r3/L0ecRiXjfXmjHBLvoSU6/ZRwaMM+BAlG | ||
coverity_token: | ||
secure: nuzUT+HecXGIi3KaPd/1hgFEZJan/j6+oNbPV75JKjk= | ||
coverity_email: | ||
secure: eGVilNg1Yuq+Xj+SW8r3WCtjnzhoDV0sNJkma4NRq7A= | ||
matrix: | ||
- publish_on_success: False | ||
ExtraDefine: LEAKS_IDENTIFYING | ||
- publish_on_success: True | ||
|
||
matrix: | ||
fast_finish: true | ||
|
||
install: | ||
- ps: | | ||
Write-Host "Commit being built = " -NoNewLine | ||
Write-Host $Env:APPVEYOR_REPO_COMMIT -ForegroundColor "Green" | ||
Write-Host "Target branch = " -NoNewLine | ||
Write-Host $Env:APPVEYOR_REPO_BRANCH -ForegroundColor "Green" | ||
Write-Host "Is a Pull Request = " -NoNewLine | ||
Write-Host $($Env:APPVEYOR_PULL_REQUEST_NUMBER -ne $null) -ForegroundColor "Green" | ||
|
||
$CommitDate = [DateTime]::Parse($Env:APPVEYOR_REPO_COMMIT_TIMESTAMP) | ||
$BuildDate = $CommitDate.ToUniversalTime().ToString("yyyyMMddHHmmss") | ||
Write-Host "Merge commit UTC timestamp = " -NoNewLine | ||
Write-Host $BuildDate -ForegroundColor "Green" | ||
|
||
$Env:SHOULD_RUN_COVERITY_ANALYSIS = $($Env:APPVEYOR_SCHEDULED_BUILD -eq $True) | ||
Write-Host "Should run Coverity analysis = " -NoNewLine | ||
Write-Host $Env:SHOULD_RUN_COVERITY_ANALYSIS -ForegroundColor "Green" | ||
|
||
$Env:SHOULD_RUN_COVERALLS = $($Env:APPVEYOR_SCHEDULED_BUILD -eq $True) | ||
Write-Host "Should run Coveralls = " -NoNewLine | ||
Write-Host $Env:SHOULD_RUN_COVERALLS -ForegroundColor "Green" | ||
|
||
Write-Host "Identifying leaks = " -NoNewLine | ||
Write-Host ($Env:ExtraDefine -eq "LEAKS_IDENTIFYING") -ForegroundColor "Green" | ||
|
||
Write-Host "Should publish on success = " -NoNewLine | ||
Write-Host $Env:publish_on_success -ForegroundColor "Green" | ||
|
||
If ($Env:SHOULD_RUN_COVERALLS -eq $True) | ||
{ | ||
nuget install OpenCover -Version 4.6.166 -ExcludeVersion -OutputDirectory .\packages | ||
nuget install coveralls.net -Version 0.6.0 -ExcludeVersion -OutputDirectory .\packages | ||
} | ||
|
||
If ($Env:SHOULD_RUN_COVERITY_ANALYSIS -eq $True) | ||
{ | ||
cinst curl -y | ||
} | ||
|
||
./tools/Install-DotNetSdk.ps1 | ||
|
||
before_build: | ||
- ps: | | ||
msbuild "$Env:APPVEYOR_BUILD_FOLDER\LibGit2Sharp.sln" ` | ||
/nologo /verbosity:quiet ` | ||
/logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ` | ||
/t:restore | ||
|
||
build_script: | ||
- ps: | | ||
& cov-build.exe --dir cov-int msbuild "$Env:APPVEYOR_BUILD_FOLDER\LibGit2Sharp.sln" ` | ||
/nologo /verbosity:minimal /fl /flp:verbosity=normal ` | ||
/logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ` | ||
/t:build,pack | ||
|
||
test_script: | ||
- ps: | | ||
Foreach ($runner in 'xunit.console.exe','xunit.console.x86.exe') | ||
{ | ||
If ($Env:SHOULD_RUN_COVERALLS -eq $True -and $Env:publish_on_success -eq $True) | ||
{ | ||
.\packages\OpenCover\tools\OpenCover.Console.exe ` | ||
-register:user ` | ||
"-target:""$Env:userprofile\.nuget\packages\xunit.runner.console\2.4.1\tools\net46\$runner""" ` | ||
"-targetargs:""$Env:APPVEYOR_BUILD_FOLDER\bin\LibGit2Sharp.Tests\Release\net46\LibGit2Sharp.Tests.dll"" -noshadow" ` | ||
"-filter:+[LibGit2Sharp]* -[LibGit2Sharp.Tests]*" ` | ||
-hideskipped:All ` | ||
-output:opencoverCoverage.xml | ||
} | ||
ElseIf ($Env:SHOULD_RUN_COVERITY_ANALYSIS -eq $False) | ||
{ | ||
& "$Env:userprofile\.nuget\packages\xunit.runner.console\2.4.1\tools\net46\$runner" ` | ||
"$Env:APPVEYOR_BUILD_FOLDER\bin\LibGit2Sharp.Tests\Release\net46\LibGit2Sharp.Tests.dll" -noshadow | ||
} | ||
} | ||
|
||
- dotnet test LibGit2Sharp.Tests/LibGit2Sharp.Tests.csproj -f netcoreapp2.1 --no-restore --no-build | ||
|
||
after_test: | ||
- ps: | | ||
If ($Env:SHOULD_RUN_COVERALLS -eq $True -and $Env:publish_on_success -eq $True) | ||
{ | ||
Write-Host "Uploading code coverage result..." -ForegroundColor "Green" | ||
|
||
.\packages\coveralls.net\tools\csmacnz.Coveralls.exe ` | ||
--opencover -i opencoverCoverage.xml ` | ||
--repoToken $Env:coveralls_token ` | ||
--useRelativePaths ` | ||
--basePath "$Env:APPVEYOR_BUILD_FOLDER\"` | ||
} | ||
|
||
If ($Env:SHOULD_RUN_COVERITY_ANALYSIS -eq $True -and $Env:publish_on_success -eq $True) | ||
{ | ||
7z a "$Env:APPVEYOR_BUILD_FOLDER\$Env:APPVEYOR_PROJECT_NAME.zip" "$Env:APPVEYOR_BUILD_FOLDER\cov-int\" | ||
|
||
# cf. http://stackoverflow.com/a/25045154/335418 | ||
Remove-item alias:curl | ||
|
||
Write-Host "Uploading Coverity analysis result..." -ForegroundColor "Green" | ||
|
||
curl --silent --show-error ` | ||
--output curl-out.txt ` | ||
--form token="$Env:coverity_token" ` | ||
--form email="$Env:coverity_email" ` | ||
--form "file=@$Env:APPVEYOR_BUILD_FOLDER\$Env:APPVEYOR_PROJECT_NAME.zip" ` | ||
--form version="$Env:APPVEYOR_REPO_COMMIT" ` | ||
--form description="CI server scheduled build." ` | ||
https://scan.coverity.com/builds?project=libgit2%2Flibgit2sharp | ||
|
||
cat .\curl-out.txt | ||
} | ||
|
||
on_finish: | ||
- ps: Push-AppveyorArtifact "msbuild.log" | ||
|
||
on_success: | ||
- ps: | | ||
if ($Env:publish_on_success -eq $True) | ||
{ | ||
Get-ChildItem "bin\LibGit2Sharp\$env:configuration\*.nupkg" |% { Push-AppveyorArtifact $_.FullName -FileName $_.Name } | ||
} | ||
|
||
notifications: | ||
- provider: Email | ||
to: | ||
- emeric.fermas@gmail.com | ||
on_build_status_changed: true | ||
only: | ||
- NOTTHISONE |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,19 @@ | ||
trigger: | ||
- master | ||
- maint/* | ||
branches: | ||
include: | ||
- master | ||
- 'maint.*' | ||
paths: | ||
exclude: | ||
- doc/ | ||
- '*.md' | ||
- .vscode/ | ||
|
||
variables: | ||
solution: '**/*.sln' | ||
buildPlatform: 'Any CPU' | ||
buildConfiguration: 'Release' | ||
TreatWarningsAsErrors: true | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of putting this here, I think it makes sense to add There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The problem with that is then you can't even build locally when there are warnings. That slows down your dev inner loop. I greatly prefer for warnings to be allowed during the inner loop and only be accountable to fix all warnings before a PR is accepted. |
||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | ||
bording marked this conversation as resolved.
Show resolved
Hide resolved
|
||
BuildConfiguration: Release | ||
NUGET_PACKAGES: $(Agent.TempDirectory)/.nuget/packages | ||
bording marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
jobs: | ||
- job: Windows | ||
pool: | ||
vmImage: 'windows-2019' | ||
steps: | ||
- pwsh: ./tools/Install-DotNetSdk.ps1 | ||
displayName: Installing .NET Core SDK and runtimes | ||
- script: buildandtest.cmd | ||
displayName: Build and test | ||
- job: Linux | ||
pool: | ||
vmImage: 'Ubuntu 16.04' | ||
steps: | ||
- pwsh: ./tools/Install-DotNetSdk.ps1 | ||
displayName: Installing .NET Core SDK and runtimes | ||
- script: ./buildandtest.sh | ||
displayName: Build and test | ||
- job: macOS | ||
pool: | ||
vmImage: 'macOS 10.13' | ||
steps: | ||
- pwsh: ./tools/Install-DotNetSdk.ps1 | ||
displayName: Installing .NET Core SDK and runtimes | ||
- script: ./buildandtest.sh | ||
displayName: Build and test | ||
- template: azure-pipelines/build.yml |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<# | ||
.SYNOPSIS | ||
Converts between Windows PDB and Portable PDB formats. | ||
.PARAMETER DllPath | ||
The path to the DLL whose PDB is to be converted. | ||
.PARAMETER PdbPath | ||
The path to the PDB to convert. May be omitted if the DLL was compiled on this machine and the PDB is still at its original path. | ||
.PARAMETER OutputPath | ||
The path of the output PDB to write. | ||
#> | ||
#Function Convert-PortableToWindowsPDB() { | ||
Param( | ||
[Parameter(Mandatory=$true,Position=0)] | ||
[string]$DllPath, | ||
[Parameter()] | ||
[string]$PdbPath, | ||
[Parameter(Mandatory=$true,Position=1)] | ||
[string]$OutputPath | ||
) | ||
|
||
$version = '1.1.0-beta2-19516-01' | ||
$baseDir = "$PSScriptRoot\..\obj\tools" | ||
$pdb2pdbpath = "$baseDir\pdb2pdb.$version\tools\Pdb2Pdb.exe" | ||
if (-not (Test-Path $pdb2pdbpath)) { | ||
if (-not (Test-Path $baseDir)) { New-Item -Type Directory -Path $baseDir | Out-Null } | ||
$baseDir = (Resolve-Path $baseDir).Path # Normalize it | ||
& (& $PSScriptRoot\Get-NuGetTool.ps1) install pdb2pdb -version $version -PackageSaveMode nuspec -OutputDirectory $baseDir -Source https://dotnet.myget.org/F/symreader-converter/api/v3/index.json | Out-Null | ||
} | ||
|
||
$args = $DllPath,'/out',$OutputPath,'/nowarn','0021' | ||
if ($PdbPath) { | ||
$args += '/pdb',$PdbPath | ||
} | ||
|
||
Write-Verbose "$pdb2pdbpath $args" | ||
& $pdb2pdbpath $args | ||
#} |
Uh oh!
There was an error while loading. Please reload this page.