diff --git a/Jenkinsfile b/Jenkinsfile index 25e905b..cafa100 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,159 +6,110 @@ pipeline { } stages { - stage('Tests') { + + stage('Code') { steps { parallel( - "WWW": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-www" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/www-devel /debug.sh bin/test -v -vv -s $GIT_NAME''' - } finally { - sh '''docker rm -v $BUILD_TAG-www''' - } - } + "ZPT Lint": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-zptlint" -e GIT_BRANCH="$BRANCH_NAME" -e ADDONS="$GIT_NAME" -e DEVELOP="src/$GIT_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/plone-test:4 zptlint''' } }, - "KGS": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-kgs" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/kgs-devel /debug.sh bin/test --test-path /plone/instance/src/$GIT_NAME -v -vv -s $GIT_NAME''' - } finally { - sh '''docker rm -v $BUILD_TAG-kgs''' - } - } + "JS Lint": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-jslint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/jslint4java''' } }, - "Plone4": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-plone4" -e GIT_BRANCH="$BRANCH_NAME" -e ADDONS="$GIT_NAME" -e DEVELOP="src/$GIT_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/plone-test:4 -v -vv -s $GIT_NAME''' - } finally { - sh '''docker rm -v $BUILD_TAG-plone4''' - } - } + "PyFlakes": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-pyflakes" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pyflakes''' + } + }, + + "i18n": { + node(label: 'docker') { + sh '''docker run -i --rm --name=$BUILD_TAG-i18n -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/i18ndude''' } } ) } } - stage('Code Analysis') { + stage('Tests') { steps { parallel( - "ZPT Lint": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-zptlint" -e GIT_BRANCH="$BRANCH_NAME" -e ADDONS="$GIT_NAME" -e DEVELOP="src/$GIT_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/plone-test:4 zptlint''' - } finally { - sh '''docker rm -v $BUILD_TAG-zptlint''' - } - } - } - }, - - "JS Lint": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-jslint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/jslint4java''' - } finally { - sh '''docker rm -v $BUILD_TAG-jslint''' - } - } + "WWW": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-www" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/www-devel /debug.sh bin/test -v -vv -s $GIT_NAME''' } }, - "PyFlakes": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name="$BUILD_TAG-pyflakes" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pyflakes''' - } finally { - sh '''docker rm -v $BUILD_TAG-pyflakes''' - } - } + "KGS": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-kgs" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/kgs-devel /debug.sh bin/test --test-path /plone/instance/src/$GIT_NAME -v -vv -s $GIT_NAME''' } }, - "i18n": { - node(label: 'docker-1.13') { - script { - try { - sh '''docker run -i --name=$BUILD_TAG-i18n -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/i18ndude''' - } finally { - sh '''docker rm -v $BUILD_TAG-i18n''' - } - } + "Plone4": { + node(label: 'docker') { + sh '''docker run -i --rm --name="$BUILD_TAG-plone4" -e GIT_BRANCH="$BRANCH_NAME" -e ADDONS="$GIT_NAME" -e DEVELOP="src/$GIT_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/plone-test:4 -v -vv -s $GIT_NAME''' } } ) } } - stage('Code Syntax') { + stage('Cosmetics') { steps { parallel( "JS Hint": { - node(label: 'docker-1.13') { + node(label: 'docker') { script { try { - sh '''docker run -i --name="$BUILD_TAG-jshint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/jshint''' + sh '''docker run -i --rm --name="$BUILD_TAG-jshint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/jshint''' } catch (err) { echo "Unstable: ${err}" - } finally { - sh '''docker rm -v $BUILD_TAG-jshint''' } } } }, "CSS Lint": { - node(label: 'docker-1.13') { + node(label: 'docker') { script { try { - sh '''docker run -i --name="$BUILD_TAG-csslint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/csslint''' + sh '''docker run -i --rm --name="$BUILD_TAG-csslint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/csslint''' } catch (err) { echo "Unstable: ${err}" - } finally { - sh '''docker rm -v $BUILD_TAG-csslint''' } } } }, "PEP8": { - node(label: 'docker-1.13') { + node(label: 'docker') { script { try { - sh '''docker run -i --name="$BUILD_TAG-pep8" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pep8''' + sh '''docker run -i --rm --name="$BUILD_TAG-pep8" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pep8''' } catch (err) { echo "Unstable: ${err}" - } finally { - sh '''docker rm -v $BUILD_TAG-pep8''' } } } }, "PyLint": { - node(label: 'docker-1.13') { + node(label: 'docker') { script { try { - sh '''docker run -i --name="$BUILD_TAG-pylint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pylint''' + sh '''docker run -i --rm --name="$BUILD_TAG-pylint" -e GIT_SRC="https://github.com/eea/$GIT_NAME.git" -e GIT_NAME="$GIT_NAME" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" eeacms/pylint''' } catch (err) { echo "Unstable: ${err}" - } finally { - sh '''docker rm -v $BUILD_TAG-pylint''' } } } @@ -168,6 +119,43 @@ pipeline { } } + stage('Pull Request') { + when { + not { + environment name: 'CHANGE_ID', value: '' + } + environment name: 'CHANGE_TARGET', value: 'master' + } + steps { + node(label: 'docker') { + script { + if ( env.CHANGE_BRANCH != "develop" && !( env.CHANGE_BRANCH.startsWith("hotfix")) ) { + error "Pipeline aborted due to PR not made from develop or hotfix branch" + } + withCredentials([string(credentialsId: 'eea-jenkins-token', variable: 'GITHUB_TOKEN')]) { + sh '''docker run -i --rm --name="$BUILD_TAG-gitflow-pr" -e GIT_CHANGE_BRANCH="$CHANGE_BRANCH" -e GIT_CHANGE_AUTHOR="$CHANGE_AUTHOR" -e GIT_CHANGE_TITLE="$CHANGE_TITLE" -e GIT_TOKEN="$GITHUB_TOKEN" -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e GIT_ORG="$GIT_ORG" -e GIT_NAME="$GIT_NAME" eeacms/gitflow''' + } + } + } + } + } + + stage('Release') { + when { + allOf { + environment name: 'CHANGE_ID', value: '' + branch 'master' + } + } + steps { + node(label: 'docker') { + withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'eea-jenkins', usernameVariable: 'EGGREPO_USERNAME', passwordVariable: 'EGGREPO_PASSWORD'],string(credentialsId: 'eea-jenkins-token', variable: 'GITHUB_TOKEN'),[$class: 'UsernamePasswordMultiBinding', credentialsId: 'pypi-jenkins', usernameVariable: 'PYPI_USERNAME', passwordVariable: 'PYPI_PASSWORD']]) { + sh '''docker run -i --rm --name="$BUILD_TAG-gitflow-master" -e GIT_BRANCH="$BRANCH_NAME" -e EGGREPO_USERNAME="$EGGREPO_USERNAME" -e EGGREPO_PASSWORD="$EGGREPO_PASSWORD" -e GIT_NAME="$GIT_NAME" -e PYPI_USERNAME="$PYPI_USERNAME" -e PYPI_PASSWORD="$PYPI_PASSWORD" -e GIT_ORG="$GIT_ORG" -e GIT_TOKEN="$GITHUB_TOKEN" eeacms/gitflow''' + } + } + } + } + } post { diff --git a/README.rst b/README.rst index 0367829..9bad86a 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,12 @@ ============= EEA Converter ============= -.. image:: http://ci.eionet.europa.eu/job/eea/job/eea.converter/job/master/badge/icon - :target: http://ci.eionet.europa.eu/job/eea/job/eea.converter/job/master/display/redirect +.. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.converter/develop + :target: https://ci.eionet.europa.eu/job/eea/job/eea.converter/job/develop/display/redirect + :alt: Develop +.. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.converter/master + :target: https://ci.eionet.europa.eu/job/eea/job/eea.converter/job/master/display/redirect + :alt: Master Introduction diff --git a/docs/HISTORY.txt b/docs/HISTORY.txt index 9050875..7492a1e 100644 --- a/docs/HISTORY.txt +++ b/docs/HISTORY.txt @@ -1,8 +1,13 @@ Changelog ========= -12.1.dev0 - (unreleased) ------------------------- +12.2 - (2018-04-20) +------------------- +* Change: Possibility to group download info within AsyncInfo wrapper + [avoinea] + +12.1 - (2017-12-12) +------------------- * Change: Replace eeacms/zptlint with eeacms/plone-test:4 zptlint [avoinea refs #90415] diff --git a/eea/converter/async.py b/eea/converter/async.py index 54a3798..e8c06bb 100644 --- a/eea/converter/async.py +++ b/eea/converter/async.py @@ -9,6 +9,12 @@ from eea.converter.config import TMPDIR logger = logging.getLogger('eea.converter') + +class AsyncInfo(object): + """ Async Info """ + def __init__(self, **kwargs): + for k, v in kwargs.items(): + setattr(self, k, v) # # Custom Exceptions # @@ -16,9 +22,11 @@ class ConversionError(IOError): """ Conversion error """ -def run_async_job(context, job, success_event, fail_event, **kwargs): +def run_async_job(context, job, success_event, fail_event, info=None, **kwargs): """ Async job """ + kwargs.update(getattr(info, '__dict__', {})) + filepath = kwargs.get('filepath', '') filepath_lock = filepath + '.lock' filepath_meta = filepath + '.meta' diff --git a/eea/converter/version.txt b/eea/converter/version.txt index 453c916..5807e59 100644 --- a/eea/converter/version.txt +++ b/eea/converter/version.txt @@ -1 +1 @@ -12.1.dev0 \ No newline at end of file +12.2