From a8628b734308626021806ac0f2f07ef2f6c7e7ac Mon Sep 17 00:00:00 2001 From: tslagle13 Date: Tue, 29 Mar 2016 17:12:28 -0700 Subject: [PATCH 1/6] Make timeIntervalInput dynamic page Forgot to make timeIntervalInput a dynamic page so it can update view on selection. --- .../vacation-lighting-director.groovy | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/smartapps/tslagle13/vacation-lighting-director.src/vacation-lighting-director.groovy b/smartapps/tslagle13/vacation-lighting-director.src/vacation-lighting-director.groovy index 8ea150e..517d5ee 100644 --- a/smartapps/tslagle13/vacation-lighting-director.src/vacation-lighting-director.groovy +++ b/smartapps/tslagle13/vacation-lighting-director.src/vacation-lighting-director.groovy @@ -40,6 +40,7 @@ preferences { page name:"pageSetup" page name:"Setup" page name:"Settings" + page name: "timeIntervalInput" } @@ -185,7 +186,8 @@ def Settings() { } } -page(name: "timeIntervalInput", title: "Only during a certain time", refreshAfterSelection:true) { +def timeIntervalInput() { + dynamicPage(name: "timeIntervalInput") { section { input "startTimeType", "enum", title: "Starting at", options: [["time": "A specific time"], ["sunrise": "Sunrise"], ["sunset": "Sunset"]], defaultValue: "time", submitOnChange: true if (startTimeType in ["sunrise","sunset"]) { @@ -204,9 +206,10 @@ page(name: "timeIntervalInput", title: "Only during a certain time", refreshAfte input "ending", "time", title: "End time", required: false } } - + } } + def installed() { initialize() } From 1cd5c68e6835c85a19503fe966f87236bb5cba13 Mon Sep 17 00:00:00 2001 From: Lars Finander Date: Wed, 30 Mar 2016 13:58:53 -0700 Subject: [PATCH 2/6] DVCSMP-1667 Authentication needs to be updated for Philips Hue -Philips updaded their API and current ST implementation will stop working when next Hue firmware is released without this change --- smartapps/smartthings/hue-connect.src/hue-connect.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smartapps/smartthings/hue-connect.src/hue-connect.groovy b/smartapps/smartthings/hue-connect.src/hue-connect.groovy index 5b908d8..c58ae6a 100644 --- a/smartapps/smartthings/hue-connect.src/hue-connect.groovy +++ b/smartapps/smartthings/hue-connect.src/hue-connect.groovy @@ -161,7 +161,7 @@ private sendDeveloperReq() { headers: [ HOST: host ], - body: [devicetype: "$token-0", username: "$token-0"]], "${selectedHue}")) + body: [devicetype: "$token-0"]], "${selectedHue}")) } private discoverHueBulbs() { From d419fb860636accb0666467dbaa9e50898b4eb0e Mon Sep 17 00:00:00 2001 From: sabersd Date: Thu, 31 Mar 2016 09:28:25 -0500 Subject: [PATCH 3/6] INTL-309 translating tiles --- .../smartpower-outlet.src/i18n/messages.properties | 4 ++++ .../smartpower-outlet.src/smartpower-outlet.groovy | 8 ++++---- .../i18n/messages.properties | 4 ++++ .../smartsense-multi-sensor.groovy | 12 ++++++------ 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties b/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties index 49ce523..e423e19 100644 --- a/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties @@ -28,4 +28,8 @@ '''{{ device.displayName }} is On'''.ko={{ device.displayName }}켜졌습니다. '''{{ device.displayName }} is Off'''.ko={{ device.displayName }}꺼졌습니다. '''{{ device.displayName }} power is {{ value }} Watts'''.ko={{ device.displayName }} 전원은 {{ value }}와트입니다 +'''On'''.ko=켜기 +'''Off'''.ko=끄기 +'''Turning On'''.ko=켜기 +'''Turning Off'''.ko=끄기 #============================================================================== diff --git a/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy b/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy index 0dea33e..176bcca 100644 --- a/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy +++ b/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy @@ -65,10 +65,10 @@ metadata { tiles(scale: 2) { multiAttributeTile(name:"switch", type: "lighting", width: 6, height: 4, canChangeIcon: true){ tileAttribute ("device.switch", key: "PRIMARY_CONTROL") { - attributeState "on", label: '${name}', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#79b821", nextState: "turningOff" - attributeState "off", label: '${name}', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff", nextState: "turningOn" - attributeState "turningOn", label: '${name}', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#79b821", nextState: "turningOff" - attributeState "turningOff", label: '${name}', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff", nextState: "turningOn" + attributeState "on", label: 'On', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#79b821", nextState: "turningOff" + attributeState "off", label: 'Off', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff", nextState: "turningOn" + attributeState "turningOn", label: 'Turning On', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#79b821", nextState: "turningOff" + attributeState "turningOff", label: 'Turning Off', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff", nextState: "turningOn" } tileAttribute ("power", key: "SECONDARY_CONTROL") { attributeState "power", label:'${currentValue} W' diff --git a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties index 0f97e6c..be9cc7f 100644 --- a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties @@ -43,3 +43,7 @@ '''{{ device.displayName }} battery was {{ value }}%'''.ko={{ device.displayName }}남아있는 배터리는 {{ value }}%입니다. '''Updating device to garage sensor'''.ko=기기-차고 센서 업데이트 중 '''Updating device to open/close sensor'''.ko=기기-열림/닫힘 센서 업데이트 중 +'''Inactive'''.ko=비활성 +'''Active'''.ko=활성 +'''Open'''.ko=열다 +'''Closed'''.ko=닫은 \ No newline at end of file diff --git a/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy b/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy index ab26143..21d31b0 100644 --- a/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy +++ b/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy @@ -83,19 +83,19 @@ metadata { tiles(scale: 2) { multiAttributeTile(name:"status", type: "generic", width: 6, height: 4){ tileAttribute ("device.status", key: "PRIMARY_CONTROL") { - attributeState "open", label:'${name}', icon:"st.contact.contact.open", backgroundColor:"#ffa81e" - attributeState "closed", label:'${name}', icon:"st.contact.contact.closed", backgroundColor:"#79b821" + attributeState "open", label:'Open', icon:"st.contact.contact.open", backgroundColor:"#ffa81e" + attributeState "closed", label:'Closed', icon:"st.contact.contact.closed", backgroundColor:"#79b821" attributeState "garage-open", label:'Open', icon:"st.doors.garage.garage-open", backgroundColor:"#ffa81e" attributeState "garage-closed", label:'Closed', icon:"st.doors.garage.garage-closed", backgroundColor:"#79b821" } } standardTile("contact", "device.contact", width: 2, height: 2) { - state("open", label:'${name}', icon:"st.contact.contact.open", backgroundColor:"#ffa81e") - state("closed", label:'${name}', icon:"st.contact.contact.closed", backgroundColor:"#79b821") + state("open", label:'Open', icon:"st.contact.contact.open", backgroundColor:"#ffa81e") + state("closed", label:'Closed', icon:"st.contact.contact.closed", backgroundColor:"#79b821") } standardTile("acceleration", "device.acceleration", width: 2, height: 2) { - state("active", label:'${name}', icon:"st.motion.acceleration.active", backgroundColor:"#53a7c0") - state("inactive", label:'${name}', icon:"st.motion.acceleration.inactive", backgroundColor:"#ffffff") + state("active", label:'Active', icon:"st.motion.acceleration.active", backgroundColor:"#53a7c0") + state("inactive", label:'Inactive', icon:"st.motion.acceleration.inactive", backgroundColor:"#ffffff") } valueTile("temperature", "device.temperature", width: 2, height: 2) { state("temperature", label:'${currentValue}°', From 5b5e185ef0a9e59950af347c62610a54d8870a07 Mon Sep 17 00:00:00 2001 From: sabersd Date: Thu, 31 Mar 2016 17:43:56 -0500 Subject: [PATCH 4/6] INTL-309 missing translations --- .../arrival-sensor-ha.src/i18n/messages.properties | 13 +++++++------ .../i18n/messages.properties | 3 +++ .../i18n/messages.properties | 3 +++ .../i18n/messages.properties | 3 ++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/devicetypes/smartthings/arrival-sensor-ha.src/i18n/messages.properties b/devicetypes/smartthings/arrival-sensor-ha.src/i18n/messages.properties index 7bdabef..b2d9082 100644 --- a/devicetypes/smartthings/arrival-sensor-ha.src/i18n/messages.properties +++ b/devicetypes/smartthings/arrival-sensor-ha.src/i18n/messages.properties @@ -1,16 +1,16 @@ #============================================================================== # Copyright 2016 SmartThings # -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy # of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations # under the License. #============================================================================== # Purpose: Arrival Sensor HA i18n Translation File @@ -28,6 +28,7 @@ '''Presence timeout (minutes)'''.ko=시간 초과. 스마트폰 위치 정보 '''Tap to set'''.ko=눌러서 설정 '''Arrival Sensor'''.ko=도착알림 센서 +'''${currentValue}% battery'''.ko=${currentValue}% 배터리 # Events / Notifications '''{{ linkText }} battery was {{ value }}'''.ko={{ linkText }}남아있는 배터리는 {{ value }}입니다. '''{{ linkText }} has arrived'''.ko={{ linkText }}집에 도착했습니다. diff --git a/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties index c0a19a0..83fa760 100644 --- a/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties @@ -31,6 +31,9 @@ '''Adjust temperature by this many degrees'''.ko=몇 도씩 온도를 조절하십시오 '''Give your device a name'''.ko=기기 이름 바꾸기 '''Water Leak Sensor'''.ko=누수센서 +'''Dry'''.ko=건조 +'''Wet'''.ko=누수 +'''${currentValue}% battery'''.ko=${currentValue}% 배터리 # Events descriptionText '''{{ device.displayName }} is dry'''.ko={{ device.displayName }}가 건조 '''{{ device.displayName }} is wet'''.ko={{ device.displayName }}누수 diff --git a/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties index f06d5ad..e4b0cbc 100644 --- a/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties @@ -30,6 +30,9 @@ '''Adjust temperature by this many degrees'''.ko=몇 도씩 온도를 조절하십시오 '''Give your device a name'''.ko=기기 이름 바꾸기 '''Motion Sensor'''.ko=모션 센서 +'''motion'''.ko=모션 +'''no motion'''.ko=에 움직임 없다 +'''${currentValue}% battery'''.ko=${currentValue}% 배터리 # Events descriptionText '''{{ device.displayName }} detected motion'''.ko={{ device.displayName }} 가 움직임을 감지하였습니다. '''{{ device.displayName }} motion has stopped'''.ko={{ device.displayName }}움직임이 중단되었습니다 diff --git a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties index be9cc7f..eb38ebf 100644 --- a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties @@ -46,4 +46,5 @@ '''Inactive'''.ko=비활성 '''Active'''.ko=활성 '''Open'''.ko=열다 -'''Closed'''.ko=닫은 \ No newline at end of file +'''Closed'''.ko=닫은 +'''${currentValue}% battery'''.ko=${currentValue}% 배터리 From 8abe4ac29fd61aaea36d41ec5df5eadcca3ecf2f Mon Sep 17 00:00:00 2001 From: sabersd Date: Thu, 31 Mar 2016 22:06:23 -0500 Subject: [PATCH 5/6] INTL-520 updating translations --- .../smartpower-outlet.src/i18n/messages.properties | 4 ++-- .../smartsense-moisture-sensor.src/i18n/messages.properties | 4 ++-- .../smartsense-motion-sensor.src/i18n/messages.properties | 4 ++-- .../smartsense-multi-sensor.src/i18n/messages.properties | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties b/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties index e423e19..43c0831 100644 --- a/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartpower-outlet.src/i18n/messages.properties @@ -28,8 +28,8 @@ '''{{ device.displayName }} is On'''.ko={{ device.displayName }}켜졌습니다. '''{{ device.displayName }} is Off'''.ko={{ device.displayName }}꺼졌습니다. '''{{ device.displayName }} power is {{ value }} Watts'''.ko={{ device.displayName }} 전원은 {{ value }}와트입니다 -'''On'''.ko=켜기 -'''Off'''.ko=끄기 +'''On'''.ko=켜짐 +'''Off'''.ko=꺼짐 '''Turning On'''.ko=켜기 '''Turning Off'''.ko=끄기 #============================================================================== diff --git a/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties index 83fa760..8576710 100644 --- a/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-moisture-sensor.src/i18n/messages.properties @@ -22,6 +22,8 @@ #============================================================================== # Korean (ko) # Device Preferences +'''Dry'''.ko=건조 +'''Wet'''.ko=누수 '''dry'''.ko=건조 '''wet'''.ko=누수 '''battery'''.ko=배터리 @@ -31,8 +33,6 @@ '''Adjust temperature by this many degrees'''.ko=몇 도씩 온도를 조절하십시오 '''Give your device a name'''.ko=기기 이름 바꾸기 '''Water Leak Sensor'''.ko=누수센서 -'''Dry'''.ko=건조 -'''Wet'''.ko=누수 '''${currentValue}% battery'''.ko=${currentValue}% 배터리 # Events descriptionText '''{{ device.displayName }} is dry'''.ko={{ device.displayName }}가 건조 diff --git a/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties index e4b0cbc..50e37d6 100644 --- a/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-motion-sensor.src/i18n/messages.properties @@ -30,8 +30,8 @@ '''Adjust temperature by this many degrees'''.ko=몇 도씩 온도를 조절하십시오 '''Give your device a name'''.ko=기기 이름 바꾸기 '''Motion Sensor'''.ko=모션 센서 -'''motion'''.ko=모션 -'''no motion'''.ko=에 움직임 없다 +'''motion'''.ko=동작 감지 +'''no motion'''.ko=동작 없음 '''${currentValue}% battery'''.ko=${currentValue}% 배터리 # Events descriptionText '''{{ device.displayName }} detected motion'''.ko={{ device.displayName }} 가 움직임을 감지하였습니다. diff --git a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties index eb38ebf..98d0063 100644 --- a/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties +++ b/devicetypes/smartthings/smartsense-multi-sensor.src/i18n/messages.properties @@ -45,6 +45,6 @@ '''Updating device to open/close sensor'''.ko=기기-열림/닫힘 센서 업데이트 중 '''Inactive'''.ko=비활성 '''Active'''.ko=활성 -'''Open'''.ko=열다 -'''Closed'''.ko=닫은 +'''Open'''.ko=열림 +'''Closed'''.ko=닫힘 '''${currentValue}% battery'''.ko=${currentValue}% 배터리 From 9d378ce9a1b671c02b5d69e2b1c18be538f9322b Mon Sep 17 00:00:00 2001 From: Jeff Blaisdell Date: Fri, 1 Apr 2016 14:39:55 -0500 Subject: [PATCH 6/6] Add Slack integration into build process. --- build.gradle | 78 ++++++++++++++++++++++++++++++++++++++++------------ circle.yml | 10 +++---- 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/build.gradle b/build.gradle index c50ec09..7ddb1d1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,15 @@ import java.nio.charset.StandardCharsets import java.nio.file.Paths +import com.smartthings.deployment.slack.FileUpload +import com.smartthings.deployment.slack.Message apply plugin: 'groovy' apply plugin: 'smartthings-executable-deployment' -apply plugin: 'smartthings-hipchat' +apply plugin: 'smartthings-slack' buildscript { dependencies { - classpath "com.smartthings.deployment:executable-deployment-scripts:1.0.6" + classpath "com.smartthings.deployment:executable-deployment-scripts:1.0.7" } repositories { mavenLocal() @@ -30,7 +32,43 @@ repositories { 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 archives = [] File rootDir = new File("${project.buildDir}/archives") 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 - data = archives.join('\n').getBytes(StandardCharsets.UTF_8) - fileName = 'deployment-notes.txt' - contentType = 'text/html' -} - -hipchatSendNotification { - String branch = project.hasProperty('branch') ? project.property('branch') : 'unknown' - message = "Began executable deploy of SmartThingsPublic(${branch})." - if (branch == 'master') { - message += ' (dev shards)' - } - color = branch == 'master' ? 'yellow' : 'red' - notify = true + // Required Task Arguments. + file = new FileUpload( + data: archives.join('\n').getBytes(StandardCharsets.UTF_8), + filename: "deployment-notes-${fileDate}.txt", + title: 'Deployment Notes', + channels: channel, + token: token, + color: color + ) + message = new Message( + webhookUrl: webhookUrl, + username: username, + asUser: true, + iconUrl: iconUrl, + channel: channel, + fallback: 'Deployment Notification', + text: messageText + ) } diff --git a/circle.yml b/circle.yml index b2a02a1..3785924 100644 --- a/circle.yml +++ b/circle.yml @@ -15,13 +15,11 @@ deployment: develop: branch: master commands: - - ./gradlew deployArchives -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Ps3Buckets="$S3_BUCKETS_DEV" - - ./gradlew hipchatSendNotification -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Pbranch=$CIRCLE_BRANCH - - ./gradlew hipchatShareFile -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD + - ./gradlew deployArchives -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Ps3Buckets="$S3_BUCKETS_DEV" + - ./gradlew slackSendMessage -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Pbranch="$CIRCLE_BRANCH" -PslackToken="$SLACK_TOKEN" -PslackWebhookUrl="$SLACK_WEBHOOK_URL" -PslackChannel="$SLACK_CHANNEL" --stacktrace stage: branch: staging commands: - - ./gradlew deployArchives -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Ps3Buckets="$S3_BUCKETS_STAGE" - - ./gradlew hipchatSendNotification -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD -Pbranch=$CIRCLE_BRANCH - - ./gradlew hipchatShareFile -PsmartThingsArtifactoryUserName=$ARTIFACTORY_USERNAME -PsmartThingsArtifactoryPassword=$ARTIFACTORY_PASSWORD + - ./gradlew deployArchives -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Ps3Buckets="$S3_BUCKETS_STAGE" + - ./gradlew slackSendMessage -PsmartThingsArtifactoryUserName="$ARTIFACTORY_USERNAME" -PsmartThingsArtifactoryPassword="$ARTIFACTORY_PASSWORD" -Pbranch="$CIRCLE_BRANCH" -PslackToken="$SLACK_TOKEN" -PslackWebhookUrl="$SLACK_WEBHOOK_URL" -PslackChannel="$SLACK_CHANNEL" --stacktrace