Project

General

Profile

Services » History » Revision 4

Revision 3 (Alexey Demakov, 01/21/2016 01:51 PM) → Revision 4/9 (Alexey Demakov, 01/21/2016 02:10 PM)

h1. Services 

 * "Jenkins Continuous Integration Server":http://forge.ispras.ru:8080 - internal access only 


 * "Sonarube quality management platform, dedicated to continuously analyzing and measuring the technical quality of source code":http://forge.ispras.ru:9000 - internal access only 

 *build.gradle:* 
 <pre> 
 plugins { 
   id ''org.sonarqube'' version ''1.0'' 
 } 

 sonarqube { 
      properties { 
         property ''sonar.host.url'', ''http://forge.ispras.ru:9000'' 
         property ''sonar.jdbc.url'', ''jdbc:mysql://localhost:3306/sonar'' 
         property ''sonar.jdbc.driverClassName'', ''com.mysql.jdbc.Driver'' 
         property ''sonar.jdbc.username'', ''sonar'' 
         property ''sonar.jdbc.password'', ''sonar'' 
     } 
 } 
 </pre> 

 * "Nexus Repository manager":http://forge.ispras.ru:8082/nexus/ - internal access only 
 Mail <demakov@ispras.ru> is you need upload permissions. 

 *build.gradle:* 
 <pre> 
 plugins { 
   id ''net.saliman.properties'' version ''1.4.4'' 
   id ''net.researchgate.release'' version ''2.3.5'' 
 } 

 apply plugin: ''maven-publish'' 

 repositories { 
   maven { 
     url ''http://forge.ispras.ru:8082/nexus/content/repositories/snapshots'' 
   } 
   maven { 
     url ''http://forge.ispras.ru:8082/nexus/content/repositories/releases'' 
   } 
   jcenter() 
 } 

 project.group = projectGroup 

 release { 
   failOnCommitNeeded = false 

   versionPatterns = [ 
     // Increments build number: "0.2.5-alpha-150428" => "0.2.6-alpha-150428" 
     /(^\d+\.\d+\.)(\d+)(-[^-]*)(-[^-]*$)/:  
     { Matcher m, Project p -> m.replaceAll("${ m[0][1] }${ (m[0][2] as int) + 1 }${ m[0][3] }" ) } 
   ] 
 } 

 String getCurrentDateString()    { 
   new SimpleDateFormat( ''yyMMdd'' ).format( new Date() ) 
 } 

 task unSnapshotVersion.doLast { 
   def version = project.version.toString() 
   version += ''-'' + getCurrentDateString() 
    project.plugins.getPlugin( net.researchgate.release.ReleasePlugin.class ) 
   .updateVersionProperty( version ) 
 } 

 publishing { 
   publications { 
     maven(MavenPublication) { 
       groupId projectGroup 
       artifactId projectName 
       version project.version 

       from components.java 
     } 
   } 
   repositories { 
     maven { 
       if(project.version.endsWith(''-SNAPSHOT'')) { 
         url ''http://forge.ispras.ru:8082/nexus/content/repositories/snapshots'' 
       } else { 
         url ''http://forge.ispras.ru:8082/nexus/content/repositories/releases'' 
       } 
       credentials { 
         username hasProperty(''repoUser'') ? repoUser : '''' 
         password hasProperty(''repoPassword'') ? repoPassword : '''' 
       } 
       authentication { 
         basic(BasicAuthentication) 
       } 
     } 
   } 
 } 

 afterReleaseBuild.dependsOn publish 
 </pre> 

 *gradle.properties:* 
 <pre> 
 projectGroup=... 
 projectName=.. 
 # gradle-release-plugin restriction: use only ''='' as separator 
 version=... 
 </pre> 

 *gradle-local.properties:* 
 <pre>repoUser=... 
 repoPassword=... 
 </pre> 

 *.gitignore:* 
 <pre> 
 gradle-local.properties 
 </pre> 

 *settings.gradle:* 
 <pre> 
 rootProject.name = projectName 
 </pre>