From: Adam Rozman Date: Tue, 4 Jun 2024 09:43:18 +0000 (+0300) Subject: introduce dynamic periodic fullstack job X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F21375%2F1;p=infra%2Fcicd.git introduce dynamic periodic fullstack job This commit: - Is the first step in refactoring the fullstack jobs - Adds a version of the periodic fullstack job that uses the dynamic jenkins agents instead of the static workers - The new job will take the pipeline script from project-infra instead of nordix dev-tools Signed-off-by: Adam Rozman Change-Id: Ic4ddedde8df4a5d38c7811c09290a791a24c4401 --- diff --git a/jjb/metal3/job_periodic_dynamic_fullstack_building.yml b/jjb/metal3/job_periodic_dynamic_fullstack_building.yml new file mode 100644 index 00000000..cdc74f17 --- /dev/null +++ b/jjb/metal3/job_periodic_dynamic_fullstack_building.yml @@ -0,0 +1,189 @@ +--- +# +# ============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: periodic_dynamic_fullstack_building + name: '{job_prefix}_daily_periodic_dynamic_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: BMOREPO + 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/cluster-api-provider-metal3.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: + - "jenkins/scripts/artifactory/.*" + - "jenkins/scripts/dynamic_worker_workflow/build_ipa.sh" + - "jenkins/scripts/dynamic_worker_workflow/fullstack.sh" + - "jenkins/scripts/dynamic_worker_workflow/fullstack_build_ironic.sh" + - "jenkins/scripts/harbor/.*" + script-path: "jenkins/jobs/dynamic_fullstack_building.pipeline" + lightweight-checkout: False diff --git a/jjb/metal3/projects.yml b/jjb/metal3/projects.yml index 1dda5233..dab6791c 100644 --- a/jjb/metal3/projects.yml +++ b/jjb/metal3/projects.yml @@ -72,6 +72,7 @@ name: "project-infra" jobs: - fullstack_project-infra_building_test + - periodic_dynamic_fullstack_building - project: name: "capm3-prow"