# and the default GINKGO_FOCUS is empty (all tests required in BMO PRs)
type: pull
GINKGO_FOCUS: " "
+ # Default BMO branch to trigger the test in is "main"
+ BRANCH_NAME: "main"
# These jobs are triggered by prow for PRs (empty trigger here) or by timer (see below)
triggers: []
# Run at 03:45 (UTC) every day
- timed: "45 3 * * *"
+ # Pediodic jobs for release branches
+ - "{job_prefix}-{name}-e2e-test-{type}":
+ type: periodic-release-0.6
+ BRANCH_NAME: "release-0.6"
+ triggers:
+ # Run at 01:45 (UTC) every odd day
+ - timed: "45 1 1-31/2 * *"
+ - "{job_prefix}-{name}-e2e-test-{type}":
+ type: periodic-release-0.5
+ BRANCH_NAME: "release-0.5"
+ triggers:
+ # Run at 01:45 (UTC) every even day
+ - timed: "45 1 2-30/2 * *"
+
- job-template:
name: "{job_prefix}-{name}-e2e-test-{type}"
project-type: pipeline
description: 'Project github repo name'
- string:
name: PULL_BASE_REF
- default: 'main'
+ default: '{BRANCH_NAME}'
description: 'Ref name of the base branch'
- string:
name: PULL_PULL_SHA
+ default: '{BRANCH_NAME}' # Default set to branch name. This is needed when running periodic jobs
description: 'Pull request head SHA'
# End of Prow parameters
- string:
- metal3-io
- nordix-metal3
ci_github_repo: 'https://github.com/metal3-io/project-infra.git'
+ ci_github_jenkins_credentials_id: 'metal3-jenkins-github-username-token'
ci_github_pipeline: 'jenkins/jobs/integration_tests.pipeline'
e2e_feature_test_parallel_pipeline: 'jenkins/jobs/parallel_e2e_features_test.pipeline'
- e2e_feature_test_pipeline: 'jenkins/jobs/capm3-e2e-tests.pipeline'
- ci_github_jenkins_credentials_id: 'metal3-jenkins-github-username-token'
+ e2e_tests_pipeline: 'jenkins/jobs/capm3-e2e-tests.pipeline'
dev_env_integration_test_pipeline: 'jenkins/jobs/dev_env_integration_tests.pipeline'
+ image_building_pipeline: 'jenkins/jobs/image_building.pipeline'
# NOTE: auth-id is taken from Jenkins Global Configuration (NOT THE CREDENTIAL STORE!)
# by clicking Auth ID button for the desired GitHub Server API URL
# Please ensure you are looking at GitHub Pull Request Builder part
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 2
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "basic"
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
- project:
name: IMAGE_OS
default: "ubuntu"
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: 'v1beta1'
+ description: 'Cluster API version. E.g. v1beta1.'
+ - string:
+ name: CAPM3_VERSION
+ default: 'v1beta1'
+ description: 'Cluster API provider Metal3 version. E.g. v1beta1.'
- string:
name: capm3_release_branch
default: '{capm3_release_branch}'
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 5
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "clusterctl-upgrade"
description: 'Select the e2e upgrade test'
+
properties:
- build-discarder:
days-to-keep: 30
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "{e2e_feature_test_pipeline}"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 4
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "features"
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 2
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "integration"
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
- job-template:
id: capm3_e2e_k8s_upgrade_tests_prow
name: '{job_prefix}-e2e-{k8s_versions}-upgrade-test-{capm3_target_branch}'
- description: "CAPM3 e2e k8s upgrade tests for on {image_os}."
+ description: "CAPM3 e2e k8s upgrade tests for on ubuntu."
project-type: pipeline
defaults: global
disabled: False
# End of Prow parameters
- string:
name: IMAGE_OS
- default: '{image_os}'
+ default: "ubuntu"
description: 'Distribution to use for the target host as well as source and target cluster. Can be ubuntu or centos'
- string:
name: capm3_release_branch
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 4
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "k8s-upgrade"
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
name: IMAGE_OS
default: "ubuntu"
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: 'v1beta1'
+ description: 'Cluster API version. E.g. v1beta1.'
+ - string:
+ name: CAPM3_VERSION
+ default: 'v1beta1'
+ description: 'Cluster API provider Metal3 version. E.g. v1beta1.'
- string:
name: capm3_release_branch
default: '{capm3_release_branch}'
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 5
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "clusterctl-upgrade"
artifact-num-to-keep: -1
triggers:
- - timed: "H 1 * * *"
+ - timed: '{schedule}'
pipeline-scm:
scm:
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "{e2e_feature_test_pipeline}"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 4
+ description: 'Number of libvirt VMs.'
- bool:
name: EPHEMERAL_TEST
default: True
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
name: NUM_NODES
default: 4
description: 'Number of libvirt VMs.'
- - string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
- string:
name: GINKGO_FOCUS
default: "features"
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 2
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "integration"
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
# End of Prow parameters
- 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'
+ default: "ubuntu"
+ description: 'Distribution to use for the target host as well as source and target cluster. Default is ubuntu'
- string:
name: capm3_release_branch
default: '{capm3_release_branch}'
default: 4096
description: 'RAM size of the target host.'
- string:
- name: TESTS_FOR
- default: "e2e_tests"
- description: 'Tests using the e2e framework.'
+ name: NUM_NODES
+ default: 4
+ description: 'Number of libvirt VMs.'
- string:
name: GINKGO_FOCUS
default: "k8s-upgrade"
artifact-num-to-keep: -1
triggers:
- - timed: "H 18 * * *"
+ - timed: "{schedule}"
pipeline-scm:
scm:
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: "jenkins/jobs/prow_integration_tests.pipeline"
+ script-path: "{e2e_tests_pipeline}"
lightweight-checkout: False
+++ /dev/null
----
-#
-# ============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) main 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:
- id: capm3_periodic_integration_tests
- name: '{job_prefix}_periodic_{capm3_target_branch}_integration_test_{image_os}'
- description: "CAPM3 {capm3_version} integration tests for {org}/{repo} on {image_os}."
- project-type: pipeline
- defaults: global
- 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: 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: 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: 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.'
-
- properties:
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 300
- artifact-days-to-keep: -1
- artifact-num-to-keep: -1
-
- triggers:
- - timed: "{schedule}"
-
- 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
- job-template:
id: ci_image_building
- name: '{job_prefix}_ci_image_building'
+ name: '{job_prefix}_periodic_ci_image_building'
description: "Builder job for CI images for Metal3 CI"
project-type: pipeline
defaults: global
disabled: False
concurrent: True
+ parameters:
+ - string:
+ name: IMAGE_TYPE
+ default: 'ci'
+ description: 'Specifies the type of image being built in pipeline'
properties:
- build-discarder:
artifact-num-to-keep: -1
triggers:
- - timed: "0 5 */5 * *"
+ - timed: "0 6 */14 * *"
pipeline-scm:
scm:
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- script-path: 'jenkins/jobs/{id}.pipeline'
+ script-path: "{image_building_pipeline}"
lightweight-checkout: False
- job-template:
id: dev_env_integration_tests_prow
- name: 'dev-env-integration-test-{image_os}-{capm3_target_branch}{name_postfix}'
+ name: '{job_prefix}-dev-env-integration-test-{image_os}-{capm3_target_branch}{name_postfix}'
description: "CAPM3 {capm3_version} integration tests on {image_os} with ironic installed from {ironic_install_type}."
project-type: pipeline
defaults: integration-default-values
description: 'Project github repo name'
- string:
name: PULL_BASE_REF
- default: '{capm3_release_branch}'
+ default: "main"
description: 'Ref name of the base branch'
- string:
name: PULL_PULL_SHA
- default: '{capm3_release_branch}'
+ default: "main"
description: 'Pull request head SHA'
- string:
name: PULL_NUMBER
- job-template:
id: dev_env_periodic_integration_tests_prow
- name: 'dev-env-periodic-integration-test-{image_os}-{capm3_target_branch}{name_postfix}'
+ name: '{job_prefix}-periodic-dev-env-integration-test-{image_os}-{capm3_target_branch}{name_postfix}'
description: "CAPM3 {capm3_version} integration tests on {image_os} with ironic installed from {ironic_install_type}."
project-type: pipeline
defaults: integration-default-values
description: 'Project github repo name'
- string:
name: PULL_BASE_REF
- default: '{capm3_release_branch}'
+ default: "main"
description: 'Ref name of the base branch'
- string:
name: PULL_PULL_SHA
- default: '{capm3_release_branch}'
+ default: "main"
description: 'Pull request head SHA'
- string:
name: PULL_NUMBER
+++ /dev/null
----
-#
-# ============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: '.*?/test-{image_os}-integration-{capm3_target_branch}{trigger_postfix}.*?'
- 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
+++ /dev/null
----
-#
-# ============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)
-# dev tools 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 Nordix/metal3-dev-tools repository.
-
-- job-template:
- id: metal3_dev_tools_integration_test
- name: 'metal3_dev_tools_integration_test_{image_os}'
- description: "CAPM3 v1beta1 metal3-dev-tools integration tests for {repo[org]}/{repo[name]} on {image_os}."
- project-type: pipeline
- defaults: global
- disabled: False
- concurrent: True
- parameters:
- - 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: 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: 'v1beta1'
- description: 'Cluster API version. E.g. v1beta1.'
- - string:
- name: CAPM3_VERSION
- default: 'v1beta1'
- description: 'Cluster API provider Metal3 version. E.g. v1beta1.'
- - string:
- name: TARGET_NODE_MEMORY
- default: 4096
- description: 'RAM size of the target host.'
- - string:
- name: KUBERNETES_VERSION
- default: ""
- description: 'Kubernetes version'
-
- 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-integration-metal3-dev-tools-{image_os}.*?'
- 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-integration-metal3-dev-tools-{image_os}"
- 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/jobs/metal3_dev_tools_integration_tests.pipeline'
- lightweight-checkout: False
# NOTE: KUBERNETES_VERSION and KUBECTL_SHA256 are changed as a pair
- job-template:
- id: openstack_node_image_building
- name: '{job_prefix}_openstack_node_image_building'
- description: "Builder job for Openstack node images for Metal3 CI"
+ id: node_image_building
+ name: '{job_prefix}_periodic_node_image_building'
+ description: "Builder job for node images for Metal3 CI"
project-type: pipeline
defaults: global
disabled: False
concurrent: True
parameters:
+ - string:
+ name: IMAGE_TYPE
+ default: 'node'
+ description: 'Specifies the type of image being built in pipeline'
- string:
name: KUBERNETES_VERSION
default: "v1.30.0"
artifact-days-to-keep: -1
artifact-num-to-keep: -1
+ triggers:
+ - timed: "0 5 */14 * *"
+
pipeline-scm:
scm:
- git:
wipe-workspace: True
honor-refspec: True
shallow-clone: False
- included-regions:
- - "ci/images/.*"
- - "ci/scripts/image_scripts/.*"
- script-path: 'ci/jobs/{id}.pipeline'
+ script-path: "{image_building_pipeline}"
lightweight-checkout: False
+++ /dev/null
-#
-# ============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 Openstack image building tests.
-# This job can be triggered manually or through a Github pull request. It creates a
-# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
-
-# NOTE: KUBERNETES_VERSION and KUBECTL_SHA256 are changed as a pair
-
-- job-template:
- id: openstack_image_building
- name: '{job_prefix}_openstack_image_building'
- description: "Builder job for Openstack images for Metal3 CI"
- project-type: pipeline
- defaults: global
- disabled: False
- concurrent: True
- parameters:
- - string:
- name: KUBERNETES_VERSION
- default: "v1.30.0"
- description: 'Kubernetes version'
- - string:
- name: KUBECTL_SHA256
- default: '7c3807c0f5c1b30110a2ff1e55da1d112a6d0096201f1beb81b269f582b5d1c5' # v1.30.0
- description: 'Kubectl SHA256 digest matching KUBERNETES_VERSION'
- - string:
- name: KIND_NODE_IMAGE_VERSION
- default: "v1.29.2"
- description: 'Kind node container image version'
-
- properties:
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 300
- artifact-days-to-keep: -1
- artifact-num-to-keep: -1
-
- 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
- script-path: 'ci/jobs/{id}.pipeline'
- lightweight-checkout: False
ci_github_whitelist_org:
- nordix-metal3
jobs:
- - openstack_image_building
- - openstack_node_image_building
- docker_image_building
- update_nordix_repos
- periodic_fullstack_building
- fullstack_building_test
- - metal3_dev_tools_integration_test:
- image_os:
- - ubuntu
- - centos
- artifact_cleanup
repo:
org: "Nordix"
name: 'image_building'
jobs:
- ci_image_building
-
-- project:
- name: integration-tests
- org: metal3-io
- proj:
- - metal3_dev_env:
- repo: metal3-dev-env
- - project_infra:
- repo: project-infra
- branch: '${{ghprbActualCommit}}'
- ci_github_repo: '${{ghprbAuthorRepoGitUrl}}'
- - capm3:
- repo: cluster-api-provider-metal3
- - bmo:
- repo: baremetal-operator
- - ipam:
- repo: ip-address-manager
- - ironic_image:
- repo: ironic-image
- name_postfix: '_ironic_from_source'
- trigger_postfix: '-ironic-source'
- ironic_install_type: 'source'
- target_branches:
- - 'main'
- - 'release-23.1'
- - 'release-24.0'
- - 'release-24.1'
- - ironic_image:
- repo: ironic-image
- - ironic_ipa_downloader:
- repo: ironic-ipa-downloader
- - mariadb_image:
- repo: mariadb-image
- build_mariadb_image_locally: 'true'
- ironic_use_mariadb: 'true'
- image_os:
- - ubuntu
- - centos
- capm3_target_branch:
- - main:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: main
- bmo_release_branch: main
- target_branches:
- - 'main'
- - release-1-7:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.7
- bmo_release_branch: release-0.6
- target_branches:
- - 'main'
- - 'release-1.7'
- - 'release-0.6'
- - release-1-6:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.6
- bmo_release_branch: release-0.5
- target_branches:
- - 'main'
- - 'release-1.6'
- - 'release-0.5'
- - release-1-5:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.5
- bmo_release_branch: release-0.4
- target_branches:
- - 'main'
- - 'release-1.5'
- - 'release-0.4'
- jobs:
- - integration_tests
-
-- project:
- name: metal3-dev-env-main-tests
- org: metal3-io
- repo: metal3-dev-env
- image_os:
- - ubuntu
- - centos
- jobs:
- - capm3_periodic_integration_tests:
- capm3_target_branch:
- - main:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: main
- bmo_release_branch: main
- schedule: "H 4 * * *"
- - release-1-7:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.7
- bmo_release_branch: release-0.6
- schedule: "30 4 * * *"
- - release-1-6:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.6
- bmo_release_branch: release-0.5
- schedule: "30 4 * * *"
- - release-1-5:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.5
- bmo_release_branch: release-0.4
- schedule: "30 4 * * *"
+ - node_image_building
- project:
name: bml-tests
capm3_version: v1beta1
capm3_release_branch: main
bmo_release_branch: main
- schedule: "H 2 * * *"
+ schedule: "H 22 2-30/2 * *" # Runs on even days 10 PM
- release-1-7:
capi_version: v1beta1
capm3_version: v1beta1
capm3_release_branch: release-1.7
bmo_release_branch: release-0.6
- schedule: "H 2 * * *"
+ schedule: "H 3 2-30/2 * *" # Runs on even days 3 AM
- release-1-6:
capi_version: v1beta1
capm3_version: v1beta1
capm3_release_branch: release-1.6
bmo_release_branch: release-0.5
- schedule: "H 8 * * *"
+ schedule: "H 8 2-30/2 * *" # Runs on even days 8 AM
- release-1-5:
capi_version: v1beta1
capm3_version: v1beta1
capm3_release_branch: release-1.5
bmo_release_branch: release-0.4
- schedule: "H 11 * * *"
+ schedule: "H 13 2-30/2 * *" # Runs on even days 1 PM
+ exclude:
+ - image_os: ubuntu # This is to disable the tests running on ubuntu, to save resources
- capm3_e2e_clusterctl_upgrade_tests_prow:
capm3_target_branch:
- main:
- main:
capm3_release_branch: main
bmo_release_branch: main
+ schedule: "H 1 * * TUE,THU,SAT"
- release-1-7:
capm3_release_branch: release-1.7
bmo_release_branch: release-0.6
+ schedule: "H 1 * * MON"
- release-1-6:
capm3_release_branch: release-1.6
bmo_release_branch: release-0.5
+ schedule: "H 1 * * WED"
- release-1-5:
capm3_release_branch: release-1.5
bmo_release_branch: release-0.4
+ schedule: "H 1 * * FRI"
exclude:
- image_os: centos
- capm3_periodic_e2e_k8s_upgrade_tests_prow:
capm3_release_branch: main
bmo_release_branch: main
capm3_target_branch: main
+ schedule: "H 4 * * MON"
- 1-28-1-29:
k8s_version_upgrade_from: v1.28.1
k8s_version_upgrade_to: v1.29.0
capm3_release_branch: main
bmo_release_branch: main
capm3_target_branch: main
+ schedule: "H 4 * * THU"
- 1-27-1-28:
k8s_version_upgrade_from: v1.27.4
k8s_version_upgrade_to: v1.28.1
capm3_release_branch: main
bmo_release_branch: main
capm3_target_branch: main
+ schedule: "H 4 * * FRI"
- 1-29-1-30:
k8s_version_upgrade_from: v1.29.0
k8s_version_upgrade_to: v1.30.0
capm3_release_branch: release-1.7
bmo_release_branch: release-0.6
capm3_target_branch: release-1-7
+ schedule: "H 4 * * TUE"
- 1-28-1-29:
k8s_version_upgrade_from: v1.28.1
k8s_version_upgrade_to: v1.29.0
capm3_release_branch: release-1.6
bmo_release_branch: release-0.5
capm3_target_branch: release-1-6
+ schedule: "H 4 * * WED"
- 1-26-1-27:
k8s_version_upgrade_from: v1.26.4
k8s_version_upgrade_to: v1.27.4
capm3_release_branch: release-1.5
bmo_release_branch: release-0.4
capm3_target_branch: release-1-5
+ schedule: "H 4 * * SAT"
exclude:
- image_os: centos
- capm3_periodic_e2e_ephemeral_tests:
capm3_release_branch: main
bmo_release_branch: main
schedule: "H 4 * * *"
- - release-1-6:
- capi_version: v1beta1
- capm3_version: v1beta1
- capm3_release_branch: release-1.6
- bmo_release_branch: release-0.5
- schedule: "30 4 * * *"
fi
fi
+# Limit the plots to last 100 builds for each test
+for cps_stable_test_name in "${cps_stable_test_names[@]}"; do
+ tail -n 100 "$cps_stable_test_name.txt" > file.tmp && mv file.tmp "$cps_stable_test_name.txt"
+done
+for ncmp_stable_test_name in "${ncmp_stable_test_names[@]}"; do
+ tail -n 100 "$ncmp_stable_test_name.txt" > file.tmp && mv file.tmp "$ncmp_stable_test_name.txt"
+done
+for cps_unstable_test_name in "${cps_unstable_test_names[@]}"; do
+ tail -n 100 "$cps_unstable_test_name.txt" > file.tmp && mv file.tmp "$cps_unstable_test_name.txt"
+done
+for ncmp_unstable_test_name in "${ncmp_unstable_test_names[@]}"; do
+ tail -n 100 "$ncmp_unstable_test_name.txt" > file.tmp && mv file.tmp "$ncmp_unstable_test_name.txt"
+done
+
# Plot image (graphs) files in png format
for cps_stable_test_name in "${cps_stable_test_names[@]}"; do
buildPlotImage "$cps_stable_test_name.txt" "$cps_stable_test_name.png"
sudo apt-get install -y python3-dev gcc
echo "----------------------------------------------------"
-echo "Install Docker compose if needed"
+echo "Install Docker Compose if needed"
echo "----------------------------------------------------"
-if [ -f /usr/local/bin/docker-compose ]; then
+if [ -f /usr/local/lib/docker/cli-plugins/docker-compose ]; then
echo "Docker compose already installed"
else
- sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
+ echo "Installing Docker Compose"
+ sudo mkdir -p /usr/local/lib/docker/cli-plugins
+ sudo curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
+ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
fi
unset WORKSPACE