From: Mohammed Boukhalfa Date: Fri, 2 Feb 2024 16:06:17 +0000 (+0200) Subject: Add fullstack project-infra jjb X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=1502a7f445b9d6213cb25abda9777bf4d9610ed4;p=infra%2Fcicd.git Add fullstack project-infra jjb Change-Id: I9035750f746aef664ec4adc35bfd439edfcf313f --- diff --git a/jjb/metal3/job_fullstack_project-infra_building_test.yml b/jjb/metal3/job_fullstack_project-infra_building_test.yml new file mode 100644 index 000000000..b5aa3bc89 --- /dev/null +++ b/jjb/metal3/job_fullstack_project-infra_building_test.yml @@ -0,0 +1,225 @@ +--- +# +# ============LICENSE_START======================================================= +# Copyright (C) 2021 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 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: fullstack_project-infra_building_test + name: '{job_prefix}_fullstack_project-infra_building_test' + 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: PROJECT_REPO_ORG + default: '{repo[org]}' + description: 'Project github repo org name' + - string: + name: PROJECT_REPO_NAME + default: '{repo[name]}' + description: 'Project github repo name' + - string: + name: ghprbActualCommit + default: 'main' + description: 'CI Repo branch for triggering manual build' + - string: + name: ghprbAuthorRepoGitUrl + default: 'https://github.com/{repo[org]}/{repo[name]}.git' + description: 'CI Repo URL for triggering manual build' + - string: + name: ghprbTargetBranch + default: 'main' + description: 'Target branch of the PR' + - string: + name: STAGING + default: 'false' + description: 'Configures IPA builder upload mode (staging/review)' + + properties: + - build-discarder: + days-to-keep: 30 + num-to-keep: 300 + artifact-days-to-keep: -1 + artifact-num-to-keep: -1 + - github: + url: https://github.com/{repo[org]}/{repo[name]} + + triggers: + - github-pull-request: + admin-list: + - '{ci_github_admin_user}' + org-list: "{ci_github_whitelist_org}" + cron: 'H/5 * * * *' + auth-id: "{ci_ghprb_auth_id}" + trigger-phrase: '((.|\n)*\s)?/test-metal3-fullstack(\s(.|\n)*)?' + skip-build-phrase: '/skip-test' + only-trigger-phrase: True + github-hooks: True + permit-all: False + auto-close-on-fail: False + allow-whitelist-orgs-as-admins: True + white-list-target-branches: + - 'main' + status-context: "test-metal3-fullstack" + success-status: "Passed" + failure-status: "Failed" + error-status: "Error" + cancel-builds-on-update: True + pipeline-scm: + scm: + - git: + url: "{ci_github_repo}" + credentials-id: "{ci_github_jenkins_credentials_id}" + branches: + - '{branch|main}' + name: 'origin' + refspec: '+refs/heads/*:refs/remotes/origin/*' + wipe-workspace: True + honor-refspec: True + shallow-clone: False + included-regions: + - "jenkins/scripts/ipa_builder_elements/.*" + - "jenkins/scripts/build_ipa.sh" + - "jenkins/scripts/run_build_ironic.sh" + - "jenkins/scripts/start_centos_fullstack_build.sh" + script-path: "jenkins/jobs/fullstack_building.pipeline" + lightweight-checkout: False diff --git a/jjb/metal3/projects.yml b/jjb/metal3/projects.yml index 1c2f0452f..e68c9702b 100644 --- a/jjb/metal3/projects.yml +++ b/jjb/metal3/projects.yml @@ -241,6 +241,14 @@ jobs: - main_clean +- project: + name: 'project_infra' + repo: + org: "metal3-io" + name: "project-infra" + jobs: + - fullstack_project-infra_building_test + - project: name: "capm3" org: metal3-io