From c9dee9b21f317ea6d5d731598051faa427879177 Mon Sep 17 00:00:00 2001 From: Feruzjon Muyassarov Date: Tue, 4 Jan 2022 10:52:18 +0200 Subject: [PATCH] Allow skipping metal3 environment clean up and VM deletion. Change-Id: I7c4d34c6a420ead3931b74f4e0720b7096fd72ec --- .../job_keep_integration_vm_v1a5_centos.yml | 127 ++++++++++++++++++ .../job_keep_integration_vm_v1a5_ubuntu.yml | 127 ++++++++++++++++++ .../job_keep_integration_vm_v1b1_centos.yml | 125 +++++++++++++++++ .../job_keep_integration_vm_v1b1_ubuntu.yml | 125 +++++++++++++++++ jjb/airship/projects.yml | 20 +++ 5 files changed, 524 insertions(+) create mode 100644 jjb/airship/job_keep_integration_vm_v1a5_centos.yml create mode 100644 jjb/airship/job_keep_integration_vm_v1a5_ubuntu.yml create mode 100644 jjb/airship/job_keep_integration_vm_v1b1_centos.yml create mode 100644 jjb/airship/job_keep_integration_vm_v1b1_ubuntu.yml diff --git a/jjb/airship/job_keep_integration_vm_v1a5_centos.yml b/jjb/airship/job_keep_integration_vm_v1a5_centos.yml new file mode 100644 index 000000000..26ba8c377 --- /dev/null +++ b/jjb/airship/job_keep_integration_vm_v1a5_centos.yml @@ -0,0 +1,127 @@ +--- +# +# ============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 K8s CAPI Baremetal 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 Airship CI repository. + +- job-template: + id: keep_v1a5_test_centos_alive + name: '{job_prefix}_{name}_keep_v1a5_test_centos_alive' + description: "K8s CAPI metal3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on CentOS. " + 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: 'master' + 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: 'master' + description: 'Target branch of the PR' + - string: + name: DISTRIBUTION + default: 'centos' + description: 'Distribution to use for the tests. Can be ubuntu or centos' + - string: + name: CAPI_VERSION + default: 'v1alpha4' + description: 'Cluster API version.' + - string: + name: CAPM3_VERSION + default: 'v1alpha5' + description: 'Cluster API provider Metal3 version.' + - string: + name: TARGET_NODE_OS + default: 'Centos' + description: 'Distribution to use for the target host.' + - string: + name: TARGET_NODE_MEMORY + default: 4096 + description: 'RAM size of the target host.' + - string: + name: SKIP_DELETION + default: 'true' + description: 'Whether tester VM should be deleted or not by the end of the test' + + 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)?/keep-test-v1a5-centos-integration(\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: + - 'master' + - 'main' + - 'release-0.5' + - 'release-0.1' + status-context: "keep-test-v1a5-centos-integration" + 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 diff --git a/jjb/airship/job_keep_integration_vm_v1a5_ubuntu.yml b/jjb/airship/job_keep_integration_vm_v1a5_ubuntu.yml new file mode 100644 index 000000000..fd1f39b03 --- /dev/null +++ b/jjb/airship/job_keep_integration_vm_v1a5_ubuntu.yml @@ -0,0 +1,127 @@ +--- +# +# ============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 K8s CAPI Baremetal 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 Airship CI repository. + +- job-template: + id: keep_v1a5_test_ubuntu_alive + name: '{job_prefix}_{name}_keep_v1a5_test_ubuntu_alive' + description: "K8s CAPI metal3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on Ubuntu. " + 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: 'master' + 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: 'master' + description: 'Target branch of the PR' + - string: + name: DISTRIBUTION + default: 'ubuntu' + description: 'Distribution to use for the tests. Can be ubuntu or centos' + - string: + name: CAPI_VERSION + default: 'v1alpha4' + description: 'Cluster API version.' + - string: + name: CAPM3_VERSION + default: 'v1alpha5' + description: 'Cluster API provider Metal3 version.' + - string: + name: TARGET_NODE_OS + default: 'Ubuntu' + description: 'Distribution to use for the target host.' + - string: + name: TARGET_NODE_MEMORY + default: 4096 + description: 'RAM size of the target host.' + - string: + name: SKIP_DELETION + default: 'true' + description: 'Whether tester VM should be deleted or not by the end of the test' + + 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)?/keep-test-v1a5-integration(\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: + - 'master' + - 'main' + - 'release-0.5' + - 'release-0.1' + status-context: "keep-test-v1a5-integration" + 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 diff --git a/jjb/airship/job_keep_integration_vm_v1b1_centos.yml b/jjb/airship/job_keep_integration_vm_v1b1_centos.yml new file mode 100644 index 000000000..2d6e8a51f --- /dev/null +++ b/jjb/airship/job_keep_integration_vm_v1b1_centos.yml @@ -0,0 +1,125 @@ +--- +# +# ============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 CAPM3 v1beta1 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 Airship CI repository. + +- job-template: + id: keep_v1b1_test_centos_alive + name: '{job_prefix}_{name}_keep_v1b1_test_centos_alive' + description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS." + 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: DISTRIBUTION + default: 'centos' + description: 'Distribution to use for the tests. Can be ubuntu or centos' + - string: + name: CAPI_VERSION + default: 'v1beta1' + description: 'Cluster API version.' + - string: + name: CAPM3_VERSION + default: 'v1beta1' + description: 'Cluster API provider Metal3 version.' + - string: + name: TARGET_NODE_OS + default: 'Centos' + description: 'Distribution to use for the target host.' + - string: + name: TARGET_NODE_MEMORY + default: 4096 + description: 'RAM size of the target host.' + - string: + name: SKIP_DELETION + default: 'true' + description: 'Whether tester VM should be deleted or not by the end of the test' + + 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)?/keep-test-v1b1-centos-integration(\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: + - 'master' + - 'main' + status-context: "keep-test-v1b1-centos-integration" + 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 \ No newline at end of file diff --git a/jjb/airship/job_keep_integration_vm_v1b1_ubuntu.yml b/jjb/airship/job_keep_integration_vm_v1b1_ubuntu.yml new file mode 100644 index 000000000..f6bea5902 --- /dev/null +++ b/jjb/airship/job_keep_integration_vm_v1b1_ubuntu.yml @@ -0,0 +1,125 @@ +--- +# +# ============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 CAPM3 v1beta1 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 Airship CI repository. + +- job-template: + id: keep_v1b1_test_ubuntu_alive + name: '{job_prefix}_{name}_keep_v1b1_test_ubuntu_alive' + description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on Ubuntu." + 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: DISTRIBUTION + default: 'ubuntu' + description: 'Distribution to use for the tests. Can be ubuntu or centos' + - string: + name: CAPI_VERSION + default: 'v1beta1' + description: 'Cluster API version.' + - string: + name: CAPM3_VERSION + default: 'v1beta1' + description: 'Cluster API provider Metal3 version.' + - string: + name: TARGET_NODE_OS + default: 'Ubuntu' + description: 'Distribution to use for the target host.' + - string: + name: TARGET_NODE_MEMORY + default: 4096 + description: 'RAM size of the target host.' + - string: + name: SKIP_DELETION + default: 'true' + description: 'Whether tester VM should be deleted or not by the end of the test' + + 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)?/keep-test-v1b1-centos-integration(\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: + - 'master' + - 'main' + status-context: "keep-test-v1b1-centos-integration" + 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 \ No newline at end of file diff --git a/jjb/airship/projects.yml b/jjb/airship/projects.yml index 386999976..19a6fd013 100644 --- a/jjb/airship/projects.yml +++ b/jjb/airship/projects.yml @@ -90,6 +90,10 @@ - capi_bm_v1a5_integration_tests_ubuntu - capm3_v1b1_integration_tests_centos - capm3_v1b1_integration_tests_ubuntu + - keep_v1b1_test_ubuntu_alive + - keep_v1b1_test_centos_alive + - keep_v1a5_test_ubuntu_alive + - keep_v1a5_test_centos_alive - feature_tests_ubuntu - project: @@ -104,6 +108,10 @@ - capi_bm_v1a5_integration_tests_ubuntu - capm3_v1b1_integration_tests_centos - capm3_v1b1_integration_tests_ubuntu + - keep_v1b1_test_ubuntu_alive + - keep_v1b1_test_centos_alive + - keep_v1a5_test_ubuntu_alive + - keep_v1a5_test_centos_alive - project: name: "metal3io_metal3_dev_env" @@ -128,6 +136,10 @@ - master_feature_tests_upgrade_ubuntu - bml_integration_tests_centos - bml_master_integration_tests_centos + - keep_v1b1_test_ubuntu_alive + - keep_v1b1_test_centos_alive + - keep_v1a5_test_ubuntu_alive + - keep_v1a5_test_centos_alive repo: org: "metal3-io" @@ -153,6 +165,10 @@ - capi_capm3_e2e_v1b1_tests_ubuntu - capi_capm3_master_e2e_v1b1_tests_centos - capi_capm3_master_e2e_v1b1_tests_ubuntu + - keep_v1b1_test_ubuntu_alive + - keep_v1b1_test_centos_alive + - keep_v1a5_test_ubuntu_alive + - keep_v1a5_test_centos_alive - project: @@ -167,6 +183,10 @@ - capi_bm_v1a5_integration_tests_ubuntu - capm3_v1b1_integration_tests_centos - capm3_v1b1_integration_tests_ubuntu + - keep_v1b1_test_ubuntu_alive + - keep_v1b1_test_centos_alive + - keep_v1a5_test_ubuntu_alive + - keep_v1a5_test_centos_alive - project: name: "metal3io_ironic_ipa_downloader" -- 2.25.1