blob: cdc74f171ffa31c320766bc305e9b8a2b1b03ba6 [file] [log] [blame]
Adam Rozman702d7242024-06-04 12:43:18 +03001---
2#
3# ============LICENSE_START=======================================================
4# Copyright (C) 2019 Nordix Foundation.
5# ================================================================================
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# SPDX-License-Identifier: Apache-2.0
19# ============LICENSE_END=========================================================
20
21# Description:
22# ============
23# This file contains job template definition for building the whole Metal3 stack
24# from source. This job can be triggered manually. It creates a pipeline job.
25# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
26
27- job-template:
28 id: periodic_dynamic_fullstack_building
29 name: '{job_prefix}_daily_periodic_dynamic_fullstack_building'
30 description: "Build and test a Metal3 cluster stack from source."
31 project-type: pipeline
32 defaults: global
33 disabled: False
34 concurrent: True
35 parameters:
36 - string:
37 name: IRONIC_REFSPEC
38 default: ''
39 description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
40 - string:
41 name: IRONIC_IMAGE_REPO_COMMIT
42 default: 'HEAD'
43 description: 'Metal3 Ironic image Git repository commit hash to build'
44 - string:
45 name: IRONIC_IMAGE_BRANCH
46 default: 'main'
47 description: 'Metal3 Ironic image Git repository branch to build'
48 - string:
49 name: IRONIC_INSPECTOR_REFSPEC
50 default: ''
51 description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
52 - string:
53 name: IPA_REPO
54 default: 'https://opendev.org/openstack/ironic-python-agent.git'
55 description: "The default Git repository of IPA"
56 - string:
57 name: IPA_REF
58 default: 'HEAD'
59 description: 'Ironic Python Agent repository reference to use for the build. Example: refs/changes/84/800084/22'
60 - string:
61 name: IPA_BRANCH
62 default: 'master'
63 description: 'Ironic Python Agent repository branch to build'
64 - string:
65 name: IPA_BUILDER_REPO
66 default: 'https://opendev.org/openstack/ironic-python-agent-builder.git'
67 description: 'Ironic Python Agent builder Git repository'
68 - string:
69 name: IPA_BUILDER_BRANCH
70 default: 'master'
71 description: 'Ironic Python Agent builder Git repository tool branch'
72 - string:
73 name: IPA_BUILDER_COMMIT
74 default: 'HEAD'
75 description: 'Ironic Python Agent builder Git repository tool commit'
76 - string:
77 name: METAL3_DEV_ENV_REPO
78 default: 'https://github.com/metal3-io/metal3-dev-env.git'
79 description: 'The Git repository of metal3-dev-env'
80 - string:
81 name: METAL3_DEV_ENV_BRANCH
82 default: 'main'
83 description: 'Metal3 dev-env Git repository branch'
84 - string:
85 name: METAL3_DEV_ENV_COMMIT
86 default: 'HEAD'
87 description: 'Metal3 dev-env Git repository commit'
88 - bool:
89 name: BUILD_BMO_LOCALLY
90 default: true
91 description: 'Enable or disable BMO local building (enabled by default)'
92 - bool:
93 name: BUILD_CAPM3_LOCALLY
94 default: true
95 description: 'Enable or disable CAPM3 local building (enabled by default)'
96 - bool:
97 name: BUILD_IPAM_LOCALLY
98 default: true
99 description: 'Enable or disable IPAM local building (enabled by default)'
100 - bool:
101 name: BUILD_CAPI_LOCALLY
102 default: false
103 description: 'Enable or disable CAPI local building (disabled by default)'
104 - string:
105 name: BMOREPO
106 default: 'https://github.com/metal3-io/baremetal-operator.git'
107 description: 'The Git reposiotry used to build BMO'
108 - string:
109 name: BMO_BRANCH
110 default: 'main'
111 description: 'Bare Metal Operator Git repository branch to build'
112 - string:
113 name: BMO_COMMIT
114 default: 'HEAD'
115 description: 'Cluster API provider Metal3 Git repository commit hash to build'
116 - string:
117 name: CAPM3_REPO
118 default: 'https://github.com/metal3-io/cluster-api-provider-metal3.git'
119 description: 'The Git reposiotry used to build Cluster API provider Metal3'
120 - string:
121 name: CAPM3_BRANCH
122 default: 'main'
123 description: 'Cluster API provider Metal3 Git repository branch to build'
124 - string:
125 name: CAPM3_COMMIT
126 default: 'HEAD'
127 description: 'Cluster API provider Metal3 Git repository commit hash to build'
128 - string:
129 name: IPAM_REPO
130 default: 'https://github.com/metal3-io/ip-address-manager.git'
131 description: 'IP Address Manager Git repository branch to build'
132 - string:
133 name: IPAM_BRANCH
134 default: 'main'
135 description: 'IP Address Manager Git repository branch to build'
136 - string:
137 name: IPAM_COMMIT
138 default: 'HEAD'
139 description: 'IP Address Manager Git repository commit hash to build'
140 - string:
141 name: CAPI_REPO
142 default: 'https://github.com/kubernetes-sigs/cluster-api.git'
143 description: 'Cluster API Git repository branch to build'
144 - string:
145 name: CAPI_BRANCH
146 default: 'main'
147 description: 'Cluster API Git repository branch to build'
148 - string:
149 name: CAPI_COMMIT
150 default: 'HEAD'
151 description: 'Cluster API Git repository commit hash to build'
152 - string:
153 name: STAGING
154 default: 'true'
155 description: 'Configures IPA builder upload mode (staging/review)'
156
157 properties:
158 - github:
159 url: https://github.com/Nordix/ironic-python-agent.git
160 - build-discarder:
161 days-to-keep: 30
162 num-to-keep: 300
163 artifact-days-to-keep: -1
164 artifact-num-to-keep: -1
165
166 triggers:
167 - timed: "0 4 * * 1,3,5,7"
168 - github
169
170 pipeline-scm:
171 scm:
172 - git:
173 url: "{ci_github_repo}"
174 credentials-id: "{ci_github_jenkins_credentials_id}"
175 branches:
176 - 'main'
177 name: 'origin'
178 refspec: '+refs/heads/*:refs/remotes/origin/*'
179 wipe-workspace: True
180 honor-refspec: True
181 shallow-clone: False
182 included-regions:
183 - "jenkins/scripts/artifactory/.*"
184 - "jenkins/scripts/dynamic_worker_workflow/build_ipa.sh"
185 - "jenkins/scripts/dynamic_worker_workflow/fullstack.sh"
186 - "jenkins/scripts/dynamic_worker_workflow/fullstack_build_ironic.sh"
187 - "jenkins/scripts/harbor/.*"
188 script-path: "jenkins/jobs/dynamic_fullstack_building.pipeline"
189 lightweight-checkout: False