-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
95 lines (84 loc) · 2.75 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
plugins {
id "java"
id "idea"
id "edu.wpi.first.GradleRIO" version "2019.0.0-alpha-3"
id 'org.hidetake.ssh' version '2.9.0'
}
def ROBOT_CLASS = "frc.team1836.robot.Robot"
// Define my targets (RoboRIO) and artifacts (deployable files)
// This is added by GradleRIO's backing project EmbeddedTools.
deploy {
targets {
target("roborio", edu.wpi.first.gradlerio.frc.RoboRIO) {
// Team number is loaded either from the .wpilib/wpilib_preferences.json
// or from command line. If not found an exception will be thrown.
// You can use getTeamOrDefault(team) instead of getTeamNumber if you
// want to store a team number in this file.
team = getTeamNumber()
}
}
artifacts {
artifact('frcJava', edu.wpi.first.gradlerio.frc.FRCJavaArtifact) {
targets << "roborio"
// Debug can be overridden by command line, for use with VSCode
debug = getDebugOrDefault(false)
}
}
}
// Defining my dependencies. In this case, WPILib (+ friends), CTRE Phoenix (Talon SRX)
// and NavX.
dependencies {
compile wpilib()
compile ctre()
compile navx()
compile pathfinder()
}
// Setting up my Jar File. In this case, adding all libraries into the main jar ('fat jar')
// in order to make them all available at runtime. Also adding the manifest so WPILib
// knows where to look for our Robot Class.
jar {
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_CLASS)
}
// Force Java 8 Compatibility mode for deployed code, in case the develoment
// system is using Java 10.
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
wrapper {
gradleVersion = '4.9'
}
remotes {
webServer {
host = '10.18.36.2'
user = 'admin'
}
}
ssh.settings {
knownHosts = allowAnyHosts
}
task swerdUpdate {
doLast {
FileTree myFileTree = fileTree(dir: 'paths')
def date = new Date()
String formattedDate = date.format("yyyy-MM-dd").toString() + '/'
def logBase = new File('logs')
logBase.mkdirs()
def logDir = new File(logBase.absolutePath + '/' + formattedDate)
logDir.mkdirs()
ssh.run {
session(remotes.webServer) {
put from: myFileTree.getFiles(), into: '/home/lvuser/paths'
get from: '/u', into: 'logs/' + formattedDate, filter:{ it.name =~ /\.csv$/ }
get from: '/u', into: 'logs/', filter:{ it.name =~ /\.txt$/ }
remove '/u'
}
}
}
}
task deployAll {
dependsOn 'swerdUpdate'
dependsOn 'deploy'
tasks.findByName('deploy').mustRunAfter 'swerdUpdate'
}