create onosfw CI jobs
[releng.git] / jjb / onosfw / onosfw.yml
1 - project:
2
3     name: onosfw
4
5     jobs:
6         - 'onosfw-verify-{stream}'
7         - 'onosfw-daily-{stream}'
8         - 'onosfw-build-{stream}'
9
10 # only master branch is enabled at the moment to keep no of jobs sane
11     stream:
12         - master:
13             branch: 'master'
14             gs-pathname: ''
15 #        - brahmaputra:
16 #            branch: 'stable/brahmaputra'
17 #            gs-pathname: '/brahmaputra'
18
19     project: 'onosfw'
20
21 ########################
22 # job templates
23 ########################
24 - job-template:
25     name: 'onosfw-verify-{stream}'
26
27     parameters:
28         - project-parameter:
29             project: '{project}'
30         - gerrit-parameter:
31             branch: '{branch}'
32         - 'opnfv-build-defaults'
33
34     scm:
35         - gerrit-trigger-scm:
36             credentials-id: '{ssh-credentials}'
37             refspec: '$GERRIT_REFSPEC'
38             choosing-strategy: 'gerrit'
39
40     triggers:
41         - gerrit:
42             trigger-on:
43                 - patchset-created-event:
44                     exclude-drafts: 'false'
45                     exclude-trivial-rebase: 'false'
46                     exclude-no-code-change: 'false'
47                 - draft-published-event
48                 - comment-added-contains-event:
49                     comment-contains-value: 'recheck'
50                 - comment-added-contains-event:
51                     comment-contains-value: 'reverify'
52             projects:
53               - project-compare-type: 'ANT'
54                 project-pattern: '{project}'
55                 branches:
56                   - branch-compare-type: 'ANT'
57                     branch-pattern: '**/{branch}'
58                 forbidden-file-paths:
59                   - compare-type: ANT
60                     pattern: 'docs/**|.gitignore'
61
62     builders:
63         - 'builder-onosfw-helloworld'
64
65 - job-template:
66     name: 'onosfw-daily-{stream}'
67
68     parameters:
69         - project-parameter:
70             project: '{project}'
71         - 'opnfv-build-defaults'
72
73     scm:
74         - git-scm:
75             credentials-id: '{ssh-credentials}'
76             refspec: ''
77             branch: '{branch}'
78
79     triggers:
80         - timed: '@midnight'
81
82     builders:
83         - trigger-builds:
84           - project: 'onosfw-build-{stream}'
85             git-revision: true
86             block: true
87
88 - job-template:
89     name: 'onosfw-build-{stream}'
90
91     parameters:
92         - project-parameter:
93             project: '{project}'
94         - 'opnfv-build-defaults'
95
96     scm:
97         - git-scm:
98             credentials-id: '{ssh-credentials}'
99             refspec: ''
100             branch: '{branch}'
101
102     builders:
103         - 'builder-onosfw-helloworld'
104
105
106
107 ########################
108 # builder macros
109 ########################
110 - builder:
111     name: 'builder-onosfw-build'
112     builders:
113         - shell: |
114             #!/bin/bash
115             set -o errexit
116             set -o nounset
117             set -o pipefail
118
119             # log info to console
120             echo "Starting the build of $PROJECT. This could take some time..."
121             echo "--------------------------------------------------------"
122             echo
123
124             # create the cache directory if it doesn't exist
125             [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
126             [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
127
128             # set OPNFV_ARTIFACT_VERSION
129             export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
130
131             # start the build
132             cd $WORKSPACE/
133             ./ci/build.sh  $BUILD_DIRECTORY/
134
135             # list the build artifacts
136             ls -al $BUILD_DIRECTORY
137
138             # save information regarding artifact into file
139             (
140                 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
141                 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
142                 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
143                 echo "OPNFV_ARTIFACT_URL=$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
144                 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/onosfw.iso | cut -d' ' -f1)"
145                 echo "OPNFV_BUILD_URL=$BUILD_URL"
146             ) > $BUILD_DIRECTORY/opnfv.properties
147             echo
148             echo "--------------------------------------------------------"
149             echo "Done!"
150
151
152 - builder:
153     name: 'builder-onosfw-upload-artifact'
154     builders:
155         - shell: |
156             #!/bin/bash
157             set -o errexit
158             set -o nounset
159             set -o pipefail
160
161             # log info to console
162             echo "Uploading the $INSTALLER artifact. This could take some time..."
163             echo "--------------------------------------------------------"
164             echo
165
166             # source the opnfv.properties to get ARTIFACT_VERSION
167             source $BUILD_DIRECTORY/opnfv.properties
168
169             # upload artifact and additional files to google storage
170             gsutil cp $BUILD_DIRECTORY/onosfw.iso gs://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
171             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
172             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_BASE/latest.properties > gsutil.latest.log 2>&1
173
174             echo
175             echo "--------------------------------------------------------"
176             echo "Done!"
177             echo "Artifact is available as http://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
178
179
180 - builder:
181     name: 'builder-onosfw-helloworld'
182     builders:
183         - shell: |
184             #!/bin/bash
185             echo "Hello world!"