Merge lp:~powersj/qa-jenkins-jobs/ppc64el into lp:qa-jenkins-jobs

Proposed by Joshua Powers
Status: Merged
Approved by: Max Brustkern
Approved revision: 194
Merged at revision: 194
Proposed branch: lp:~powersj/qa-jenkins-jobs/ppc64el
Merge into: lp:qa-jenkins-jobs
Diff against target: 241 lines (+237/-0)
1 file modified
jobs/iso-testing/jobs-ppc64el.yaml (+237/-0)
To merge this branch: bzr merge lp:~powersj/qa-jenkins-jobs/ppc64el
Reviewer Review Type Date Requested Status
platform-qa-bot continuous-integration Approve
Max Brustkern (community) Approve
Review via email: mp+313848@code.launchpad.net

Commit message

This adds a jenkins job builder file for Ubuntu Server ppc64el ISO testing

The new file will only produce the ISO test jobs that are specific to the
ppc64el testing. The generic jobs used to mark things as current are still
maintained in the primary jobs.xml.

Description of the change

Ubuntu Server ppc64el ISO testing

To post a comment you must log in.
Revision history for this message
Max Brustkern (nuclearbob) wrote :

Looks good!

review: Approve
Revision history for this message
platform-qa-bot (platform-qa-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'jobs/iso-testing/jobs-ppc64el.yaml'
2--- jobs/iso-testing/jobs-ppc64el.yaml 1970-01-01 00:00:00 +0000
3+++ jobs/iso-testing/jobs-ppc64el.yaml 2016-12-23 17:53:36 +0000
4@@ -0,0 +1,237 @@
5+# vim: sw=4 ts=4 et
6+
7+# QA Jenkins Jobs for ppc64el
8+# Copyright 2016 Canonical Ltd.
9+
10+# This program is free software: you can redistribute it and/or modify it
11+# under the terms of the GNU General Public License version 3, as published
12+# by the Free Software Foundation.
13+
14+# This program is distributed in the hope that it will be useful, but
15+# WITHOUT ANY WARRANTY; without even the implied warranties of
16+# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
17+# PURPOSE. See the GNU General Public License for more details.
18+
19+# You should have received a copy of the GNU General Public License along
20+# with this program. If not, see <http://www.gnu.org/licenses/>.
21+
22+# The project stanza describes all jobs and parameters
23+- project:
24+ name: 'iso-testing-ppc64el'
25+ flavor: # Additional flavors can be added here
26+ - 'ubuntu'
27+ release: # Additional releases can be added here
28+ - 'trusty'
29+ - 'xenial'
30+ - 'yakkety'
31+ - 'zesty'
32+ dev-release: # Current development release has different download path
33+ - 'zesty'
34+ lts-release: # All lts releases which should be tested go here
35+ - 'trusty'
36+ - 'xenial'
37+ server-test: # Currently this is all non-default server test cases
38+ - 'ceph'
39+ - 'dns-server'
40+ - 'lamp'
41+ - 'lvm'
42+ - 'lxc'
43+ - 'mail-server'
44+ - 'minimal-virtual'
45+ - 'multi-lvm'
46+ - 'openssh-server'
47+ - 'postgresql-server'
48+ - 'print-server'
49+ - 'raid1'
50+ - 'samba-server'
51+ - 'tomcat-server'
52+ - 'virtual-host'
53+ node: 'iso-testing-ppc64el'
54+ jobs:
55+ - 'ubuntu-{dev-release}-server-ppc64el-iso-download'
56+ - 'ubuntu-{lts-release}-server-ppc64el-iso-download'
57+ - 'ubuntu-{release}-server-ppc64el-iso-static-validation'
58+ - 'ubuntu-{release}-server-ppc64el-smoke-default'
59+ - 'ubuntu-{release}-server-ppc64el-smoke-{server-test}'
60+ - 'mark-pending-current'
61+
62+- builder: # This step runs a specified iso test
63+ name: run-iso-test-ppc64el
64+ builders:
65+ - shell: |
66+ set +e
67+ #TODO: Packaging for this?
68+ bzr export scripts lp:ubuntu-test-cases/server/scripts
69+
70+ # Create custom configuration file and separate per-job log files
71+ UTAH_CONFIG_DIR=$WORKSPACE/config
72+ mkdir -p $UTAH_CONFIG_DIR
73+ UTAH_CONFIG_FILE=$UTAH_CONFIG_DIR/utah.cfg
74+ LOG_DIR=$WORKSPACE/log
75+ mkdir -p $LOG_DIR
76+ chmod a+w $LOG_DIR
77+ UTAH_LOG_FILE=$LOG_DIR/utah-server.log
78+ UTAH_DEBUGLOG_FILE=$LOG_DIR/utah-server-debug.log
79+ UTAH_SSH_LOG_FILE=$LOG_DIR/utah-server-ssh.log
80+ cat <<EOF > $UTAH_CONFIG_FILE
81+ {{
82+ "debuglog": "$UTAH_DEBUGLOG_FILE",
83+ "logfile": "$UTAH_LOG_FILE",
84+ "ssh_logfile": "$UTAH_SSH_LOG_FILE",
85+ "logpath": "$LOG_DIR"
86+ }}
87+ EOF
88+ for file in $UTAH_LOG_FILE $UTAH_DEBUGLOG_FILE $UTAH_SSH_LOG_FILE; do
89+ touch $file
90+ chmod a+w $file
91+ done
92+
93+ sudo -u utah -i UTAH_CONFIG_DIR=$UTAH_CONFIG_DIR $(./scripts/{test}.sh -i /var/cache/utah/iso/{release}-server-ppc64el.iso) -f /var/log/installer -x /etc/utah/ppc-vm-powersj.xml --outputpreseed > $LOG_DIR/utah-server-stdout.log
94+ RETCODE=$?
95+
96+ # Make sure syslog file is readable to add it as artifact
97+ [ -n "$(find $LOG_DIR -name '*.syslog.log')" ] && sudo chmod a+r $LOG_DIR/*.syslog.log
98+
99+ # Move yaml file directory to the workspace since it's not a log file, but a
100+ # results file
101+ [ -n "$(find $LOG_DIR -name '*.yaml')" ] && mv $LOG_DIR/*.yaml $WORKSPACE
102+ if [ "$RETCODE" -gt "100" ] ; then # utah client had an error, probably a test failure
103+ exit $RETCODE
104+ elif [ "$RETCODE" -eq "0" ] ; then
105+ echo "<testsuite><testcase classname=\"utah\" name=\"utah\"></testcase></testsuite>" > $WORKSPACE/utah.xml
106+ else
107+ echo "<testsuite><testcase classname=\"utah\" name=\"utah\"><failure>utah exited with status $RETCODE</failure></testcase></testsuite>" > $WORKSPACE/utah.xml
108+ fi
109+
110+# On the staging server, we can add
111+# ppa:canonical-platform-qa-jenkins/canonical-platform-qa-jenkins-staging
112+# separately, and it will have the same or newer versions.
113+# I'm not adding a job for that so it will never accidentally be deployed.
114+
115+- job-template:
116+ name: 'ubuntu-{dev-release}-server-ppc64el-iso-download'
117+ description: |
118+ This job download the latest daily server iso
119+ Defined in lp:qa-jenkins-jobs
120+
121+ parameters:
122+ - download-sleep
123+ node: 'iso-testing-ppc64el'
124+ triggers: # Check the image manifest and file list for changes every every 15 minutes
125+ - pollurl:
126+ cron: 'H/15 * * * *' # The H allows jenkins to stagger jobs using a hash
127+ polling-node: 'iso-testing-ppc64l'
128+ urls:
129+ - url: 'http://cdimage.ubuntu.com/ubuntu-server/daily/pending/{dev-release}-server-ppc64el.manifest'
130+ check-content:
131+ - simple: true
132+ - url: 'http://cdimage.ubuntu.com/ubuntu-server/daily/pending/{dev-release}-server-ppc64el.list'
133+ check-content:
134+ - simple: true
135+ builders:
136+ - download-iso:
137+ release: '{dev-release}'
138+ variant: 'server'
139+ arch: 'ppc64el'
140+ flavor: 'ubuntu-server'
141+
142+- job-template:
143+ name: 'ubuntu-{lts-release}-server-ppc64el-iso-download'
144+ description: |
145+ This job download the latest daily server iso
146+ Defined in lp:qa-jenkins-jobs
147+
148+ parameters:
149+ - download-sleep
150+ node: 'iso-testing-ppc64el'
151+ triggers: # Check the image manifest and file list for changes every every 15 minutes
152+ - pollurl:
153+ cron: 'H/15 * * * *' # The H allows jenkins to stagger jobs using a hash
154+ polling-node: 'iso-testing-ppc64el'
155+ urls:
156+ - url: 'http://cdimage.ubuntu.com/ubuntu-server/{lts-release}/daily/pending/{lts-release}-server-ppc64el.manifest'
157+ check-content:
158+ - simple: true
159+ - url: 'http://cdimage.ubuntu.com/ubuntu-server/{lts-release}/daily/pending/{lts-release}-server-ppc64el.list'
160+ check-content:
161+ - simple: true
162+ builders:
163+ - download-iso:
164+ release: '{lts-release}'
165+ variant: 'server'
166+ arch: 'ppc64el'
167+ flavor: 'ubuntu-server'
168+
169+- job-template:
170+ name: 'ubuntu-{release}-server-ppc64el-iso-static-validation'
171+ description: |
172+ This job runs static validation on a server iso
173+ Defined in lp:qa-jenkins-jobs
174+
175+ node: 'iso-testing-ppc64el'
176+ triggers:
177+ - reverse: # Trigger after the download job succeeds
178+ jobs: 'ubuntu-{release}-server-ppc64el-iso-download'
179+ result: 'success'
180+ builders:
181+ - validate-iso:
182+ iso: '/data/iso/ubuntu-server/{release}-server-ppc64el.iso'
183+ release: '{release}'
184+ arch: 'ppc64el'
185+ variant: 'server'
186+
187+
188+- job-template:
189+ name: 'ubuntu-{release}-server-ppc64el-smoke-default'
190+ description: |
191+ Run the default iso test on a server image
192+ Defined in lp:qa-jenkins-jobs
193+
194+ node: 'iso-testing-ppc64el'
195+ triggers:
196+ - reverse: # Trigger after static validation succeeds
197+ jobs: 'ubuntu-{release}-server-ppc64el-iso-static-validation'
198+ result: 'success'
199+ builders:
200+ - clear-artifacts:
201+ - echo-media-info:
202+ iso: '/var/cache/utah/iso/{release}-server-ppc64el.iso'
203+ - run-iso-test-ppc64el:
204+ release: '{release}'
205+ variant: 'server'
206+ arch: 'ppc64el'
207+ test: 'default'
208+ - write-parameters-file:
209+ release: '{release}'
210+ variant: 'server'
211+ arch: 'ppc64el'
212+ flavor: 'ubuntu-server'
213+ publishers:
214+ - archive-artifacts
215+ - trigger-mark-pending-current
216+ - mark-junit
217+
218+- job-template:
219+ name: 'ubuntu-{release}-server-ppc64el-smoke-{server-test}'
220+ description: |
221+ Run other server iso tests
222+ Defined in lp:qa-jenkins-jobs
223+
224+ node: 'iso-testing-ppc64el'
225+ triggers:
226+ - reverse: # Trigger after the default test succeeds
227+ jobs: 'ubuntu-{release}-server-ppc64el-smoke-default'
228+ result: 'success'
229+ builders:
230+ - clear-artifacts:
231+ - echo-media-info:
232+ iso: '/var/cache/utah/iso/{release}-server-ppc64el.iso'
233+ - run-iso-test-ppc64el:
234+ release: '{release}'
235+ variant: 'server'
236+ arch: 'ppc64el'
237+ flavor: 'ubuntu-server'
238+ test: '{server-test}'
239+ publishers:
240+ - archive-artifacts
241+ - mark-junit

Subscribers

People subscribed via source and target branches

to all changes: