| --- |
| # |
| # ============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_building_test |
| name: '{job_prefix}_fullstack_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: '.*?/test-metal3-fullstack.*?' |
| 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: |
| - "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_fullstack_build.sh" |
| script-path: "ci/jobs/fullstack_building.pipeline" |
| lightweight-checkout: False |