| --- |
| # |
| # ============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 Cluster API Provider Metal3 (CAPM3) integration tests. |
| # This job can be triggered manually or through a Github pull request. It creates a |
| # pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository. |
| |
| - job-template: |
| name: '{job_prefix}_{proj}_{capm3_target_branch}_integration_test_{image_os}{name_postfix}' |
| description: "CAPM3 {capm3_version} integration tests for {org}/{repo} on {image_os} with ironic installed from {ironic_install_type}." |
| id: 'integration_tests' |
| project-type: pipeline |
| defaults: integration-default-values |
| disabled: False |
| concurrent: True |
| parameters: |
| - string: |
| name: PROJECT_REPO_ORG |
| default: '{org}' |
| description: 'Project github repo org name' |
| - string: |
| name: PROJECT_REPO_NAME |
| default: '{repo}' |
| 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/{org}/{repo}.git' |
| description: 'CI Repo URL for triggering manual build' |
| - string: |
| name: ghprbTargetBranch |
| default: 'main' |
| description: 'Target branch of the PR' |
| - string: |
| name: capm3_release_branch |
| default: '{capm3_release_branch}' |
| description: 'The target branch of CAPM3 to be used for this test' |
| - string: |
| name: bmo_release_branch |
| default: '{bmo_release_branch}' |
| description: 'The target branch of BMO to be used for this test' |
| - string: |
| name: IMAGE_OS |
| default: '{image_os}' |
| description: 'Distribution to use for the target host as well as source and target cluster. Can be ubuntu or centos' |
| - string: |
| name: CAPI_VERSION |
| default: '{capi_version}' |
| description: 'Cluster API version.' |
| - string: |
| name: CAPM3_VERSION |
| default: '{capm3_version}' |
| description: 'Cluster API provider Metal3 version.' |
| - string: |
| name: TARGET_NODE_MEMORY |
| default: 4096 |
| description: 'RAM size of the target host.' |
| - string: |
| name: IRONIC_INSTALL_TYPE |
| default: '{ironic_install_type}' |
| description: 'Sets the installation type of ironic during ironic-image build of the BMO deployment' |
| - string: |
| name: IRONIC_USE_MARIADB |
| default: '{ironic_use_mariadb}' |
| description: 'If Ironic should use MariaDB or not.' |
| - string: |
| name: BUILD_MARIADB_IMAGE_LOCALLY |
| default: '{build_mariadb_image_locally}' |
| 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/{org}/{repo} |
| |
| 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-{image_os}-integration-{capm3_target_branch}{trigger_postfix}(\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: "{target_branches}" |
| status-context: "test-{image_os}-integration-{capm3_target_branch}" |
| 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 |
| script-path: "{ci_github_pipeline}" |
| lightweight-checkout: False |