puppet-fdio: reformat jjb and add beaker tests
[ci-management.git] / jjb / puppet-fdio / puppet-fdio.yaml
1 - project:
2     name: puppet-fdio
3     jobs:
4         - 'puppet-module-unit'
5         - 'puppet-fdio-verify-beaker-{stream}-{os}'
6     project: 'puppet-fdio'
7     os:
8         - centos7:
9             repo-os-part: 'centos7'
10     stream:
11         - master:
12             branch: 'master'
13             repo-stream-part: 'master'
14
15 - job-template:
16     name: 'puppet-fdio-verify-unit-{puppet_version}-{stream}-{os}'
17
18     project-type: freestyle
19     node: 'verify-{os}'
20     concurrent: true
21
22     logrotate:
23         daysToKeep: '{build-days-to-keep}'
24         numToKeep: '{build-num-to-keep}'
25         artifactDaysToKeep: '{build-artifact-days-to-keep}'
26         artifactNumToKeep: '{build-artifact-num-to-keep}'
27
28     parameters:
29         - project-parameter:
30             project: '{project}'
31         - gerrit-parameter:
32             branch: '{branch}'
33         - os-parameter:
34             os: '{os}'
35         - repo-name-parameter:
36             repo-name: '{repo-stream-part}.{repo-os-part}'
37
38     scm:
39         - gerrit-trigger-scm:
40             credentials-id: 'jenkins-gerrit-credentials'
41             refspec: '$GERRIT_REFSPEC'
42             choosing-strategy: 'gerrit'
43
44     wrappers:
45         - fdio-infra-wrappers:
46             build-timeout: '{build-timeout}'
47
48     triggers:
49         - gerrit-trigger-patch-submitted:
50             name: '{project}'
51             branch: '{branch}'
52
53     builders:
54         - puppet-prepare-node
55         - shell: |
56             if [ "{puppet_version}" != "latest" ]; then
57               export PUPPET_GEM_VERSION='~> {puppet_version}.0'
58             fi
59             mkdir .bundled_gems
60             export GEM_HOME=`pwd`/.bundled_gems
61             gem install bundler --no-rdoc --no-ri --verbose
62             $GEM_HOME/bin/bundle install --retry 3
63             $GEM_HOME/bin/bundle exec rake syntax
64             $GEM_HOME/bin/bundle exec rake lint
65             $GEM_HOME/bin/bundle exec rake spec SPEC_OPTS='--format documentation'
66
67 - job-group:
68     name: 'puppet-module-unit'
69     puppet_version:
70       - 3.6
71       - 3.8
72       - 4.0
73       - 4.5
74       - 'latest'
75     jobs:
76       - 'puppet-fdio-verify-unit-{puppet_version}-{stream}-{os}'
77
78 - job-template:
79     name: 'puppet-fdio-verify-beaker-{stream}-{os}'
80
81     project-type: freestyle
82     node: 'verify-{os}'
83     concurrent: true
84
85     logrotate:
86         daysToKeep: '{build-days-to-keep}'
87         numToKeep: '{build-num-to-keep}'
88         artifactDaysToKeep: '{build-artifact-days-to-keep}'
89         artifactNumToKeep: '{build-artifact-num-to-keep}'
90
91     parameters:
92         - project-parameter:
93             project: '{project}'
94         - gerrit-parameter:
95             branch: '{branch}'
96         - os-parameter:
97             os: '{os}'
98         - repo-name-parameter:
99             repo-name: '{repo-stream-part}.{repo-os-part}'
100
101     scm:
102         - gerrit-trigger-scm:
103             credentials-id: 'jenkins-gerrit-credentials'
104             refspec: '$GERRIT_REFSPEC'
105             choosing-strategy: 'gerrit'
106
107     wrappers:
108         - fdio-infra-wrappers:
109             build-timeout: '{build-timeout}'
110
111     triggers:
112         - gerrit-trigger-patch-submitted:
113             name: '{project}'
114             branch: '{branch}'
115
116     builders:
117         - puppet-prepare-node
118         - allow-local-ssh-root
119         - shell: |
120             sudo sysctl -w vm.nr_hugepages=1024
121             cat /proc/meminfo | grep Huge
122             mkdir .bundled_gems
123             export GEM_HOME=`pwd`/.bundled_gems
124             gem install bundler --no-rdoc --no-ri --verbose
125             $GEM_HOME/bin/bundle install --retry 3
126             export BEAKER_set=nodepool-{os}
127             export BEAKER_debug=yes
128             export BEAKER_color=no
129             $GEM_HOME/bin/bundle exec rspec spec/acceptance
130
131 - builder:
132     name: puppet-prepare-node
133     builders:
134       - shell: |
135           if [ -f /usr/bin/yum ]; then
136             sudo yum -y install libxml2-devel libxslt-devel ruby-devel zlib-devel
137           elif [ -f /usr/bin/apt-get ]; then
138             sudo apt-get update
139             sudo apt-get install -y libxml2-dev libxslt-dev zlib1g-dev
140           fi
141
142 - builder:
143     name: allow-local-ssh-root
144     builders:
145       - shell: |
146           #!/bin/bash
147           echo "" | sudo tee -a /etc/ssh/sshd_config
148           echo "Match address 127.0.0.1" | sudo tee -a /etc/ssh/sshd_config
149           echo "    PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config
150           echo "" | sudo tee -a /etc/ssh/sshd_config
151           echo "Match address ::1" | sudo tee -a /etc/ssh/sshd_config
152           echo "    PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config
153           mkdir -p .ssh
154           ssh-keygen -f ~/.ssh/id_rsa -b 2048 -P ""
155           sudo mkdir -p /root/.ssh
156           cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys
157           if [ -f /usr/bin/yum ]; then
158               sudo systemctl restart sshd
159           elif [ -f /usr/bin/apt-get ]; then
160               sudo service ssh restart
161           fi