forked from libgit2/libgit2sharp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to GitHub Actions for CI/PR builds
- Loading branch information
Showing
35 changed files
with
764 additions
and
234 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- maint.* | ||
- validate/* | ||
pull_request: | ||
|
||
env: | ||
TreatWarningsAsErrors: true | ||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | ||
BUILDCONFIGURATION: Release | ||
CODECOV_TOKEN: a26c421a-824d-4a30-933b-47b2a203587f | ||
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages | ||
|
||
jobs: | ||
leak_check: | ||
name: Leak check (ubuntu-18.04) | ||
runs-on: ubuntu-18.04 | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | ||
- name: Install prerequisites | ||
run: ./init.ps1 -UpgradePrerequisites | ||
shell: pwsh | ||
- name: Test | ||
run: dotnet test LibGit2Sharp.Tests --no-restore -c ${{ env.BUILDCONFIGURATION }} --filter "TestCategory!=FailsInCloudTest" -v m /p:ExtraDefine=LEAKS_IDENTIFYING -f netcoreapp2.1 | ||
|
||
build: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-18.04 | ||
- macos-latest | ||
- windows-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | ||
- name: Install prerequisites | ||
run: | | ||
./init.ps1 -UpgradePrerequisites | ||
dotnet --info | ||
shell: pwsh | ||
- name: Build | ||
run: dotnet build --no-restore -c ${{ env.BUILDCONFIGURATION }} /v:m /bl:"bin/build_logs/build.binlog" | ||
- name: Pack | ||
run: dotnet pack --no-build -c ${{ env.BUILDCONFIGURATION }} /v:m /bl:"bin/build_logs/pack.binlog" | ||
if: runner.os == 'Windows' | ||
- name: Test everything | ||
run: dotnet test --no-build -c ${{ env.BUILDCONFIGURATION }} /bl:"bin/build_logs/test.binlog" --filter "TestCategory!=FailsInCloudTest" -v n /p:CollectCoverage=true | ||
if: runner.os == 'Windows' | ||
- name: Test .NET Core | ||
run: dotnet test --no-build -c ${{ env.BUILDCONFIGURATION }} /bl:"bin/build_logs/test.binlog" --filter "TestCategory!=FailsInCloudTest" -v n /p:CollectCoverage=true -f netcoreapp2.1 | ||
if: runner.os != 'Windows' | ||
- name: Collect artifacts | ||
run: azure-pipelines/artifacts/_stage_all.ps1 | ||
shell: pwsh | ||
if: always() | ||
- name: Upload project.assets.json files | ||
if: always() | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: projectAssetsJson-${{ runner.os }} | ||
path: obj/_artifacts/projectAssetsJson | ||
continue-on-error: true | ||
- name: Upload build_logs | ||
if: always() | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: build_logs-${{ runner.os }} | ||
path: obj/_artifacts/build_logs | ||
continue-on-error: true | ||
- name: Upload coverageResults | ||
if: always() | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: coverageResults-${{ runner.os }} | ||
path: obj/_artifacts/coverageResults | ||
continue-on-error: true | ||
- name: Upload deployables | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: deployables | ||
path: obj/_artifacts/deployables | ||
if: runner.os == 'Windows' | ||
- name: Publish code coverage results to codecov.io | ||
run: bash <(curl -s https://codecov.io/bash) | ||
shell: bash | ||
timeout-minutes: 3 | ||
continue-on-error: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | ||
- [email protected] | ||
- NOTTHISONE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | ||
- [email protected] | ||
on_build_status_changed: true | ||
only: | ||
- NOTTHISONE |
Oops, something went wrong.