From fede12af61021445a1de27b8d2486ce942780c30 Mon Sep 17 00:00:00 2001 From: Artur Nowakowski Date: Fri, 3 Apr 2020 14:17:05 +0200 Subject: [PATCH] Plots --- .gitignore | 4 ++++ Dockerfile | 8 ++++++++ Jenkinsfile | 23 ++++------------------- generate_plot.py | 21 +++++++++++++++++++++ 4 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100755 generate_plot.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..325c859 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +venv +.DS_STORE +__pycache__ +.idea diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ccac08f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3 + +WORKDIR /app + +COPY ./requirements.txt . +COPY ./generate_plot.py . + +RUN pip install -r requirements.txt \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 7b1f547..1791350 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,26 +6,11 @@ pipeline { copyArtifacts filter: 'wer.txt, srr.txt', fingerprintArtifacts: true, projectName: 's416138-metrics', selector: lastSuccessful() } } - stage('Generate plot'){ + stage('Generate and archive plots'){ steps { - plot csvFileName: 'plot-8e54e334-ab7b-4c9f-94f7-b9d8965723df.csv', - csvSeries: [[ - file: 'wer.txt', - exclusionValues: '', - displayTableFlag: false, - inclusionFlag: 'OFF', - url: '']], - group: 'Plot Group', - title: 'Plot Title', - style: 'line', - exclZero: false, - keepRecords: false, - logarithmic: false, - numBuilds: '', - useDescr: false, - yaxis: '', - yaxisMaximum: '', - yaxisMinimum: '' + sh label: '', script: './generate_plot.py' + archiveArtifacts 'wer.png' + archiveArtifacts 'srr.png' } } stage('Clean Workspace'){ diff --git a/generate_plot.py b/generate_plot.py new file mode 100755 index 0000000..a1f74ae --- /dev/null +++ b/generate_plot.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +import matplotlib.pyplot as plt + + +def read_into_file(file_name: str) -> list: + with open(file_name, 'r') as f: + return f.read().splitlines() + + +def generate_plot(data: list, label: str, file_name: str): + plt.plot(data) + plt.ylabel(label) + plt.savefig(file_name) + + +if __name__ == '__main__': + wer = [float(i) for i in read_into_file('wer.txt')] + srr = [float(i) for i in read_into_file('srr.txt')] + + generate_plot(wer, 'WER', 'wer.png') + generate_plot(srr, 'SRR', 'srr.png')