diff --git a/Dockerfile b/Dockerfile index 876ae88..828f0b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,19 @@ FROM ubuntu:latest -RUN apt-get update && apt-get install -y python3-pip unzip coreutils +RUN apt-get update && apt-get install -y \ + python3-pip \ + unzip \ + coreutils RUN pip install --user kaggle pandas scikit-learn tensorflow WORKDIR /app COPY ./data_processing.sh ./ +COPY ./model.py ./ COPY ./OrangeQualityData.csv ./ -COPY ./orange_quality_model_tf.h5 ./ -COPY ./predictions_tf.json ./ +COPY ./requirements.txt ./ -CMD ["python3", "data_processing.sh"] +RUN pip install --user -r requirements.txt + +CMD ["python3", "model.py"] diff --git a/Jenkinsfile b/Jenkinsfile index 5c93c17..9297eff 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,6 +8,16 @@ pipeline { defaultValue: '10000', name: 'CUTOFF', description: 'Liczba wierszy do obcięcia ze zbioru danych') + string( + defaultValue: '', + name: 'TRAINING_PARAMS', + description: 'Parametry trenowania' + ) + } + + environment { + DATASET_PROJECT = 's123456-create-dataset' + DATA_DIR = 'data' } stages { @@ -16,6 +26,17 @@ pipeline { checkout([$class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: 'https://git.wmi.amu.edu.pl/s464906/ium_464906']]]) } } + stage('Copy Dataset') { + steps { + script { + copyArtifacts( + projectName: "${DATASET_PROJECT}", + selector: lastSuccessful(), + target: "${env.DATA_DIR}" + ) + } + } + } stage('Set execute permission') { steps { script { @@ -35,5 +56,29 @@ pipeline { } } } + + stage('Install Dependencies') { + steps { + sh 'pip install -r requirements.txt' + } + } + + stage('Train Model') { + steps { + sh "python model.py ${params.TRAINING_PARAMS}" + } + } + + stage('Archive Model') { + steps { + archiveArtifacts artifacts: 'orange_quality_model_tf.h5', allowEmptyArchive: true + archiveArtifacts artifacts: 'predictions_tf.json', allowEmptyArchive: true + } + } + } + post { + always { + cleanWs() + } } } diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b110fdf --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +tensorflow +pandas +scikit-learn \ No newline at end of file