在 Hybris (CCv2) 的 Azure Devops 上创建 CI/CD 管道
Creating CI/CD pipelines on Azure Devops for Hybris (CCv2)
我在 Azure Devops 上有一个 Hybris 存储库,想在 SAP Commerce Cloud (CCv2) 上部署。'¨
我是 Azure Devops 的新手,所以不确定如何继续,如何从 Azure 连接到 CCv2 等。
我已经在 CCv2 上创建了“Staging”和“Prod”空间,现在我只想部署在 staging 上。
如果以前有人创建过这种任务,能不能一一解释一下步骤。
例如,我如何从 Azure 连接到 CCv2?使用一些命令或安全文件等?
谢谢!
我们将在本例中讨论以下主题:
- 构建你的代码CI/CD(我们不会讨论这个)
- 在 SAP Commerce Cloud V2 中触发构建(并等待它完成)
- 在 D1 环境中触发部署(然后忘记它)
我们在 Atlassian Bitbucket Cloud 上托管我们的项目,那里提供的 CI/CD 解决方案称为 Bitbucket Pipelines。
第一步完成后,我们要(再次)构建,然后才在 ccv2 平台上,成功完成后触发部署到 D1 环境,使用我们自己的 CLI 工具 CI/CD。
先决条件
- SCCA 的 Docker 化版本 (SAP CX CLI Acorel)
- SAP API Bitbucket 管道中的令牌秘密变量
- bitbucket 管道中的 SAP 订阅 ID 秘密变量
下面是我们如何使用 scca 在 CCV2 平台上触发构建的示例:
- step: &cloud-build
clone:
enabled: false
options:
size: 1x
name: Trigger build SAP Cloud
image:
name: /sap-cx-cli-acorel:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
artifacts: # defining the artifacts to be passed to each future step.
- build-output.txt
script:
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
- scca build create --branch=$BITBUCKET_BRANCH --name=$(echo "$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER" | sed -e "s/^.*\///") > $BITBUCKET_CLONE_DIR/build-output.txt
让我们回顾一下我们在步骤的脚本部分中看到的内容。
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
这会将 scca 配置为使用正确的 API 令牌和订阅 ID。
接下来我们创建构建,这里还有很多事情要做。
- scca build create --branch=$BITBUCKET_BRANCH --name=$(echo "$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER" | sed -e "s/^.*\///") > $BITBUCKET_CLONE_DIR/build-output.txt
–branch=$BITBUCKET_BRANCH # 指定用于此构建的分支
–name=$(echo “$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER” | sed -e “s/^.*///”) > # 设置将在此构建的云门户中显示的名称。
$BITBUCKET_CLONE_DIR/build-output.tx # 这个命令产生的输出保存在文件build-output.txt
我们存储此创建构建命令的输出的原因是我们需要将 SAP CCV2 生成的构建代码共享到下一步,即部署到 D1 环境。因为这是一个单独的步骤,所以使用的 docker 实例将被重置并忘记它之前完成的进度或任务。 scca 的 create build 命令对构建进度进行轮询,因此当构建完成时在 SAP 平台上完成。
您可以通过在命令后附加 –no-wait 来跳过此步骤。
现在我们已经准备好部署在 SAP Commerce Cloud v2 上,下面是一个关于如何使用 scca.
进行构建的示例
部署步骤
- step: &cloud-deploy
clone:
enabled: false
options:
size: 1x
name: Deploy SAP Cloud D1
image:
name: <url to your docker image>/sap-cx-cli-acorel:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
script:
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
- scca build deploy --build-code=$(grep -Po '(?<=build\-code:\s).*' $BITBUCKET_CLONE_DIR/build-output.txt) --environment-code=$environment --no-wait
在脚本的第一行,我们再次设置配置,就像我们在前面讨论的创建构建步骤中所做的那样。
奇迹发生在第二行,我们在这里使用 scca build deploy 命令。
- scca build deploy --build-code=$(grep -Po '(?<=build\-code:\s).*' $BITBUCKET_CLONE_DIR/build-output.txt) --environment-code=$environment --no-wait
- –build-code,但使用 grep。这确保我们 grep 由 SAP 生成的构建代码并使用它来触发此构建。
- –environment-code 这是在Bitbucket 中指定为部署变量的变量。可以在此处找到有关该主题的更多信息
- –no-wait,这告诉 scca 不要等待部署完成。
完成此步骤后,bitbucket 认为部署成功。
您可能已经注意到我们没有指定任何更新策略和其他类似的东西,那是因为如果没有指定,scca 有一些默认值,但可以通过在部署命令中添加以下参数来覆盖。
--strategy= The way the deployment is handled [default: ROLLING_UPDATE]
--database-update-mode= DB update mode [default: UPDATE]
数据库更新模式的可能选项是NONE、UPDATE 和INITIALIZE
策略的可能选项是 ROLLING_UPDATE 和 RECREATE。
现在我们可以在 SAP Commerce Cloud v2 上构建和部署,剩下的就是安排夜间触发器。
我在 Azure Devops 上有一个 Hybris 存储库,想在 SAP Commerce Cloud (CCv2) 上部署。'¨
我是 Azure Devops 的新手,所以不确定如何继续,如何从 Azure 连接到 CCv2 等。
我已经在 CCv2 上创建了“Staging”和“Prod”空间,现在我只想部署在 staging 上。
如果以前有人创建过这种任务,能不能一一解释一下步骤。
例如,我如何从 Azure 连接到 CCv2?使用一些命令或安全文件等?
谢谢!
我们将在本例中讨论以下主题:
- 构建你的代码CI/CD(我们不会讨论这个)
- 在 SAP Commerce Cloud V2 中触发构建(并等待它完成)
- 在 D1 环境中触发部署(然后忘记它)
我们在 Atlassian Bitbucket Cloud 上托管我们的项目,那里提供的 CI/CD 解决方案称为 Bitbucket Pipelines。
第一步完成后,我们要(再次)构建,然后才在 ccv2 平台上,成功完成后触发部署到 D1 环境,使用我们自己的 CLI 工具 CI/CD。
先决条件
- SCCA 的 Docker 化版本 (SAP CX CLI Acorel)
- SAP API Bitbucket 管道中的令牌秘密变量
- bitbucket 管道中的 SAP 订阅 ID 秘密变量
下面是我们如何使用 scca 在 CCV2 平台上触发构建的示例:
- step: &cloud-build
clone:
enabled: false
options:
size: 1x
name: Trigger build SAP Cloud
image:
name: /sap-cx-cli-acorel:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
artifacts: # defining the artifacts to be passed to each future step.
- build-output.txt
script:
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
- scca build create --branch=$BITBUCKET_BRANCH --name=$(echo "$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER" | sed -e "s/^.*\///") > $BITBUCKET_CLONE_DIR/build-output.txt
让我们回顾一下我们在步骤的脚本部分中看到的内容。
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
这会将 scca 配置为使用正确的 API 令牌和订阅 ID。 接下来我们创建构建,这里还有很多事情要做。
- scca build create --branch=$BITBUCKET_BRANCH --name=$(echo "$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER" | sed -e "s/^.*\///") > $BITBUCKET_CLONE_DIR/build-output.txt
–branch=$BITBUCKET_BRANCH # 指定用于此构建的分支
–name=$(echo “$BITBUCKET_BRANCH-$BITBUCKET_BUILD_NUMBER” | sed -e “s/^.*///”) > # 设置将在此构建的云门户中显示的名称。
$BITBUCKET_CLONE_DIR/build-output.tx # 这个命令产生的输出保存在文件build-output.txt
我们存储此创建构建命令的输出的原因是我们需要将 SAP CCV2 生成的构建代码共享到下一步,即部署到 D1 环境。因为这是一个单独的步骤,所以使用的 docker 实例将被重置并忘记它之前完成的进度或任务。 scca 的 create build 命令对构建进度进行轮询,因此当构建完成时在 SAP 平台上完成。
您可以通过在命令后附加 –no-wait 来跳过此步骤。
现在我们已经准备好部署在 SAP Commerce Cloud v2 上,下面是一个关于如何使用 scca.
进行构建的示例部署步骤
- step: &cloud-deploy
clone:
enabled: false
options:
size: 1x
name: Deploy SAP Cloud D1
image:
name: <url to your docker image>/sap-cx-cli-acorel:latest
aws:
access-key: $AWS_ACCESS_KEY
secret-key: $AWS_SECRET_KEY
script:
- scca config set --api-token=$SAP_API_TOKEN --sap-subscription-id=$SAP_SUBSCRIPTION_ID
- scca build deploy --build-code=$(grep -Po '(?<=build\-code:\s).*' $BITBUCKET_CLONE_DIR/build-output.txt) --environment-code=$environment --no-wait
在脚本的第一行,我们再次设置配置,就像我们在前面讨论的创建构建步骤中所做的那样。 奇迹发生在第二行,我们在这里使用 scca build deploy 命令。
- scca build deploy --build-code=$(grep -Po '(?<=build\-code:\s).*' $BITBUCKET_CLONE_DIR/build-output.txt) --environment-code=$environment --no-wait
- –build-code,但使用 grep。这确保我们 grep 由 SAP 生成的构建代码并使用它来触发此构建。
- –environment-code 这是在Bitbucket 中指定为部署变量的变量。可以在此处找到有关该主题的更多信息
- –no-wait,这告诉 scca 不要等待部署完成。
完成此步骤后,bitbucket 认为部署成功。 您可能已经注意到我们没有指定任何更新策略和其他类似的东西,那是因为如果没有指定,scca 有一些默认值,但可以通过在部署命令中添加以下参数来覆盖。
--strategy= The way the deployment is handled [default: ROLLING_UPDATE]
--database-update-mode= DB update mode [default: UPDATE]
数据库更新模式的可能选项是NONE、UPDATE 和INITIALIZE 策略的可能选项是 ROLLING_UPDATE 和 RECREATE。
现在我们可以在 SAP Commerce Cloud v2 上构建和部署,剩下的就是安排夜间触发器。