From 2e615ccb6bc43fbba7b3edad9599f35865aaa483 Mon Sep 17 00:00:00 2001 From: avk Date: Thu, 13 Sep 2018 20:00:08 +0500 Subject: [PATCH] use Nerdbank.GitVersioning to automate generation of assembly and nuget package versions --- CHANGELOG.md | 10 ++++++++++ Directory.Build.props | 4 ++++ Directory.Build.targets | 13 ++++++++++++ GrEmit/GrEmit.csproj | 10 ---------- README.md | 4 ++++ appveyor.yml | 44 +++++++++++++++++++++++++++++++++++++++++ version.json | 17 ++++++++++++++++ 7 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 version.json diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..dcd8da8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## v2.3 - 2018.09.13 +- Use [Nerdbank.GitVersioning](https://github.com/AArnott/Nerdbank.GitVersioning) to automate generation of assembly + and nuget package versions. + +## v2.2 - 2018.01.01 +- Support .NET Standard 2.0 ([PR#9](https://github.com/skbkontur/gremit/pull/9) + by [@Amartel1986](https://github.com/Amartel1986)). +- Switch to SDK-style project format and dotnet core build tooling. diff --git a/Directory.Build.props b/Directory.Build.props index 74e410f..ce9c32a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,4 +12,8 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + + + + \ No newline at end of file diff --git a/Directory.Build.targets b/Directory.Build.targets index cb19e7e..df9d82a 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -7,4 +7,17 @@ + + + $(AssemblyName) + Igor Chevdar + .NET Reflection Emit ILGenerator + GrEmit is a library containing different helpers for generating code using Reflection.Emit with the main one being GroboIL - a smart wrapper over ILGenerator. + git + https://github.com/skbkontur/gremit + $(RepositoryUrl) + $(RepositoryUrl)/releases/tag/v$(MajorMinorVersion)-release + + + \ No newline at end of file diff --git a/GrEmit/GrEmit.csproj b/GrEmit/GrEmit.csproj index 050d81e..e4dffd1 100644 --- a/GrEmit/GrEmit.csproj +++ b/GrEmit/GrEmit.csproj @@ -5,16 +5,6 @@ true true 1701;1702;1705;1591 - GrEmit - 2.2.3 - $(VersionPrefix) - $(VersionPrefix).0 - Igor Chevdar - .NET Reflection Emit ILGenerator - GrEmit is a library containing different helpers for generating code using Reflection.Emit with the main one being GroboIL - a smart wrapper over ILGenerator. - git - https://github.com/skbkontur/gremit - $(RepositoryUrl) diff --git a/README.md b/README.md index 851ed52..a2bf0b9 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,7 @@ notNull_0: // [{Object: IList, IList, IReadOnlyList}] // [Int32] ret // [] ``` + +## Release Notes + +See [CHANGELOG](CHANGELOG.md). diff --git a/appveyor.yml b/appveyor.yml index 787fb9b..fdfcd55 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,29 @@ +version: '{build}' + +skip_commits: + files: + - '**/*.md' + image: Visual Studio 2017 init: - cmd: git config --global core.autocrlf false + - ps: | + $ErrorActionPreference = "Stop" + $tagName = $env:APPVEYOR_REPO_TAG_NAME + if ($tagName -match '^v\d+\.\d+') # tag name starts with 'vX.Y' + { + $env:SHOULD_PUBLISH_NUGET_PACKAGE = "true" + Write-Host "Will publish nuget package for $tagName tag" -ForegroundColor "Green" + if ($tagName -match '^v\d+\.\d+-release$') # tag name matches 'vX.Y-release' + { + $env:SHOULD_CREATE_RELEASE = "true" + Write-Host "Will create release for $tagName tag" -ForegroundColor "Green" + } + } + +nuget: + disable_publish_on_pr: true before_build: - cmd: dotnet --info @@ -9,6 +31,28 @@ before_build: build_script: - cmd: dotnet build --configuration Release ./GrEmit.sln + - cmd: dotnet pack --no-build --configuration Release ./GrEmit.sln test_script: - cmd: dotnet test --no-build --configuration Release ./GrEmit.Tests/GrEmit.Tests.csproj + +artifacts: + - path: './GrEmit/bin/Release/*.nupkg' + +deploy: + - provider: NuGet + server: https://nuget.org + api_key: + secure: dzTnT0xSlPrHnrG06cj354nTN4lXWhfh4ZCJ1910I3VnNdvbx0rQFLTyJ5l1+bgB + skip_symbols: true + on: + SHOULD_PUBLISH_NUGET_PACKAGE: true + + - provider: GitHub + tag: $(APPVEYOR_REPO_TAG_NAME) + auth_token: + secure: y8dDOcAtq4U1MTDJFX8f23xsvyFU1u4bhwr9Lzbkf2revNWPPTifBkWghris9v8i + draft: false + prerelease: false + on: + SHOULD_CREATE_RELEASE: true diff --git a/version.json b/version.json new file mode 100644 index 0000000..1711007 --- /dev/null +++ b/version.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "2.3", + "publicReleaseRefSpec": [ + "^refs/heads/master$", + "^refs/tags/v\\d+\\.\\d+" + ], + "nugetPackageVersion": { + "semVer": 2 + }, + "cloudBuild": { + "setVersionVariables": true, + "buildNumber": { + "enabled": false + } + } +} \ No newline at end of file