From b0331bbde878f8338f63af8bc5633c753df53415 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Mon, 27 Jan 2025 13:50:17 +0000 Subject: [PATCH 01/10] [patch] include branch ansible devops --- .github/workflows/build-cli.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index f79df645fff..b33deb95c3c 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -186,8 +186,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts From 2f8a8b46beb3ffd40dee5259bc257a63bf435359 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Mon, 27 Jan 2025 14:11:04 +0000 Subject: [PATCH 02/10] [patch] include branch ansible devops in all images --- .github/workflows/build-cli.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index b33deb95c3c..7fd180655f6 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -263,8 +263,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts @@ -339,8 +339,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts From 2a5aa60ce02a68647a69f4088c4d31a947c44585 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Mon, 27 Jan 2025 17:05:14 +0000 Subject: [PATCH 03/10] rebuild with updated ansible-devops From 404dc4563af6cd3607fa2dfd6ff2c1f18342bd62 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Wed, 29 Jan 2025 09:08:13 +0000 Subject: [PATCH 04/10] [patch] allow each cp4d service to be installed --- python/src/mas/cli/install/argBuilder.py | 6 +++++ python/src/mas/cli/install/argParser.py | 24 +++++++++++++++++++ python/src/mas/cli/install/params.py | 3 +++ python/src/mas/cli/install/summarizer.py | 5 ++++ tekton/src/params/install.yml.j2 | 8 ++++++- .../taskdefs/cp4d/cp4d-aiopenscale.yml.j2 | 2 +- .../taskdefs/cp4d/cp4d-cognos.yml.j2 | 2 +- .../taskdefs/cp4d/cp4d-platform.yml.j2 | 2 +- .../pipelines/taskdefs/cp4d/cp4d-spark.yml.j2 | 2 +- .../pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 | 2 +- .../pipelines/taskdefs/cp4d/cp4d-wml.yml.j2 | 2 +- 11 files changed, 51 insertions(+), 7 deletions(-) diff --git a/python/src/mas/cli/install/argBuilder.py b/python/src/mas/cli/install/argBuilder.py index ad077d03ae1..c09b7b3c379 100644 --- a/python/src/mas/cli/install/argBuilder.py +++ b/python/src/mas/cli/install/argBuilder.py @@ -235,6 +235,12 @@ def buildCommand(self) -> str: command += " --cp4d-install-openscal" if self.getParam('cpd_install_cognos') == "install": command += " --cp4d-install-cognos" + if self.getParam('cpd_install_ws') == "install": + command += " --cp4d-install-ws" + if self.getParam('cpd_install_wml') == "install": + command += " --cp4d-install-wml" + if self.getParam('cpd_install_ae') == "install": + command += " --cp4d-install-ae" command += newline # IBM Db2 Universal Operator diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index 1098d1950cf..2964fd2b518 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -716,6 +716,30 @@ def isValidFile(parser, arg) -> str: action="store_const", const="install" ) +cpdAppsArgGroup.add_argument( + "--cp4d-install-ws", + dest="cpd_install_ws", + required=False, + help="Add Watson Studio as part of Cloud Pak for Data", + action="store_const", + const="install" +) +cpdAppsArgGroup.add_argument( + "--cp4d-install-wml", + dest="cpd_install_wml", + required=False, + help="Add Watson Machine Learning as part of Cloud Pak for Data", + action="store_const", + const="install" +) +cpdAppsArgGroup.add_argument( + "--cp4d-install-ae", + dest="cpd_install_ae", + required=False, + help="Add Spark Analytics Engine as part of Cloud Pak for Data", + action="store_const", + const="install" +) # IBM Db2 Universal Operator # ----------------------------------------------------------------------------- diff --git a/python/src/mas/cli/install/params.py b/python/src/mas/cli/install/params.py index 0a63bd0446c..acd7622d16c 100644 --- a/python/src/mas/cli/install/params.py +++ b/python/src/mas/cli/install/params.py @@ -99,6 +99,9 @@ "cpd_install_cognos", "cpd_install_openscale", "cpd_install_spss", + "cpd_install_ws", + "cpd_install_wml", + "cpd_install_ae", # Kafka "kafka_namespace", "kafka_version", diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index f2c3dd30f40..f8637e5fbc4 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -252,6 +252,11 @@ def cp4dSummary(self) -> None: self.printSummary("Watson Studio Local", "Install (Required by Maximo Predict)") self.printSummary("Watson Machine Learning", "Install (Required by Maximo Predict)") self.printSummary("Analytics Engine", "Install (Required by Maximo Predict)") + else: + self.printSummary("Watson Studio Local", "Install" if self.getParam("cpd_install_ws") == "true" else "Do Not Install") + self.printSummary("Watson Machine Learning", "Install" if self.getParam("cpd_install_wml") == "true" else "Do Not Install") + self.printSummary("Analytics Engine", "Install" if self.getParam("cpd_install_ae") == "true" else "Do Not Install") + self.printSummary("Watson Openscale", "Install" if self.getParam("cpd_install_openscale") == "true" else "Do Not Install") self.printSummary("SPSS Modeler", "Install" if self.getParam("cpd_install_spss") == "true" else "Do Not Install") self.printSummary("Cognos Analytics", "Install" if self.getParam("cpd_install_cognos") == "true" else "Do Not Install") diff --git a/tekton/src/params/install.yml.j2 b/tekton/src/params/install.yml.j2 index b01b6836d59..93c4013df0d 100644 --- a/tekton/src/params/install.yml.j2 +++ b/tekton/src/params/install.yml.j2 @@ -235,7 +235,13 @@ - name: cpd_install_cognos type: string default: "" -- name: cpd_install_all +- name: cpd_install_ws + type: string + default: "" +- name: cpd_install_wml + type: string + default: "" +- name: cpd_install_ae type: string default: "" diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 index cea24b01601..425a34fad55 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 @@ -25,7 +25,7 @@ name: mas-devops-cp4d-service # Only needed if Predict is being installed when: - - input: "$(params.mas_app_channel_predict)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.cpd_install_openscale)" operator: notin values: [""] - input: "$(params.cpd_install_openscale)" diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 index b5394b9f5a8..0ec2569de2e 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 @@ -23,7 +23,7 @@ name: mas-devops-cp4d-service # Only needed if Manage is being installed and Cognos is chosen to be installed when: - - input: "$(params.mas_app_channel_manage)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_manage)$(params.cpd_install_cognos)" operator: notin values: [""] - input: "$(params.cpd_install_cognos)" diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-platform.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-platform.yml.j2 index 5382be26497..1d447ca7050 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-platform.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-platform.yml.j2 @@ -18,6 +18,6 @@ name: mas-devops-cp4d # Only needed if either Predict, Assist, Health w/ WSL, or Cognos are being installed when: - - input: "$(params.mas_app_channel_predict)$(params.mas_appws_bindings_health_wsl_flag)$(params.cpd_install_cognos)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.mas_appws_bindings_health_wsl_flag)$(params.cpd_install_cognos)$(params.cpd_install_spss)$(params.cpd_install_openscale)$(params.cpd_install_ws)$(params.cpd_install_wml)$(params.cpd_install_ae)" operator: notin values: [""] \ No newline at end of file diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spark.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spark.yml.j2 index 3342ec0fc16..a93cecf5dec 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spark.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spark.yml.j2 @@ -23,7 +23,7 @@ name: mas-devops-cp4d-service # Only needed if Predict is being installed when: - - input: "$(params.mas_app_channel_predict)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.cpd_install_ae)" operator: notin values: [""] workspaces: diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 index c107fda35c2..2d18ec12ec0 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 @@ -25,7 +25,7 @@ name: mas-devops-cp4d-service # Only needed if Predict is being installed when: - - input: "$(params.mas_app_channel_predict)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.cpd_install_spss)" operator: notin values: [""] - input: "$(params.cpd_install_spss)" diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-wml.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-wml.yml.j2 index d3464cab033..5ed75763445 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-wml.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-wml.yml.j2 @@ -23,7 +23,7 @@ name: mas-devops-cp4d-service # Only needed if Predict is being installed when: - - input: "$(params.mas_app_channel_predict)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.cpd_install_wml)" operator: notin values: [""] workspaces: From 44a6eef913f3c3f42a8099ffd89dc5c7c6f5de1e Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Wed, 29 Jan 2025 11:31:01 +0000 Subject: [PATCH 05/10] [patch] fix tekton wsl install task --- tekton/src/pipelines/taskdefs/cp4d/cp4d-wsl.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-wsl.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-wsl.yml.j2 index 6272a88708c..59823631fd5 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-wsl.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-wsl.yml.j2 @@ -23,7 +23,7 @@ name: mas-devops-cp4d-service # Only needed if either Predict or Health w/ WSL are being installed when: - - input: "$(params.mas_app_channel_predict)$(params.mas_appws_bindings_health_wsl_flag)$(params.cpd_install_all)" + - input: "$(params.mas_app_channel_predict)$(params.mas_appws_bindings_health_wsl_flag)$(params.cpd_install_ws)" operator: notin values: [""] workspaces: From 23bcbb0b5801e46fab1d873bf2843b02e749bd32 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Wed, 29 Jan 2025 16:37:55 +0000 Subject: [PATCH 06/10] [patch] include locally build python-devops --- image/cli/install/mas_devops.tar.gz | Bin 0 -> 36068 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 image/cli/install/mas_devops.tar.gz diff --git a/image/cli/install/mas_devops.tar.gz b/image/cli/install/mas_devops.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d64240bd73978ac636ca70470e23ccac742e61ac GIT binary patch literal 36068 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%0DdHaj=Hx%G(GTD2^HKwu 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 Date: Thu, 30 Jan 2025 09:46:18 +0000 Subject: [PATCH 07/10] [patch] fix conditions on cpd service install tasks --- tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 | 2 +- tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 | 2 +- tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 index 425a34fad55..bc6ebecbb73 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-aiopenscale.yml.j2 @@ -30,7 +30,7 @@ values: [""] - input: "$(params.cpd_install_openscale)" operator: in - values: ["True","true"] + values: ["True","true","install"] workspaces: - name: configs workspace: shared-configs \ No newline at end of file diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 index 0ec2569de2e..c3fadfa7fe4 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-cognos.yml.j2 @@ -28,7 +28,7 @@ values: [""] - input: "$(params.cpd_install_cognos)" operator: in - values: ["True","true"] + values: ["True","true","install"] workspaces: - name: configs workspace: shared-configs \ No newline at end of file diff --git a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 index 2d18ec12ec0..90ba04456e3 100644 --- a/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 +++ b/tekton/src/pipelines/taskdefs/cp4d/cp4d-spss.yml.j2 @@ -30,7 +30,7 @@ values: [""] - input: "$(params.cpd_install_spss)" operator: in - values: ["True","true"] + values: ["True","true","install"] workspaces: - name: configs workspace: shared-configs \ No newline at end of file From 7ee6894bd60f9ba1cb51d899ddcfe226825987a5 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Thu, 30 Jan 2025 15:21:42 +0000 Subject: [PATCH 08/10] [patch] include instructions to test with local python-devops --- CONTRIBUTING.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d99d76e2914..270539da0e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -110,6 +110,24 @@ git checkout -b name-your-branch git checkout name-your-branch ``` +Testing with a modified python-devops code. +------------------------------------------------------------------------------- +Make sure that the python-devops repository is cloned locally in the same directory +as the CLI repository. +From the top level CLI directory, run +``` +make python-devops +``` +This will build and copy the locally modified python-devops package into the CLI image +structure so that the modified python-devops will be included when the CLI is built. + +Build the CLI, either locally or in GitHub. + +NOTE: if building on MacOS you will need to first install pandoc or the `make python-devops` command may fail: +``` +brew install pandoc +``` + Pull Requests ------------------------------------------------------------------------------- From c4d290e838d1cc9e10e803e02d0cc44c63048cf0 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Thu, 30 Jan 2025 15:32:49 +0000 Subject: [PATCH 09/10] [patch] install ansible-devops release version --- .github/workflows/build-cli.yml | 12 ++++++------ Makefile | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index 7fd180655f6..f79df645fff 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -186,8 +186,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts @@ -263,8 +263,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts @@ -339,8 +339,8 @@ jobs: if [[ -e $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz ]]; then echo "Found a local Ansible collection to be used in $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz! Skip download from Artifactory..." else - echo "Downloading from ***/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz" - wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/26.0.1-pre.mascore-5262/ibm-mas_devops-26.0.1-pre.mascore-5262.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz + echo "Downloading from ***/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz" + wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" $ARTIFACTORY_GENERIC_RELEASE_URL/ibm-mas/ansible-devops/latest/ibm-mas_devops-latest.tar.gz -O $GITHUB_WORKSPACE/image/cli/install/ibm-mas_devops.tar.gz fi # 3. Download Built Artifacts diff --git a/Makefile b/Makefile index a452859dcea..92a46020957 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ python-cli: cp python/dist/mas_cli-100.0.0.tar.gz image/cli/install/mas_cli.tar.gz python-devops: - cd ../python-devops && make build + cd ../python-devops && make install build cp ../python-devops/dist/mas_devops-100.0.0.tar.gz image/cli/install/mas_devops.tar.gz python: python-devops python-cli From dba7ca3759cf86ff26e1e445be255540e4900b00 Mon Sep 17 00:00:00 2001 From: Paul Stone Date: Thu, 30 Jan 2025 15:35:29 +0000 Subject: [PATCH 10/10] [patch] remove test version of python-devops --- image/cli/install/mas_devops.tar.gz | Bin 36068 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 image/cli/install/mas_devops.tar.gz diff --git a/image/cli/install/mas_devops.tar.gz b/image/cli/install/mas_devops.tar.gz deleted file mode 100644 index d64240bd73978ac636ca70470e23ccac742e61ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36068 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%0DdHaj=Hx%G(GTD2^HKwu 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