blob: c3ad58b49afde1f661444cbc5c6398b4087c8fe3 [file] [log] [blame]
plugins {
id 'org.hidetake.ssh' version '2.10.1'
}
configurations {
archives
updates
}
dependencies {
archives project(path: ':plugins:org.eclipse.etrice.generator.c', configuration: 'archive')
archives project(path: ':plugins:org.eclipse.etrice.generator.cpp', configuration: 'archive')
archives project(path: ':plugins:org.eclipse.etrice.generator.java', configuration: 'archive')
archives project(path: ':plugins:org.eclipse.etrice.generator.doc', configuration: 'archive')
updates project(path: ':releng:org.eclipse.etrice.site', configuration: 'archive')
}
def isSnapshot = version.endsWith('SNAPSHOT')
def versionDir = version
if(isSnapshot) {
versionDir = 'nightly'
}
def downloadDir = '/home/data/httpd/download.eclipse.org/etrice'
def promoteDir = "$downloadDir/$versionDir"
def assembleDir = "$buildDir/$versionDir"
remotes {
projectsStorage {
host = 'projects-storage.eclipse.org'
user = 'genie.etrice'
}
}
ssh.settings {
agent = true
fileTransfer = 'scp'
}
task assembleArtifacts(type: Sync) {
from([configurations.archives, configurations.updates]) {
into 'archives'
}
if(!configurations.updates.empty) {
from(zipTree(configurations.updates.singleFile)) {
into 'updates'
}
} else {
doFirst {
throw new GradleException("etrice update site is missing - execute tycho/maven 'package' first")
}
}
into assembleDir
}
task promote {
dependsOn assembleArtifacts
doLast {
ssh.run {
session(remotes.projectsStorage) {
logger.info "clean download area"
remove promoteDir
execute "mkdir $promoteDir"
logger.info "promote archives"
put from: "$assembleDir/archives", into: promoteDir
logger.info "promote update site"
put from: "$assembleDir/updates", into: promoteDir
}
}
}
}