diff --git a/modules/jenkins/files/slave_scripts/php-laravel-build.sh b/modules/jenkins/files/slave_scripts/php-laravel-build.sh new file mode 100644 index 0000000000..f8e6fca59a --- /dev/null +++ b/modules/jenkins/files/slave_scripts/php-laravel-build.sh @@ -0,0 +1,12 @@ +#!/bin/bash -xe +# Build a Laravel/PHP distribution using composer. + +cat >bootstrap/environment.php <detectEnvironment(function() +{ + return 'dev'; +}); +EOF +curl -s https://getcomposer.org/installer | /usr/bin/php +php composer.phar install --prefer-dist \ No newline at end of file diff --git a/modules/jenkins/manifests/params.pp b/modules/jenkins/manifests/params.pp index 5619b602a9..37a21c3972 100644 --- a/modules/jenkins/manifests/params.pp +++ b/modules/jenkins/manifests/params.pp @@ -54,6 +54,8 @@ class jenkins::params { $xvfb_package = 'xorg-x11-server-Xvfb' # PHP package, used for community portal $php5_cli_package = 'php-cli' + # FIXME: No php mcrypt package on RHEL, used for openstackid + #$php5_mcrypt_package = '' # For Tooz unit tests # FIXME: No zookeeper packages on RHEL #$zookeeper_package = 'zookeeper-server' @@ -134,6 +136,7 @@ class jenkins::params { $xvfb_package = 'xvfb' # PHP package, used for community portal $php5_cli_package = 'php5-cli' + $php5_mcrypt_package = 'php5-mcrypt' # For [tooz, taskflow, nova] using zookeeper in unit tests $zookeeper_package = 'zookeeperd' $cgroups_package = 'cgroup-bin' diff --git a/modules/jenkins/manifests/slave.pp b/modules/jenkins/manifests/slave.pp index 4b7499713f..0804e5d06d 100644 --- a/modules/jenkins/manifests/slave.pp +++ b/modules/jenkins/manifests/slave.pp @@ -130,6 +130,11 @@ class jenkins::slave( ensure => present, } + # For openstackid using php5-mcrypt for distro build + package { $::jenkins::params::php5_mcrypt_package: + ensure => present, + } + } default: { fail("Unsupported osfamily: ${::osfamily} The 'jenkins' module only supports osfamily Debian or RedHat (slaves only).") diff --git a/modules/openstack_project/files/jenkins_job_builder/config/openstackid.yaml b/modules/openstack_project/files/jenkins_job_builder/config/openstackid.yaml new file mode 100644 index 0000000000..b99fa97924 --- /dev/null +++ b/modules/openstack_project/files/jenkins_job_builder/config/openstackid.yaml @@ -0,0 +1,59 @@ +- job: + name: gate-openstackid-unittests + node: 'bare-precise' + + builders: + - gerrit-git-prep + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/php-laravel-build.sh + publishers: + - console-log + - coverage-log + - scp: + site: 'static.openstack.org' + files: + - target: 'logs/$LOG_PATH' + source: './reports/**' + keep-hierarchy: true + copy-after-failure: true + +- job-template: + name: 'openstackid-release-{branch-designator}' + node: '{node}' + + builders: + - gerrit-git-prep + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/maven-properties.sh + - inject: + properties-file: maven.properties + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/php-laravel-build.sh + # Clone to dist + rm -rf dist + mkdir dist + rsync -arv --exclude ".git*" --exclude tarballs --exclude dist . dist + # Clean/create a tarball directory + rm -rf tarballs + mkdir -p tarballs + # Create an archive tarball. + tar -czf openstackid-$PROJECT_VER.tar.gz dist/ + cp openstackid-$PROJECT_VER.tar.gz tarballs/openstackid-latest.tar.gz + mv openstackid-$PROJECT_VER.tar.gz tarballs/ + publishers: + - console-log + - coverage-log + - scp: + site: 'static.openstack.org' + files: + - target: 'logs/$LOG_PATH' + source: './reports/**' + keep-hierarchy: true + copy-after-failure: true + - target: 'tarballs/openstackid/' + source: 'tarballs/*.tar.gz' + keep-hierarchy: false + copy-after-failure: false diff --git a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml index 646d265ff2..312bcfb871 100644 --- a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml +++ b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml @@ -2174,3 +2174,16 @@ branch-designator: 'master' - 'groups-release-{branch-designator}': branch-designator: 'branch' + +- project: + name: openstackid + github-org: openstack-infra + node: bare-precise + tarball-site: tarballs.openstack.org + + jobs: + - gate-openstackid-unittests + - 'openstackid-release-{branch-designator}': + branch-designator: 'master' + - 'openstackid-release-{branch-designator}': + branch-designator: 'branch' diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml index 2520c65cf5..09e2767079 100644 --- a/modules/openstack_project/files/zuul/layout.yaml +++ b/modules/openstack_project/files/zuul/layout.yaml @@ -2737,9 +2737,13 @@ projects: - name: openstack-infra/openstackid check: - - gate-noop + - gate-openstackid-unittests gate: - - gate-noop + - gate-openstackid-unittests + post: + - openstackid-release-branch + release: + - openstackid-release-master - name: openstack-infra/os-loganalyze check: