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