gradle: task parsing json reports and publish results.

This commit is contained in:
Vasily Levchenko
2017-02-07 17:14:45 +03:00
committed by vvlevchenko
parent 16df5c4299
commit 3474f167c1
2 changed files with 45 additions and 0 deletions
+6
View File
@@ -1,5 +1,11 @@
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
compile gradleApi()
compile localGroovy()
compile group: 'com.ullink.slack', name: 'simpleslackapi', version: '0.6.0'
}
@@ -0,0 +1,39 @@
package org.jetbrains.kotlin
import com.ullink.slack.simpleslackapi.impl.SlackSessionFactory
import groovy.io.FileVisitResult
import groovy.json.JsonSlurper
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
/**
* Created by minamoto on 2/7/17.
*/
class Reporter extends DefaultTask {
def reportHome
@TaskAction
public void report() {
def stats = new RunExternalTestGroup.Statistics()
reportHome.traverse {
println("$it $it.name")
if (it.name == 'results.json') {
def obj = new JsonSlurper().parse(it)
stats.total += obj.statistics.total
stats.passed += obj.statistics.passed
stats.failed += obj.statistics.failed
stats.error += obj.statistics.error
stats.skipped += obj.statistics.skipped
}
FileVisitResult.CONTINUE
}
def report = "total: ${stats.total}\npassed: ${stats.passed}\nfailed: ${stats.failed}\nerror:${stats.error}\nskipped:${stats.skipped}"
println(report)
def session = new SlackSessionFactory().createWebSocketSlackSession("xoxb-137371102001-DaYxLJEmbhOZQiR4XFRLZuHG")
session.connect()
def channel = session.findChannelByName("kotlin-native-team")
session.sendMessage(channel, "Hello, аборигены Котлина!\n текущий статус:\n${report}")
session.disconnect()
}
}