From: Rozzii Date: Tue, 4 Oct 2022 08:08:51 +0000 (+0300) Subject: introduce the metal3 fullstack building tests X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=cb6a92d7aa6b5b9eb2ae3788786041de79b743c2;p=infra%2Fcicd.git introduce the metal3 fullstack building tests The fullstack jobs will replace the ipa-ironc test jobs. Change-Id: Ia4fda73fe5259bf07901f99e640db3e523635d8a --- diff --git a/jjb/metal3/job_ipa_image_building_test.yml b/jjb/metal3/job_fullstack_building_test.yml similarity index 56% rename from jjb/metal3/job_ipa_image_building_test.yml rename to jjb/metal3/job_fullstack_building_test.yml index 231d2273..81a22df4 100644 --- a/jjb/metal3/job_ipa_image_building_test.yml +++ b/jjb/metal3/job_fullstack_building_test.yml @@ -20,13 +20,13 @@ # Description: # ============ -# This file contains job template definition for for nordix IPA image building test. -# This job can be triggered on PRs manually. It creates a pipeline job. +# This file contains job template definition for building the full stack of Metal3 +# from source. This job can be triggered on PRs manually. It creates a pipeline job. # The pipeline scripts are maintained in Nordix/metal3-dev-tools repository. - job-template: - id: metal3_ipa_and_ironic_image_building_test - name: '{job_prefix}_openstack_ipa_and_ironic_image_building' + id: fullstack_building_test + name: '{job_prefix}_fullstack_building_test' description: "IPA and Ironic image building test." project-type: pipeline defaults: global @@ -40,47 +40,115 @@ - string: name: IRONIC_IMAGE_REPO_COMMIT default: 'HEAD' - description: 'Ironic Image repository commit hash to build' + description: 'Metal3 Ironic image Git repository commit hash to build' - string: name: IRONIC_IMAGE_BRANCH default: 'main' - description: 'Ironic image repository branch to build' + description: 'Metal3 Ironic image Git repository branch to build' - string: name: IRONIC_INSPECTOR_REFSPEC default: '' description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22' - string: - name: IPA_COMMIT + name: IPA_REPO + default: 'https://opendev.org/openstack/ironic-python-agent.git' + description: "The default Git repository of IPA" + - string: + name: IPA_REF default: 'HEAD' - description: 'Ironic Python Agent repository commit hash to build' + description: 'Ironic Python Agent repository reference to use for the build. Example: refs/changes/84/800084/22' - string: name: IPA_BRANCH default: 'master' description: 'Ironic Python Agent repository branch to build' - string: - name: BMO_COMMIT - default: 'HEAD' - description: 'Bare Metal Operator repository commit hash to build' - - string: - name: BMO_BRANCH - default: 'main' - description: 'Bare Metal Operator repository branch to build' + name: IPA_BUILDER_REPO + default: 'https://opendev.org/openstack/ironic-python-agent-builder.git' + description: 'Ironic Python Agent builder Git repository' - string: name: IPA_BUILDER_BRANCH default: 'master' - description: 'Ironic Python Agent builder repository tool branch' + description: 'Ironic Python Agent builder Git repository tool branch' - string: name: IPA_BUILDER_COMMIT default: 'HEAD' - description: 'Ironic Python Agent builder repository tool commit' + description: 'Ironic Python Agent builder Git repository tool commit' + - string: + name: METAL3_DEV_ENV_REPO + default: 'https://github.com/metal3-io/metal3-dev-env.git' + description: 'The Git repository of metal3-dev-env' - string: name: METAL3_DEV_ENV_BRANCH default: 'main' - description: 'Metal3 dev env repository branch' + description: 'Metal3 dev-env Git repository branch' - string: name: METAL3_DEV_ENV_COMMIT default: 'HEAD' - description: 'Metal3 dev env repository commit' + description: 'Metal3 dev-env Git repository commit' + - bool: + name: BUILD_BMO_LOCALLY + default: true + description: 'Enable or disable BMO local building (enabled by default)' + - bool: + name: BUILD_CAPM3_LOCALLY + default: true + description: 'Enable or disable CAPM3 local building (enabled by default)' + - bool: + name: BUILD_IPAM_LOCALLY + default: true + description: 'Enable or disable IPAM local building (enabled by default)' + - bool: + name: BUILD_CAPI_LOCALLY + default: false + description: 'Enable or disable CAPI local building (disabled by default)' + - string: + name: BMO_REPO + default: 'https://github.com/metal3-io/baremetal-operator.git' + description: 'The Git reposiotry used to build BMO' + - string: + name: BMO_BRANCH + default: 'main' + description: 'Bare Metal Operator Git repository branch to build' + - string: + name: BMO_COMMIT + default: 'HEAD' + description: 'Cluster API provider Metal3 Git repository commit hash to build' + - string: + name: CAPM3_REPO + default: 'https://github.com/metal3-io/baremetal-operator.git' + description: 'The Git reposiotry used to build Cluster API provider Metal3' + - string: + name: CAPM3_BRANCH + default: 'main' + description: 'Cluster API provider Metal3 Git repository branch to build' + - string: + name: CAPM3_COMMIT + default: 'HEAD' + description: 'Cluster API provider Metal3 Git repository commit hash to build' + - string: + name: IPAM_REPO + default: 'https://github.com/metal3-io/ip-address-manager.git' + description: 'IP Address Manager Git repository branch to build' + - string: + name: IPAM_BRANCH + default: 'main' + description: 'IP Address Manager Git repository branch to build' + - string: + name: IPAM_COMMIT + default: 'HEAD' + description: 'IP Address Manager Git repository commit hash to build' + - string: + name: CAPI_REPO + default: 'https://github.com/kubernetes-sigs/cluster-api.git' + description: 'Cluster API Git repository branch to build' + - string: + name: CAPI_BRANCH + default: 'main' + description: 'Cluster API Git repository branch to build' + - string: + name: CAPI_COMMIT + default: 'HEAD' + description: 'Cluster API Git repository commit hash to build' - string: name: PROJECT_REPO_ORG default: '{repo[org]}' diff --git a/jjb/metal3/job_main_fullstack_building.yml b/jjb/metal3/job_main_fullstack_building.yml new file mode 100644 index 00000000..b5d06e00 --- /dev/null +++ b/jjb/metal3/job_main_fullstack_building.yml @@ -0,0 +1,188 @@ +--- +# +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +# Description: +# ============ +# This file contains job template definition for building the whole Metal3 stack +# from source. This job can be triggered manually. It creates a pipeline job. +# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository. + +- job-template: + id: main_fullstack_building + name: '{job_prefix}_daily_main_fullstack_building' + description: "Build and test a Metal3 cluster stack from source." + project-type: pipeline + defaults: global + disabled: False + concurrent: True + parameters: + - string: + name: IRONIC_REFSPEC + default: '' + description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22' + - string: + name: IRONIC_IMAGE_REPO_COMMIT + default: 'HEAD' + description: 'Metal3 Ironic image Git repository commit hash to build' + - string: + name: IRONIC_IMAGE_BRANCH + default: 'main' + description: 'Metal3 Ironic image Git repository branch to build' + - string: + name: IRONIC_INSPECTOR_REFSPEC + default: '' + description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22' + - string: + name: IPA_REPO + default: 'https://opendev.org/openstack/ironic-python-agent.git' + description: "The default Git repository of IPA" + - string: + name: IPA_REF + default: 'HEAD' + description: 'Ironic Python Agent repository reference to use for the build. Example: refs/changes/84/800084/22' + - string: + name: IPA_BRANCH + default: 'master' + description: 'Ironic Python Agent repository branch to build' + - string: + name: IPA_BUILDER_REPO + default: 'https://opendev.org/openstack/ironic-python-agent-builder.git' + description: 'Ironic Python Agent builder Git repository' + - string: + name: IPA_BUILDER_BRANCH + default: 'master' + description: 'Ironic Python Agent builder Git repository tool branch' + - string: + name: IPA_BUILDER_COMMIT + default: 'HEAD' + description: 'Ironic Python Agent builder Git repository tool commit' + - string: + name: METAL3_DEV_ENV_REPO + default: 'https://github.com/metal3-io/metal3-dev-env.git' + description: 'The Git repository of metal3-dev-env' + - string: + name: METAL3_DEV_ENV_BRANCH + default: 'main' + description: 'Metal3 dev-env Git repository branch' + - string: + name: METAL3_DEV_ENV_COMMIT + default: 'HEAD' + description: 'Metal3 dev-env Git repository commit' + - bool: + name: BUILD_BMO_LOCALLY + default: true + description: 'Enable or disable BMO local building (enabled by default)' + - bool: + name: BUILD_CAPM3_LOCALLY + default: true + description: 'Enable or disable CAPM3 local building (enabled by default)' + - bool: + name: BUILD_IPAM_LOCALLY + default: true + description: 'Enable or disable IPAM local building (enabled by default)' + - bool: + name: BUILD_CAPI_LOCALLY + default: false + description: 'Enable or disable CAPI local building (disabled by default)' + - string: + name: BMO_REPO + default: 'https://github.com/metal3-io/baremetal-operator.git' + description: 'The Git reposiotry used to build BMO' + - string: + name: BMO_BRANCH + default: 'main' + description: 'Bare Metal Operator Git repository branch to build' + - string: + name: BMO_COMMIT + default: 'HEAD' + description: 'Cluster API provider Metal3 Git repository commit hash to build' + - string: + name: CAPM3_REPO + default: 'https://github.com/metal3-io/baremetal-operator.git' + description: 'The Git reposiotry used to build Cluster API provider Metal3' + - string: + name: CAPM3_BRANCH + default: 'main' + description: 'Cluster API provider Metal3 Git repository branch to build' + - string: + name: CAPM3_COMMIT + default: 'HEAD' + description: 'Cluster API provider Metal3 Git repository commit hash to build' + - string: + name: IPAM_REPO + default: 'https://github.com/metal3-io/ip-address-manager.git' + description: 'IP Address Manager Git repository branch to build' + - string: + name: IPAM_BRANCH + default: 'main' + description: 'IP Address Manager Git repository branch to build' + - string: + name: IPAM_COMMIT + default: 'HEAD' + description: 'IP Address Manager Git repository commit hash to build' + - string: + name: CAPI_REPO + default: 'https://github.com/kubernetes-sigs/cluster-api.git' + description: 'Cluster API Git repository branch to build' + - string: + name: CAPI_BRANCH + default: 'main' + description: 'Cluster API Git repository branch to build' + - string: + name: CAPI_COMMIT + default: 'HEAD' + description: 'Cluster API Git repository commit hash to build' + - string: + name: STAGING + default: 'true' + description: 'Configures IPA builder upload mode (staging/review)' + + properties: + - github: + url: https://github.com/Nordix/ironic-python-agent.git + - build-discarder: + days-to-keep: 30 + num-to-keep: 300 + artifact-days-to-keep: -1 + artifact-num-to-keep: -1 + + triggers: + - timed: "0 4 * * 1,3,5,7" + - github + + pipeline-scm: + scm: + - git: + url: "{ci_github_repo}" + credentials-id: "{ci_github_jenkins_credentials_id}" + branches: + - 'main' + name: 'origin' + refspec: '+refs/heads/*:refs/remotes/origin/*' + wipe-workspace: True + honor-refspec: True + shallow-clone: False + included-regions: + - "ci/scripts/image_scripts/ipa_builder_elements/.*" + - "ci/scripts/image_scripts/build_ipa.sh" + - "ci/scripts/image_scripts/run_build_ironic.sh" + - "ci/scripts/image_scripts/start_centos_ipa_ironic_build.sh" + script-path: "ci/jobs/openstack_ipa_and_ironic_image_building.pipeline" + lightweight-checkout: False diff --git a/jjb/metal3/job_main_ipa_image_building.yml b/jjb/metal3/job_main_ipa_image_building.yml deleted file mode 100644 index f468257f..00000000 --- a/jjb/metal3/job_main_ipa_image_building.yml +++ /dev/null @@ -1,120 +0,0 @@ ---- -# -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -# Description: -# ============ -# This file contains job template definition for nordix IPA image building. -# This job can be triggered manually. It creates a pipeline job. -# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository. - -- job-template: - id: main_openstack_ipa_and_ironic_image_building - name: '{job_prefix}_daily_main_openstack_ipa_and_ironic_image_building' - description: "IPA and Ironic image building" - project-type: pipeline - defaults: global - disabled: False - concurrent: True - parameters: - - string: - name: IRONIC_REFSPEC - default: '' - description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22' - - string: - name: IRONIC_IMAGE_REPO_COMMIT - default: 'HEAD' - description: 'Ironic Image repository commit hash to build' - - string: - name: IRONIC_IMAGE_BRANCH - default: 'main' - description: 'Ironic image repository branch to build' - - string: - name: IRONIC_INSPECTOR_REFSPEC - default: '' - description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22' - - string: - name: IPA_COMMIT - default: 'HEAD' - description: 'Ironic Python Agent repository commit hash to build' - - string: - name: IPA_BRANCH - default: 'master' - description: 'Ironic Python Agent repository branch to build' - - string: - name: BMO_COMMIT - default: 'HEAD' - description: 'Bare Metal Operator repository commit hash to build' - - string: - name: BMO_BRANCH - default: 'main' - description: 'Bare Metal Operator repository branch to build' - - string: - name: IPA_BUILDER_BRANCH - default: 'master' - description: 'Ironic Python Agent builder repository tool branch' - - string: - name: IPA_BUILDER_COMMIT - default: 'HEAD' - description: 'Ironic Python Agent builder repository tool commit' - - string: - name: METAL3_DEV_ENV_BRANCH - default: 'main' - description: 'Metal3 dev env repository branch' - - string: - name: METAL3_DEV_ENV_COMMIT - default: 'HEAD' - description: 'Metal3 dev env repository commit' - - string: - name: STAGING - default: 'true' - description: 'Configures IPA builder upload mode (staging/review)' - - properties: - - github: - url: https://github.com/Nordix/ironic-python-agent.git - - build-discarder: - days-to-keep: 30 - num-to-keep: 300 - artifact-days-to-keep: -1 - artifact-num-to-keep: -1 - - triggers: - - timed: "0 4 * * 1,3,5,7" - - github - - pipeline-scm: - scm: - - git: - url: "{ci_github_repo}" - credentials-id: "{ci_github_jenkins_credentials_id}" - branches: - - 'main' - name: 'origin' - refspec: '+refs/heads/*:refs/remotes/origin/*' - wipe-workspace: True - honor-refspec: True - shallow-clone: False - included-regions: - - "ci/scripts/image_scripts/ipa_builder_elements/.*" - - "ci/scripts/image_scripts/build_ipa.sh" - - "ci/scripts/image_scripts/run_build_ironic.sh" - - "ci/scripts/image_scripts/start_centos_ipa_ironic_build.sh" - script-path: "ci/jobs/openstack_ipa_and_ironic_image_building.pipeline" - lightweight-checkout: False diff --git a/jjb/metal3/projects.yml b/jjb/metal3/projects.yml index 4bc842f0..d54960bd 100644 --- a/jjb/metal3/projects.yml +++ b/jjb/metal3/projects.yml @@ -37,8 +37,8 @@ - docker_image_building - update_nordix_repos - openstack_node_image_building - - main_openstack_ipa_and_ironic_image_building - - metal3_ipa_and_ironic_image_building_test + - main_fullstack_building + - fullstack_building_test - metal3_dev_tools_integration_test: image_os: - ubuntu