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' } } }