diff --git a/Jenkinsfile b/Jenkinsfile index acef5e1..be94d01 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,25 +1,50 @@ node { - stage('Preparation') { + stage('Preparation') { properties([ parameters([ string( - defaultValue: 'Hello World!', - description: 'Tekst do wyświetlenie', - name: 'INPUT_TEXT', + defaultValue: 'filippatyk', + 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: '200', + description: 'CUTOFF', + name: 'CUTOFF', + trim: false + ), ]) ]) } - stage('Hello') { - //Wypisz wartość parametru w konsoli (To nie jest polecenie bash, tylko groovy!) - echo "INPUT_TEXT: ${INPUT_TEXT}" - //Wywołaj w konsoli komendę "figlet", która generuje ASCI-art - sh "figlet \"${INPUT_TEXT}\" | tee output.txt" + + stage('Git clone') { + //cloning git repo + checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 's424714', url: 'https://git.wmi.amu.edu.pl/s424714/ium_424714']]]) } - stage('Goodbye') { + + stage('Shell Script') { + + // creating global envs for kaggle CLI + withEnv(["KAGGLE_USERNAME=${params.KAGGLE_USERNAME}", + "KAGGLE_KEY=${params.KAGGLE_KEY}" ]) { + sh 'echo KAGGLE_USERNAME: $KAGGLE_USERNAME' + + sh "chmod +x -R ${env.WORKSPACE}" + sh "./create-dataset.sh ${CUTOFF}" + } + + + + } + + stage('Saving artefacts') { echo 'Goodbye!' - //Zarchiwizuj wynik - archiveArtifacts 'output.txt' + archiveArtifacts 'data/dataset.csv' } } \ No newline at end of file diff --git a/Jenkinsfile2 b/Jenkinsfile2 new file mode 100644 index 0000000..3fc6ad3 --- /dev/null +++ b/Jenkinsfile2 @@ -0,0 +1,36 @@ +node { + stage('Preparation') { + properties([ + parameters([ + buildSelector( + defaultSelector: lastSuccessful(), + description: 'Which build to use for copying artifacts', + name: 'BUILD_SELECTOR' + ) + ]) + ]) + } + + stage('Git clone') { + //cloning git repo + checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 's424714', url: 'https://git.wmi.amu.edu.pl/s424714/ium_424714']]]) + } + stage('cloning artifacts') { + //coping artifacts + copyArtifacts fingerprintArtifacts: true, projectName: 's424714-create-dataset', selector: buildParameter('BUILD_SELECTOR') + + } + + + stage('Shell Script') { + // executing bash scripts + sh "chmod +x -R ${env.WORKSPACE}" + sh "./stats-dataset.sh" + + } + + stage('Saving artefacts') { + echo 'Goodbye!' + archiveArtifacts 'data/stats.txt' + } +} \ No newline at end of file diff --git a/create-dataset.sh b/create-dataset.sh new file mode 100755 index 0000000..599d61f --- /dev/null +++ b/create-dataset.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +mkdir -p data +kaggle datasets download -p data --unzip clmentbisaillon/fake-and-real-news-dataset +############################## +INPUT_FAKE=data/Fake.csv +INPUT_TRUE=data/True.csv +DATASET=data/dataset.csv + +# INPUT_FAKE=data/test.csv +# INPUT_TRUE=data/test.csv + +FAKE_DATA=$(tail -n +2 $INPUT_FAKE) +TRUE_DATA=$(tail -n +2 $INPUT_TRUE) +DATA="${FAKE_DATA}\n${TRUE_DATA}" +# DATA =$(head -n $1 $DATA) +echo -e "$DATA" | shuf | head -n $1 > $DATASET +rm data/True.csv +rm data/Fake.csv + diff --git a/stats-dataset.sh b/stats-dataset.sh new file mode 100755 index 0000000..ec460ac --- /dev/null +++ b/stats-dataset.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +DATASET=data/dataset.csv +records=$(wc -l < $DATASET) +echo "Records: $records" > data/stats.txt \ No newline at end of file diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..28a9006 --- /dev/null +++ b/test.sh @@ -0,0 +1 @@ +echo "Witaj $1" \ No newline at end of file