85 lines
2.3 KiB
Groovy
85 lines
2.3 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
parameters {
|
|
password (
|
|
name: 'KAGGLE_USERNAME',
|
|
defaultValue: '',
|
|
description: 'Kaggle username'
|
|
)
|
|
password (
|
|
name: 'KAGGLE_KEY',
|
|
defaultValue: '',
|
|
description: 'Kaggle API key'
|
|
)
|
|
string (
|
|
name: 'CUTOFF',
|
|
defaultValue: '500',
|
|
description: 'Get only the first CUTOFF rows of the dataset'
|
|
)
|
|
}
|
|
|
|
stages {
|
|
stage('Clone repository') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Download dataset') {
|
|
steps {
|
|
withEnv(["KAGGLE_USERNAME=${params.KAGGLE_USERNAME}", "KAGGLE_KEY=${params.KAGGLE_KEY}"]) {
|
|
sh "kaggle datasets download -d uciml/breast-cancer-wisconsin-data"
|
|
sh "unzip -o breast-cancer-wisconsin-data.zip"
|
|
sh "mkdir -p datasets"
|
|
sh "mv data.csv datasets/data.csv"
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Preprocess data') {
|
|
agent {
|
|
dockerfile {
|
|
filename 'Dockerfile'
|
|
reuseNode true
|
|
}
|
|
}
|
|
|
|
steps {
|
|
sh "chmod +x ./download_dataset.py"
|
|
sh "python3 ./download_dataset.py ${params.CUTOFF}"
|
|
archiveArtifacts artifacts: 'datasets/*', onlyIfSuccessful: true
|
|
}
|
|
}
|
|
|
|
stage('Create model') {
|
|
agent {
|
|
dockerfile {
|
|
filename 'Dockerfile'
|
|
reuseNode true
|
|
}
|
|
}
|
|
|
|
steps {
|
|
sh "chmod +x ./create_model.py"
|
|
sh "python3 ./create_model.py"
|
|
archiveArtifacts artifacts: 'models/*', onlyIfSuccessful: true
|
|
}
|
|
}
|
|
|
|
stage('Test model') {
|
|
agent {
|
|
dockerfile {
|
|
filename 'Dockerfile'
|
|
reuseNode true
|
|
}
|
|
}
|
|
|
|
steps {
|
|
sh "chmod +x ./predict.py"
|
|
sh "python3 ./predict.py"
|
|
archiveArtifacts artifacts: 'predictions.csv', onlyIfSuccessful: true
|
|
}
|
|
}
|
|
}
|
|
} |