https://github.com/unit8co/darts
Tip revision: 243711fbb858e46aa179212272bc18c2c589f4a9 authored by Julien Herzen on 07 November 2021, 17:06:09 UTC
Release 0.13.0 (#537)
Release 0.13.0 (#537)
Tip revision: 243711f
build.gradle
buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
gradlePluginPortal()
}
}
plugins {
id "com.palantir.docker" version "0.27.0"
id "com.palantir.docker-run" version "0.27.0"
}
// needed for palantir plugin
task build {
}
// docker & docker run
docker {
name "unit8/darts"
// ./gradlew dockerPushVersion will push image with tag ${version}
// ${version} is property passed from command line during workflow
tag "version", "unit8/darts:${version}"
// ./gradlew dockerPushLatest will push image with tag 'latest'
tag "latest", "unit8/darts:latest"
dockerfile file("${project.rootDir}/Dockerfile")
// needed files for docker and to build library
files "README.md", "setup.py", "setup.cfg"
copySpec.with {
from(".") {
include "examples/**"
into "."
}
from(".") {
include "darts/**"
into "."
}
from(".") {
include "requirements/**"
into "."
}
}
}
dockerRun {
name "unit8_darts"
image "unit8/darts:latest"
ports "8888:8888"
daemonize false
clean true
}
// setup requirements
task setupPip(type: Exec) {
commandLine "python", "-m", "pip", "install", "--upgrade", "pip"
}
task installPipLatest {
dependsOn setupPip
doLast {
exec {
commandLine "pip", "install", "pip-tools"
}
exec {
commandLine "pip-compile", "-o", "requirements-latest.txt"
}
exec {
commandLine "pip", "install", "-r", "requirements-latest.txt"
}
}
}
void createPipInstallTask(String flavour) {
String taskName = "pip_" + flavour;
String taskArgument = "requirements/" + flavour + ".txt";
task (taskName, type: Exec) {
commandLine "pip", "install", "-q", "-r", taskArgument
}
}
String[] flavours = ["core", "prophet", "pmdarima", "dev", "torch", "release"];
for(String flavour : flavours) {
createPipInstallTask(flavour);
}
task installLocally(type:Exec) {
commandLine "pip", "install", "."
}
task pipInstall() {
doFirst {
setupPip
}
dependsOn pip_core, pip_dev, pip_prophet, pip_pmdarima, pip_torch, pip_release
}
// Tests
void coverageTestSteps() {
exec {
commandLine "coverage", "run", "--source=darts/", "-m", "unittest"
}
exec {
commandLine "coverage", "report", "-m", "--fail-under=80", "--omit=darts/tests*,*__init__.py"
}
}
task lint(type: Exec) {
dependsOn pip_dev
commandLine "flake8", "--config=setup.cfg", "--exit-zero", "darts"
}
void createPipRelatedTask(String flavour) {
String taskName = "unitTest_" + flavour;
String taskArgument = "pip_" + flavour;
task (taskName, type: Exec) {
dependsOn(taskArgument)
dependsOn pip_core
dependsOn pip_dev
commandLine "python", "-m", "unittest"
}
taskName = "test_" + flavour;
String taskArgument1 = "unitTest_" + flavour;
task (taskName) {
dependsOn(taskArgument1)
dependsOn lint
}
}
flavours = ["core", "prophet", "pmdarima", "torch"];
for(String flavour : flavours) {
createPipRelatedTask(flavour);
}
task unitTest_all(type: Exec) {
dependsOn installPipLatest, pip_dev
doFirst {
installPipLatest
}
commandLine "python", "-m", "unittest"
}
task coverageTest_all() {
dependsOn installPipLatest, pip_dev
doFirst {
installPipLatest
}
doLast {
coverageTestSteps()
}
}
task test_all() {
dependsOn unitTest_all
dependsOn coverageTest_all
dependsOn lint
}
def exampleName=project.properties["exampleName"] ?: ""
task checkExample(type: Exec) {
dependsOn pipInstall, installLocally
workingDir "./examples"
// exampleName must be passed with -PexampleName=FFT-examples.ipynb
commandLine "papermill", exampleName, exampleName
doFirst {
exec {
commandLine "jupyter", "nbextension", "enable", "--py", "widgetsnbextension"
}
}
}
// Documentation build
void docSteps() {
exec {
commandLine "make", "--directory", "./docs", "copy-examples"
}
exec {
commandLine "make", "--directory", "./docs", "generate"
}
exec {
commandLine "make", "--directory", "./docs", "readme"
}
exec {
commandLine "make", "--directory", "./docs", "html"
}
}
task cleanDocs(type: Exec) {
commandLine "make", "--directory", "./docs", "clean"
}
task buildDocs() {
dependsOn pip_core, pip_release, installLocally
dependsOn cleanDocs
doLast {
docSteps()
}
}