Skip to content

Commit 2bb8137

Browse files
committed
Merge pull request #32 from CallFire/develop
Migration to gradle build
2 parents 266d4ab + 24ff917 commit 2bb8137

Some content is hidden

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

45 files changed

+486
-595
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.txt"/>
58+
<file src="Changelog.txt"/>
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 renamed to Changelog.txt

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
File renamed without changes.

build.gradle

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
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+
msbuild.dependsOn nugetRestore
29+
msbuild {
30+
solutionFile = 'callfire-api-client-csharp.sln'
31+
configuration = buildReleaseConfiguration
32+
projectName = 'CallfireApiClient'
33+
generateDoc = true
34+
}
35+
36+
task msbuildDebug (type: com.ullink.Msbuild) {
37+
solutionFile = 'callfire-api-client-csharp.sln'
38+
configuration = buildDebugConfiguration
39+
projectName = 'CallfireApiClient'
40+
}
41+
msbuildDebug.dependsOn nunit
42+
43+
nunit {
44+
testAssemblies = [ msbuild.projects['CallfireApiClient.Tests'].properties.TargetPath ]
45+
}
46+
nunit.dependsOn msbuild
47+
48+
task updateNuspecFile << {
49+
def specFile = file('CallfireApiClient.nuspec')
50+
def spec = new XmlSlurper().parse(specFile)
51+
52+
project.version = patchVersion(spec.metadata.version.text)
53+
spec.metadata.version = project.version
54+
spec.metadata.releaseNotes = file('Changelog.txt').text
55+
// cleanup previous lib/ and src/ files since they depend on build configuration
56+
spec.files.file.findAll { it.@target == 'lib' || it.@target == 'src' }.each { it.replaceNode {} }
57+
58+
def isWindowsOs = Os.isFamily(Os.FAMILY_WINDOWS)
59+
def monoInstallation = "$System.env.MONO_HOME"
60+
def pdbToMdbConverter
61+
if (isWindowsOs) {
62+
if (monoInstallation != 'null') {
63+
pdbToMdbConverter = "$System.env.MONO_HOME" + "\\bin\\pdb2mdb.bat"
64+
exec { commandLine = [pdbToMdbConverter, "$assemblyBinDebugDir/${archivesBaseName}.dll"] }
65+
}
66+
}
67+
68+
spec.files.appendNode {
69+
file(src: "src/**/*.cs", target: 'src') {}
70+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.dll", target: 'lib') {}
71+
file(src: "$assemblyBinReleaseDir/${archivesBaseName}.dll.config", target: 'lib') {}
72+
file(src: "$assemblyBinReleaseDir/${archivesBaseName}.xml", target: 'lib') {}
73+
if (isWindowsOs) {
74+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.pdb", target: 'lib') {}
75+
}
76+
file(src: "$assemblyBinDebugDir/${archivesBaseName}.dll.mdb", target: 'lib') {}
77+
}
78+
79+
def fw = new FileWriter('CallfireApiClient.nuspec')
80+
XmlUtil.serialize(spec, fw)
81+
// have to close manually because on windows file remains locked
82+
fw.close()
83+
}
84+
updateNuspecFile.dependsOn msbuildDebug
85+
86+
def patchVersion(version) {
87+
def regex = ~/\[assembly: AssemblyVersion\("(.*)\.\*"\)\]/
88+
def matcher = regex.matcher(new File(assemblyInfo).text)
89+
while(matcher.find()) {
90+
def updated = matcher.group(1)
91+
println "Patching Nuspec version to $updated"
92+
return updated
93+
}
94+
version
95+
}
96+
97+
task zipBinaries(type: Zip) {
98+
destinationDir = file(buildDistDir)
99+
from 'LICENSE'
100+
from 'Changelog'
101+
from (assemblyBinReleaseDir) {
102+
include "${archivesBaseName}.*"
103+
}
104+
}
105+
zipBinaries.dependsOn nugetSpec
106+
107+
// nuget package for upload to nuget
108+
nugetSpec {
109+
nuspecFile = file('CallfireApiClient.nuspec')
110+
}
111+
nugetSpec.dependsOn updateNuspecFile
112+
113+
nugetPack {
114+
destinationDir = buildDistDir
115+
generateSymbols = true
116+
}
117+
nugetPack.dependsOn zipBinaries
118+
119+
// nuget package upload, requires API key to be set
120+
nugetPush {
121+
apiKey = System.properties[ 'NUGET_API_KEY' ] ?: "key not set"
122+
nupkgFile = nugetPack.packageFile
123+
}

0 commit comments

Comments
 (0)