Skip to content

Commit 7dd3adf

Browse files
committed
vmalinovskiy: migration to net 4.5 and gradle build tool
1 parent 574dbd2 commit 7dd3adf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+484
-591
lines changed

Build.proj

Lines changed: 0 additions & 98 deletions
This file was deleted.

CallfireApiClient.nuspec

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
<?xml version="1.0"?>
2-
<package>
1+
<?xml version="1.0" encoding="UTF-8"?><package>
32
<metadata>
43
<id>CallfireApiClient</id>
5-
<version>1.1.6</version>
4+
<version>1.1.7</version>
65
<title>CallFire API v2 client</title>
76
<authors>
87
Vladimir Mikhailov
@@ -16,6 +15,10 @@
1615
<description>C# client library for integration with Callfire REST API v2 services</description>
1716
<releaseNotes>Callfire API client Changelog
1817
=============================
18+
Version 1.1.7 - Apr 18 2016
19+
- migration to 4.5 net framework
20+
- migration to gradle
21+
1922
Version 1.1.6 - Mar 25 2016
2023
- added mono debug files generation on Windows platform
2124
- removed get/update batch api calls from TextBroadcastsApi
@@ -46,16 +49,16 @@ Version 1.0.0 - Dec 29 2015
4649
<copyright>Copyright (c) 2015 CallFire Inc.</copyright>
4750
<tags>Callfire rest api client</tags>
4851
<dependencies>
49-
<dependency id="Newtonsoft.Json" version="7.0.1" />
50-
<dependency id="RestSharp" version="105.2.3" />
52+
<dependency id="Newtonsoft.Json" version="7.0.1"/>
53+
<dependency id="RestSharp" version="105.2.3"/>
5154
</dependencies>
5255
</metadata>
5356
<files>
54-
<file src="**/*.cs" target="src" />
55-
<file src="LICENSE" />
56-
<file src="Changelog" />
57-
<file src="src/CallfireApiClient/bin/Debug/callfire-api-client.dll" target="lib" />
58-
<file src="src/CallfireApiClient/bin/Release/callfire-api-client.dll.config" target="lib" />
59-
<file src="src/CallfireApiClient/bin/Release/callfire-api-client.xml" target="lib" />
57+
<file src="LICENSE"/>
58+
<file src="Changelog"/>
59+
<file src="src/**/*.cs" target="src"/>
60+
<file src="src/CallfireApiClient/bin/Debug/callfire-api-client.dll" target="lib"/>
61+
<file src="src/CallfireApiClient/bin/Release/callfire-api-client.dll.config" target="lib"/>
62+
<file src="src/CallfireApiClient/bin/Release/callfire-api-client.xml" target="lib"/>
6063
</files>
61-
</package>
64+
</package>

Changelog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
Callfire API client Changelog
22
=============================
3+
Version 1.1.7 - Apr 18 2016
4+
- migration to 4.5 net framework
5+
- migration to gradle
6+
37
Version 1.1.6 - Mar 25 2016
48
- added mono debug files generation on Windows platform
59
- removed get/update batch api calls from TextBroadcastsApi

build.gradle

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
import org.gradle.internal.os.OperatingSystem
2+
import org.apache.tools.ant.taskdefs.condition.Os
3+
import groovy.xml.XmlUtil
4+
5+
plugins {
6+
id 'com.ullink.msbuild' version '2.14'
7+
id 'com.ullink.nuget' version '2.12'
8+
id 'com.ullink.nunit' version '1.4'
9+
id 'com.ullink.opencover' version '1.2'
10+
id 'net.researchgate.release' version '2.3.4'
11+
}
12+
13+
archivesBaseName = 'callfire-api-client'
14+
ext['buildReleaseConfiguration'] = "Release"
15+
ext['buildDebugConfiguration'] = "Debug"
16+
ext['assemblyBinReleaseDir'] = "src/CallfireApiClient/bin/$buildReleaseConfiguration"
17+
ext['assemblyBinDebugDir'] = "src/CallfireApiClient/bin/$buildDebugConfiguration"
18+
ext['buildDistDir'] = "$buildDir/dist"
19+
ext['assemblyInfo'] = "src/CallfireApiClient/Properties/AssemblyInfo.cs"
20+
21+
defaultTasks('nugetPack')
22+
23+
nuget {
24+
// oh boy, version 3.3.0 seems to freeze during restore on linux ... rollbacking.... again
25+
version = '2.8.6'
26+
}
27+
28+
task msbuildRelease (type: com.ullink.Msbuild) {
29+
solutionFile = 'callfire-api-client-csharp.sln'
30+
configuration = buildReleaseConfiguration
31+
projectName = 'CallfireApiClient'
32+
generateDoc = true
33+
}
34+
msbuildRelease.dependsOn nugetRestore
35+
36+
task msbuildDebug (type: com.ullink.Msbuild) {
37+
msbuild {
38+
solutionFile = 'callfire-api-client-csharp.sln'
39+
configuration = buildDebugConfiguration
40+
projectName = 'CallfireApiClient'
41+
}
42+
}
43+
msbuildDebug.dependsOn nunit
44+
45+
nunit {
46+
testAssemblies = [ msbuild.projects['CallfireApiClient.Tests'].properties.TargetPath ]
47+
}
48+
nunit.dependsOn msbuildRelease
49+
50+
task updateNuspecFile << {
51+
def specFile = file('CallfireApiClient.nuspec')
52+
def spec = new XmlSlurper().parse(specFile)
53+
54+
project.version = patchVersion(spec.metadata.version.text)
55+
spec.metadata.version = project.version
56+
spec.metadata.releaseNotes = file('Changelog').text
57+
// cleanup previous lib/ and src/ files since they depend on build configuration
58+
spec.files.file.findAll { it.@target == 'lib' || it.@target == 'src' }.each { it.replaceNode {} }
59+
60+
def isWindowsOs = Os.isFamily(Os.FAMILY_WINDOWS)
61+
def monoInstallation = "$System.env.MONO_HOME"
62+
def pdbToMdbConverter
63+
if (isWindowsOs) {
64+
if (monoInstallation != 'null') {
65+
pdbToMdbConverter = "$System.env.MONO_HOME" + "\\bin\\pdb2mdb.bat"
66+
exec { commandLine = [pdbToMdbConverter, "$assemblyBinDebugDir/${archivesBaseName}.dll"] }
67+
}
68+
}
69+
70+
spec.files.appendNode {
71+
file(src: "src/**/*.cs", target: 'src') {}
72+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.dll", target: 'lib') {}
73+
file(src: "$assemblyBinReleaseDir/${archivesBaseName}.dll.config", target: 'lib') {}
74+
file(src: "$assemblyBinReleaseDir/${archivesBaseName}.xml", target: 'lib') {}
75+
if (isWindowsOs) {
76+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.pdb", target: 'lib') {}
77+
}
78+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.dll.mdb", target: 'lib') {}
79+
}
80+
81+
def fw = new FileWriter('CallfireApiClient.nuspec')
82+
XmlUtil.serialize(spec, fw)
83+
// have to close manually because on windows file remains locked
84+
fw.close()
85+
}
86+
updateNuspecFile.dependsOn msbuildDebug
87+
88+
def patchVersion(version) {
89+
def regex = ~/\[assembly: AssemblyVersion\("(.*)\.\*"\)\]/
90+
def matcher = regex.matcher(new File(assemblyInfo).text)
91+
while(matcher.find()) {
92+
def updated = matcher.group(1)
93+
println "Patching Nuspec version to $updated"
94+
return updated
95+
}
96+
version
97+
}
98+
99+
task zipBinaries(type: Zip) {
100+
destinationDir = file(buildDistDir)
101+
from 'LICENSE'
102+
from 'Changelog'
103+
from (assemblyBinReleaseDir) {
104+
include "${archivesBaseName}.*"
105+
}
106+
}
107+
zipBinaries.dependsOn nugetSpec
108+
109+
// nuget package for upload to nuget
110+
nugetSpec {
111+
nuspecFile = file('CallfireApiClient.nuspec')
112+
}
113+
nugetSpec.dependsOn updateNuspecFile
114+
115+
nugetPack {
116+
destinationDir = buildDistDir
117+
generateSymbols = true
118+
}
119+
nugetPack.dependsOn zipBinaries
120+
121+
// nuget package upload, requires API key to be set
122+
nugetPush {
123+
apiKey = System.properties[ 'NUGET_API_KEY' ] ?: "key not set"
124+
nupkgFile = nugetPack.packageFile
125+
}

0 commit comments

Comments
 (0)