David Caro has uploaded a new change for review.

Change subject: Added vdsm installation sanity
......................................................................

Added vdsm installation sanity

Change-Id: Ia6befd9fe1123c006fc9b21dba111ec92e0336c8
Signed-off-by: David Caro <dcaro...@redhat.com>
---
M jobs/confs/shell-scripts/mock_build_onlyrpm.sh.inc
A jobs/confs/shell-scripts/mock_install.sh
A jobs/confs/yaml/builders/mock_install.yaml
A jobs/confs/yaml/jobs/vdsm/vdsm_install-rpm-sanity.yaml
A jobs/confs/yaml/scms/vdsm.yaml
R jobs/confs/yaml/templates/create-rpms_mock.yaml
A jobs/confs/yaml/templates/install-rpm-sanity.yaml
7 files changed, 163 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/jenkins refs/changes/08/29008/1

diff --git a/jobs/confs/shell-scripts/mock_build_onlyrpm.sh.inc 
b/jobs/confs/shell-scripts/mock_build_onlyrpm.sh.inc
index 69940c0..148cc6e 100644
--- a/jobs/confs/shell-scripts/mock_build_onlyrpm.sh.inc
+++ b/jobs/confs/shell-scripts/mock_build_onlyrpm.sh.inc
@@ -19,13 +19,17 @@
 #
 # extra-configure-options
 #     extra options to pass to configure
+#
+# env
+#     extra env variables to set when building
 
 distro="{distro}"
 arch="{arch}"
 project="{project}"
 extra_packages="{extra-packages}"
 extra_configure_options="{extra-configure-options}"
-
+extra_env="{env}
+"
 # Build the src_rpms
 # Get the release suffix
 pushd "$project"
@@ -84,6 +88,16 @@
        --install "$extra_packages"
 fi
 
+### Set any extra env vars if any
+if [[ -n $extra_env ]]; then
+    echo "Configuring custom env variables"
+    $my_mock \
+       --no-clean \
+       --shell <<EOF
+        echo "export $extra_env" >> /etc/profile
+EOF
+fi
+
 ### Build the rpms
 echo "##### Building the rpms"
 $my_mock \
diff --git a/jobs/confs/shell-scripts/mock_install.sh 
b/jobs/confs/shell-scripts/mock_install.sh
new file mode 100644
index 0000000..db3a701
--- /dev/null
+++ b/jobs/confs/shell-scripts/mock_install.sh
@@ -0,0 +1,76 @@
+#!/bin/bash -xe
+# Do some black magic
+# PARAMETERS
+#
+# project
+#     Name of the project it runs on, specifically the dir where the code
+#     has been cloned
+#
+# distro
+#     Distribution it should cre%ate the repms for (usually el6, el7, fc19 or
+#     fc20)
+#
+# arch
+#     Architecture to build the packages for
+#
+# packages
+#     List of paths to the packages to install
+#
+# env
+#     Extra envionment variables
+
+distro="{distro}"
+arch="{arch}"
+project="{project}"
+packages="{packages}"
+extra_env="{env}"
+
+
+pushd "$project"
+
+### Generate the mock configuration
+pushd "$WORKSPACE"/jenkins/mock_configs
+arch="{arch}"
+case $distro in
+    fc*) distribution="fedora-${{distro#fc}}";;
+    el*) distribution="epel-${{distro#el}}";;
+    *) echo "Unknown distro $distro"; exit 1;;
+esac
+mock_conf="${{distribution}}-$arch-ovirt-snapshot"
+echo "#### Generating mock configuration"
+./mock_genconfig \
+    --name="$mock_conf" \
+    --base="$distribution-$arch.cfg" \
+    --option="basedir=$WORKSPACE/mock/" \
+    
--repo="ovirt-master-snapshot,http://resources.ovirt.org/pub/ovirt-master-snapshot/rpm/$distro";
 \
+    
--repo="ovirt-master-snapshot-static,http://resources.ovirt.org/pub/ovirt-master-snapshot-static/rpm/$distro";
 \
+> "$mock_conf.cfg"
+sudo touch /var/cache/mock/*/root_cache/cache.tar.gz || :
+cat "$mock_conf.cfg"
+popd
+
+## prepare the command line
+my_mock="/usr/bin/mock"
+my_mock+=" --configdir=$WORKSPACE/jenkins/mock_configs"
+my_mock+=" --root=$mock_conf"
+
+### Copy the packages to the chroot
+$my_mock \
+    --copyin ${{packages?}} /tmp/
+
+### Set any extra env vars if any
+if [[ -n $extra_env ]]; then
+    echo "Configuring custom env variables"
+    $my_mock \
+       --no-clean \
+       --shell <<EOF
+echo "export $extra_env" >> /etc/profile
+EOF
+
+### Install the packages
+echo "##### Installing $packages"
+$my_mock \
+    --no-clean \
+    --shell <<EOF
+yum localinstall -y /tmp/*rpm
+EOF
diff --git a/jobs/confs/yaml/builders/mock_install.yaml 
b/jobs/confs/yaml/builders/mock_install.yaml
new file mode 100644
index 0000000..f56a4aa
--- /dev/null
+++ b/jobs/confs/yaml/builders/mock_install.yaml
@@ -0,0 +1,7 @@
+- builder:
+    name: mock-onlyrpm-install
+    builders:
+      - shell: !include-raw shell-scripts/mock_setup.sh
+      - shell: !include-raw shell-scripts/mock_build_onlyrpm.sh.inc
+      - shell: !include-raw shell-scripts/mock_install.sh
+      - shell: !include-raw shell-scripts/mock_cleanup.sh
diff --git a/jobs/confs/yaml/jobs/vdsm/vdsm_install-rpm-sanity.yaml 
b/jobs/confs/yaml/jobs/vdsm/vdsm_install-rpm-sanity.yaml
new file mode 100644
index 0000000..8c442d7
--- /dev/null
+++ b/jobs/confs/yaml/jobs/vdsm/vdsm_install-rpm-sanity.yaml
@@ -0,0 +1,24 @@
+- project:
+    name: vdsm_install-rpm-sanity
+    project:
+      - vdsm
+    trigger:
+      - created
+    branch:
+      - master
+    mock-build-type:
+      - onlyrpm
+    distro:
+      - fc19
+      - fc20
+      - el6
+    arch:
+      - x86_64
+    jobs:
+      - '{project}_{branch}_install-rpm-sanity-{distro}_{trigger}':
+          # Ugly fix until BZ#1111601 is solved
+          extra-packages: 'm2crypto'
+          extra-configure-options: ''
+          packages: 'exported-artifacs/vdsm-*rpm'
+          trigger-files: 'vdsm.spec.in'
+          env: 'NOSE_EXCLUDE=.*'
diff --git a/jobs/confs/yaml/scms/vdsm.yaml b/jobs/confs/yaml/scms/vdsm.yaml
new file mode 100644
index 0000000..d352c63
--- /dev/null
+++ b/jobs/confs/yaml/scms/vdsm.yaml
@@ -0,0 +1,16 @@
+- scm:
+    name: vdsm-gerrit
+    scm:
+      - git:
+          url: git://gerrit.ovirt.org/vdsm.git
+          branches:
+            - $GERRIT_BRANCH
+          basedir: vdsm
+          scm-name: vdsm
+          name: ''
+          refspec: $GERRIT_REFSPEC
+          choosing-strategy: gerrit
+          use-author: true
+          skip-tag: true
+          prune: true
+          wipe-workspace: false
diff --git a/jobs/confs/yaml/jobs/create-rpms_mock.yaml 
b/jobs/confs/yaml/templates/create-rpms_mock.yaml
similarity index 100%
rename from jobs/confs/yaml/jobs/create-rpms_mock.yaml
rename to jobs/confs/yaml/templates/create-rpms_mock.yaml
diff --git a/jobs/confs/yaml/templates/install-rpm-sanity.yaml 
b/jobs/confs/yaml/templates/install-rpm-sanity.yaml
new file mode 100644
index 0000000..fd2706e
--- /dev/null
+++ b/jobs/confs/yaml/templates/install-rpm-sanity.yaml
@@ -0,0 +1,25 @@
+- job-template:
+    name: '{project}_{branch}_install-rpm-sanity-{distro}_{trigger}'
+    parameters:
+      - gerrit-params:
+          branch: '{branch}'
+    scm:
+      - '{project}-gerrit'
+      - jenkins:
+          branch: master
+    triggers:
+      - 'on-patch-{trigger}-with-files':
+          project: '{project}'
+          branch: '{branch}'
+          files: '{trigger-files}'
+    builders:
+      - mock-{mock-build-type}-install:
+          project: '{project}'
+          distro: '{distro}'
+          arch: '{arch}'
+          extra-packages: '{extra-packages}'
+          extra-configure-options: '{extra-configure-options}'
+          packages: '{packages}'
+          env: '{env}'
+    publishers:
+      - exported-artifacts


-- 
To view, visit http://gerrit.ovirt.org/29008
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia6befd9fe1123c006fc9b21dba111ec92e0336c8
Gerrit-PatchSet: 1
Gerrit-Project: jenkins
Gerrit-Branch: master
Gerrit-Owner: David Caro <dcaro...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to