From 1ac8e52e2be6ff9a8d72e842929ea00e55f6b075 Mon Sep 17 00:00:00 2001 From: Lakshmi N Sampath Date: Thu, 17 Mar 2016 11:26:19 -0700 Subject: [PATCH] Install Elasticsearch for searchlight Functional tests on searchlight don't run on zuul due to missing elasticsearch binary. This will install elasticsearch as a prereq before the functional tests are run. Elasticsearch is used as backend dependency for searchlight "only". Not an attempt to have test results in logstash.openstack.org Closes-Bug: #1552767 Change-Id: I8aebce8653f795f380a627d4c9874a3c7a21aac5 --- jenkins/jobs/macros.yaml | 19 +++++++++++++++++++ jenkins/jobs/projects.yaml | 4 ++-- jenkins/jobs/python-jobs.yaml | 17 +++++++++++++++++ jenkins/jobs/searchlight.yaml | 24 ++++++++++++++++++++++++ zuul/layout.yaml | 23 +++++++++++++++++++++-- 5 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 jenkins/jobs/searchlight.yaml diff --git a/jenkins/jobs/macros.yaml b/jenkins/jobs/macros.yaml index 86838f088e..88c792ab41 100644 --- a/jenkins/jobs/macros.yaml +++ b/jenkins/jobs/macros.yaml @@ -807,6 +807,25 @@ sudo service ssh restart fi + +# Install specific elasticsearch version as needed for searchlight. +- builder: + name: elasticsearch-install + builders: + - shell: | + #!/bin/bash -xe + sudo apt-get update + sudo apt-get install -y openjdk-7-jre + wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.5.deb + sudo dpkg -i elasticsearch-1.7.5.deb + + #Switch to tar extract if service start doesn't work. + #wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.5.tar.gz + #tar -zxvf elasticsearch-1.7.5.tar.gz + + #Make 'elasticsearch' binary callable from within functional tests + sudo ln -s /usr/share/elasticsearch/bin/elasticsearch /usr/local/bin/elasticsearch + # ====================================================================== - wrapper: diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml index 4dd0c9c6ef..ef95f64367 100644 --- a/jenkins/jobs/projects.yaml +++ b/jenkins/jobs/projects.yaml @@ -6861,7 +6861,7 @@ doc-publisher-site: docs.openstack.org jobs: - - python-jobs + - python-jobs-searchlight - openstack-publish-jobs - pypi-jobs @@ -7459,7 +7459,7 @@ tarball-site: tarballs.openstack.org doc-publisher-site: docs.openstack.org jobs: - - python-jobs + - python-jobs-searchlight - openstack-publish-jobs - openstack-releasenotes-jobs - pypi-jobs diff --git a/jenkins/jobs/python-jobs.yaml b/jenkins/jobs/python-jobs.yaml index daa8c052b6..39fc9c0b98 100644 --- a/jenkins/jobs/python-jobs.yaml +++ b/jenkins/jobs/python-jobs.yaml @@ -540,3 +540,20 @@ # pylint isn't standard # gate-{name}-tox-{envlist} also isn't standard, but is reserved for # projects that want to run specific jobs via tox + +- job-group: + name: python-jobs-searchlight + jobs: + - '{name}-coverage' + - 'gate-{name}-pep8' + - 'gate-{name}-python27-searchlight' + - 'gate-{name}-python34' + - 'gate-{name}-pypy' + - 'gate-{name}-docs' + - 'gate-{name}-requirements' + - '{name}-tarball' + - '{name}-branch-tarball' + - '{name}-announce-release' + # pylint isn't standard + # gate-{name}-tox-{envlist} also isn't standard, but is reserved for + # projects that want to run specific jobs via tox diff --git a/jenkins/jobs/searchlight.yaml b/jenkins/jobs/searchlight.yaml new file mode 100644 index 0000000000..d15ce3247d --- /dev/null +++ b/jenkins/jobs/searchlight.yaml @@ -0,0 +1,24 @@ +- job-template: + name: 'gate-{name}-python27-searchlight' + + wrappers: + - build-timeout: + timeout: 50 + - timestamps + + builders: + - print-template-name: + template-name: "{template-name}" + - zuul-git-prep-upper-constraints + - elasticsearch-install + - install-distro-packages + - revoke-sudo + - python27 + - assert-no-extra-files + + publishers: + - test-results + - console-log + - zuul-swift-test-results-with-console + + node: ubuntu-trusty diff --git a/zuul/layout.yaml b/zuul/layout.yaml index 355bfc0865..db0d237a80 100755 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -308,6 +308,25 @@ project-templates: post: - '{name}-branch-tarball' + # Invokes the same targets as python-jobs with one change: + # python27-searchlight is used instead of python27. The job + # python27-searchlight installs extra packages + - name: python-jobs-searchlight + check: + - 'gate-{name}-docs' + - 'gate-{name}-pep8' + # TODO(jaegerandi): Enable once experimental job works. + # - 'gate-{name}-python27-searchlight' + gate: + - 'gate-{name}-docs' + - 'gate-{name}-pep8' + # TODO(jaegerandi): Enable once experimental job works. + # - 'gate-{name}-python27-searchlight' + experimental: + - 'gate-{name}-python27-searchlight' + post: + - '{name}-branch-tarball' + - name: python-charm-jobs check: - 'gate-{name}-pep8' @@ -9784,7 +9803,7 @@ projects: - name: openstack/python-searchlightclient template: - name: merge-check - - name: python-jobs + - name: python-jobs-searchlight - name: python3-jobs - name: openstack-client-publish-jobs - name: check-requirements @@ -10323,7 +10342,7 @@ projects: - name: openstack/searchlight template: - name: merge-check - - name: python-jobs + - name: python-jobs-searchlight - name: python3-jobs - name: openstack-server-publish-jobs - name: openstack-server-release-jobs