mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-08 05:31:56 +00:00
Add Slack integration into build process.
This commit is contained in:
78
build.gradle
78
build.gradle
@@ -1,13 +1,15 @@
|
|||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
|
import com.smartthings.deployment.slack.FileUpload
|
||||||
|
import com.smartthings.deployment.slack.Message
|
||||||
|
|
||||||
apply plugin: 'groovy'
|
apply plugin: 'groovy'
|
||||||
apply plugin: 'smartthings-executable-deployment'
|
apply plugin: 'smartthings-executable-deployment'
|
||||||
apply plugin: 'smartthings-hipchat'
|
apply plugin: 'smartthings-slack'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "com.smartthings.deployment:executable-deployment-scripts:1.0.6"
|
classpath "com.smartthings.deployment:executable-deployment-scripts:1.0.7"
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
@@ -30,7 +32,43 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
}
|
}
|
||||||
|
|
||||||
hipchatShareFile {
|
slackSendMessage {
|
||||||
|
String branch = project.hasProperty('branch') ? project.property('branch') : 'unknown'
|
||||||
|
String token = project.hasProperty('slackToken') ? project.property('slackToken') : null
|
||||||
|
String webhookUrl = project.hasProperty('slackWebhookUrl') ? project.property('slackWebhookUrl') : null
|
||||||
|
String channel = project.hasProperty('slackChannel') ? project.property('slackChannel') : null
|
||||||
|
String drinks = 'https://dl.dropboxusercontent.com/s/m1z5mpd3c83lwev/minion_beer.jpeg?dl=0'
|
||||||
|
String wolverine = 'https://dl.dropboxusercontent.com/s/4lbjqzvm2v033u9/minion_wolverine.jpg?dl=0'
|
||||||
|
String beach = 'https://dl.dropboxusercontent.com/s/rqrfgxk53gfng69/minion_beach.png?dl=0'
|
||||||
|
String iconUrl
|
||||||
|
String color
|
||||||
|
String messageText
|
||||||
|
String username
|
||||||
|
switch (branch) {
|
||||||
|
case 'master':
|
||||||
|
username = 'Hickory'
|
||||||
|
iconUrl = wolverine
|
||||||
|
color = '#35D0F2'
|
||||||
|
messageText = 'Began deployment of _SmartThingsPublic[master]_ branch to the _Dev_ environments.'
|
||||||
|
break
|
||||||
|
case 'staging':
|
||||||
|
username = 'Dickory'
|
||||||
|
iconUrl = beach
|
||||||
|
color = '#FFDE20'
|
||||||
|
messageText = 'Began deployment of _SmartThingsPublic[staging]_ branch to the _Staging_ environments.'
|
||||||
|
break
|
||||||
|
case 'production':
|
||||||
|
username = 'Dock'
|
||||||
|
iconUrl = drinks
|
||||||
|
color = '#FF1D23'
|
||||||
|
messageText = 'Began deployment of _SmartThingsPublic[production]_ branch to the _Prod_ environments.'
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
username = 'Hickory'
|
||||||
|
iconUrl = wolverine
|
||||||
|
color = '#35D0F2'
|
||||||
|
messageText = "Began deployment of an _SmartThingsPublic[${branch}]_ branch. Have no idea what's going on."
|
||||||
|
}
|
||||||
List<String> archives = []
|
List<String> archives = []
|
||||||
File rootDir = new File("${project.buildDir}/archives")
|
File rootDir = new File("${project.buildDir}/archives")
|
||||||
if (rootDir.exists()) {
|
if (rootDir.exists()) {
|
||||||
@@ -43,19 +81,25 @@ hipchatShareFile {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Date date = new Date()
|
||||||
|
String fileDate = date.format('yyyy-MM-dd_HH-mm-ss', TimeZone.getTimeZone('GMT'))
|
||||||
|
|
||||||
// Set task properties
|
// Required Task Arguments.
|
||||||
data = archives.join('\n').getBytes(StandardCharsets.UTF_8)
|
file = new FileUpload(
|
||||||
fileName = 'deployment-notes.txt'
|
data: archives.join('\n').getBytes(StandardCharsets.UTF_8),
|
||||||
contentType = 'text/html'
|
filename: "deployment-notes-${fileDate}.txt",
|
||||||
}
|
title: 'Deployment Notes',
|
||||||
|
channels: channel,
|
||||||
hipchatSendNotification {
|
token: token,
|
||||||
String branch = project.hasProperty('branch') ? project.property('branch') : 'unknown'
|
color: color
|
||||||
message = "Began executable deploy of SmartThingsPublic(${branch})."
|
)
|
||||||
if (branch == 'master') {
|
message = new Message(
|
||||||
message += ' (dev shards)'
|
webhookUrl: webhookUrl,
|
||||||
}
|
username: username,
|
||||||
color = branch == 'master' ? 'yellow' : 'red'
|
asUser: true,
|
||||||
notify = true
|
iconUrl: iconUrl,
|
||||||
|
channel: channel,
|
||||||
|
fallback: 'Deployment Notification',
|
||||||
|
text: messageText
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
10
circle.yml
10
circle.yml
@@ -15,13 +15,11 @@ deployment:
|
|||||||
develop:
|
develop:
|
||||||
branch: master
|
branch: master
|
||||||
commands:
|
commands:
|
||||||
- ./gradlew deployArchives -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Ps3Buckets="$S3_BUCKETS_DEV"
|
- ./gradlew deployArchives -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Ps3Buckets="$S3_BUCKETS_DEV"
|
||||||
- ./gradlew hipchatSendNotification -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Pbranch=$CIRCLE_BRANCH
|
- ./gradlew slackSendMessage -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Pbranch="$CIRCLE_BRANCH" -PslackToken="$SLACK_TOKEN" -PslackWebhookUrl="$SLACK_WEBHOOK_URL" -PslackChannel="$SLACK_CHANNEL" --stacktrace
|
||||||
- ./gradlew hipchatShareFile -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD
|
|
||||||
|
|
||||||
stage:
|
stage:
|
||||||
branch: staging
|
branch: staging
|
||||||
commands:
|
commands:
|
||||||
- ./gradlew deployArchives -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Ps3Buckets="$S3_BUCKETS_STAGE"
|
- ./gradlew deployArchives -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Ps3Buckets="$S3_BUCKETS_STAGE"
|
||||||
- ./gradlew hipchatSendNotification -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Pbranch=$CIRCLE_BRANCH
|
- ./gradlew slackSendMessage -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Pbranch="$CIRCLE_BRANCH" -PslackToken="$SLACK_TOKEN" -PslackWebhookUrl="$SLACK_WEBHOOK_URL" -PslackChannel="$SLACK_CHANNEL" --stacktrace
|
||||||
- ./gradlew hipchatShareFile -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD
|
|
||||||
|
|||||||
Reference in New Issue
Block a user