From c4c615a2e8f52b671472e235e2d578bbefc7a0bf Mon Sep 17 00:00:00 2001 From: Sam Harrison Date: Tue, 18 Aug 2020 14:26:22 -0500 Subject: [PATCH] chore: simplify the build-test-pack-release process Drop AppVeyor integration in favor of testing and deploying via TravisCI and Mono. Also drop the explicit framework building/testing since `dotnet test` executes for each targeted framework. --- .travis.yml | 35 ++++++------ Makefile | 12 ++-- appveyor.yml | 20 ------- build.ps1 | 87 ----------------------------- test/Twilio.Test/Twilio.Test.csproj | 1 + 5 files changed, 24 insertions(+), 131 deletions(-) delete mode 100644 appveyor.yml delete mode 100644 build.ps1 diff --git a/.travis.yml b/.travis.yml index ed3050235..a5471ebf6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,28 +1,31 @@ language: csharp solution: Twilio.sln -dist: xenial -sudo: required -mono: none -dotnet: 2.1 +mono: latest +dotnet: 3.1 + +env: + - FrameworkPathOverride=/usr/lib/mono/4.5/ services: - docker -install: - - dotnet restore - - dotnet build --framework netstandard1.4 src/Twilio/Twilio.csproj - - dotnet build --framework netstandard2.0 src/Twilio/Twilio.csproj - - dotnet build --framework netcoreapp2.0 test/Twilio.Test/Twilio.Test.csproj - script: - - dotnet run --framework netcoreapp2.0 --project test/Twilio.Test/Twilio.Test.csproj + - make test + - make release deploy: - provider: script - script: make docker-build && make docker-push - skip_cleanup: true - on: - tags: true + - provider: script + script: make docker-build && make docker-push + skip_cleanup: true + on: + branch: main + tags: true + - provider: script + script: dotnet nuget push **/*.nupkg -k $NUGET_API_KEY -s https://api.nuget.org/v3/index.json + skip_cleanup: true + on: + branch: main + tags: true notifications: slack: diff --git a/Makefile b/Makefile index 6332945bc..940e3e91e 100644 --- a/Makefile +++ b/Makefile @@ -8,15 +8,11 @@ install: dotnet restore test: - dotnet restore - dotnet build --framework netstandard1.4 src/Twilio/Twilio.csproj - dotnet build --framework netstandard2.0 src/Twilio/Twilio.csproj - dotnet build --framework netcoreapp2.0 test/Twilio.Test/Twilio.Test.csproj - dotnet run --framework netcoreapp2.0 --project test/Twilio.Test/Twilio.Test.csproj - -release: test dotnet build -c Release - dotnet pack src/Twilio/Twilio.csproj -c Release -o . + dotnet test -c Release + +release: + dotnet pack -c Release docs: doxygen Doxyfile diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 2d9a0aab9..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '{build}' -image: Visual Studio 2017 -configuration: Release -build_script: -- ps: . .\build.ps1 -test: off -artifacts: -- path: .\Twilio.*.nupkg -branches: - only: - - main -deploy: - provider: NuGet - api_key: - secure: VFvsLn6PF6HuLGwrGuXTuuRa8L4CjBmvPfwffdQdQ4oiKF3elGVtdiGY2JrEfTlw - skip_symbols: false - artifact: /Twilio\..*\.nupkg/ - on: - branch: main - APPVEYOR_REPO_TAG: true diff --git a/build.ps1 b/build.ps1 deleted file mode 100644 index d3ecea57f..000000000 --- a/build.ps1 +++ /dev/null @@ -1,87 +0,0 @@ -function Header ($message) { - Write-Host "`n== $message ==" -foregroundcolor yellow -} - -try { - msbuild /t:clean /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - # .NET Framework 3.5 Target & Tests - - Header "Building for .NET Framework 3.5" - msbuild /t:restore /p:TargetFramework=net35 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild /p:TargetFramework=net35 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - Header "Testing on .NET Framework 3.5" - .\test\Twilio.Test\bin\Release\net35\win7-x86\Twilio.Test.exe - if ($lastExitCode -ne 0) { exit $lastExitCode } - - # .NET Framework 4.5.1 Target & Tests - - Header "Building for .NET Framework 4.5.1" - msbuild /t:restore /p:TargetFramework=net451 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild /p:TargetFramework=net451 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - Header "Testing on .NET Framework 4.5.1" - .\test\Twilio.Test\bin\Release\net451\win7-x86\Twilio.Test.exe - if ($lastExitCode -ne 0) { exit $lastExitCode } - - # .NET Standard 1.4 Target & Tests - - Header "Building for .NET Standard 1.4" - msbuild .\src\Twilio\Twilio.csproj /t:restore /p:TargetFramework=netstandard1.4 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\test\Twilio.Test\Twilio.Test.csproj /t:restore /p:TargetFramework=netcoreapp2.0 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\src\Twilio\Twilio.csproj /p:TargetFramework=netstandard1.4 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\test\Twilio.Test\Twilio.Test.csproj /p:TargetFramework=netcoreapp2.0 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - Header "Testing on .NET Standard 1.4" - dotnet run --framework netcoreapp2.0 --project .\test\Twilio.Test\Twilio.Test.csproj - if ($lastExitCode -ne 0) { exit $lastExitCode } - - # .NET Standard 2.0 Target & Tests - - Header "Building for .NET Standard 2.0" - msbuild .\src\Twilio\Twilio.csproj /t:restore /p:TargetFramework=netstandard2.0 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\test\Twilio.Test\Twilio.Test.csproj /t:restore /p:TargetFramework=netcoreapp2.0 /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\src\Twilio\Twilio.csproj /p:TargetFramework=netstandard2.0 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - msbuild .\test\Twilio.Test\Twilio.Test.csproj /p:TargetFramework=netcoreapp2.0 /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - Header "Testing on .NET Standard 2.0" - dotnet run --framework netcoreapp2.0 --project .\test\Twilio.Test\Twilio.Test.csproj - if ($lastExitCode -ne 0) { exit $lastExitCode } - - # Create the NuGet Package - - Header "Building NuGet Package" - msbuild .\src\Twilio\Twilio.csproj /t:pack /p:Configuration=Release /verbosity:minimal - if ($lastExitCode -ne 0) { exit $lastExitCode } - - Move-Item src\Twilio\bin\Release\Twilio.*.nupkg .\ - if ($lastExitCode -ne 0) { exit $lastExitCode } -} catch { - Write-Host "" - Write-Host "Caught an exception:" -ForegroundColor Red - Write-Host "Exception Type: $($_.Exception.GetType().FullName)" -ForegroundColor Red - Write-Host "Exception Message: $($_.Exception.Message)" -ForegroundColor Red - exit 1 -} diff --git a/test/Twilio.Test/Twilio.Test.csproj b/test/Twilio.Test/Twilio.Test.csproj index 92a299147..09e0ca6c5 100644 --- a/test/Twilio.Test/Twilio.Test.csproj +++ b/test/Twilio.Test/Twilio.Test.csproj @@ -5,6 +5,7 @@ netcoreapp2.0;net451;net35 win7-x86 win7-x86 + false