ium_s487182/Jenkinsfile

48 lines
1.7 KiB
Groovy

node {
stage('Preparation') {
properties([
parameters([
string(
defaultValue: 'login',
description: 'Kaggle username',
name: 'KAGGLE_USERNAME',
trim: false
),
password(
defaultValue: '',
description: 'Kaggle token taken from kaggle.json file, as described in https://github.com/Kaggle/kaggle-api#api-credentials',
name: 'KAGGLE_KEY'
),
string(
defaultValue: '7999',
description: 'Cut off value',
name: 'CUT',
trim: false
)
])
])
}
stage('checkout: Check out from version control') {
checkout scm
}
stage('sh: Shell Script') {
// Run the maven build
withEnv(["KAGGLE_USERNAME=${params.KAGGLE_USERNAME}",
"KAGGLE_KEY=${params.KAGGLE_KEY}" ]) {
sh 'kaggle datasets download -d mssmartypants/water-quality > output.txt'
sh 'unzip -o water-quality.zip >> output.txt'
def csvFile = new File('waterQuality1.csv')
def lines = csvFile.readLines()
def cut = ${params.CUT}.toInteger()
def randomLines = new Random().with { random ->
(0..lines.size() - 1).sort { random.nextInt() }[0..(cut - 1)].collect { lines[it] }
}
def tempFile = new File('temp.csv')
tempFile.write(randomLines.join('\n'))
csvFile.text = tempFile.text
tempFile.delete()
sh 'python3 create_dataset.py >> output.txt'
archiveArtifacts artifacts: 'waterQuality.csv, output.txt'
}
}
}