【问题标题】:Azure DevOps ThirdParty Tools for build / Deployment用于构建/部署的 Azure DevOps 第三方工具
【发布时间】:2020-02-10 20:20:19
【问题描述】:
  1. 列表项

    管道:
    默认值:
    - 步骤:
    名称:将更改推送到 Commerce Cloud
    脚本:
    - dcu --putAll $OCCS_CODE_LOCATION --node $OCCS_ADMIN_URL --applicationKey $OCCS_APPLICATION_KEY
    - 步骤:
    名称:发布更改 Live Storefront
    图片:Python 3.5.1
    脚本:
    python publishDCUAuthoredChanges.py -u $OCCS_ADMIN_URL -k $OCCS_APPLICATION_KEY

环境变量:

  • $OCCS_CODE_LOCATION:所有 OCCS 代码的位置路径
  • $OCCS_ADMIN_URL:目标 Commerce Cloud 实例上管理界面的 URL
  • $OCCS_APPLICATION_KEY:用于登录目标 Commerce Cloud 管理界面的应用程序密钥

所以我想使用 Azure Dev Repository 来 CI / CD。 如果您看到我在上面的代码块中指定了 - 在两个任务中指定了 dcu 和 python 代码。

dcu 是 nodejs 第三方 oracle 工具,需要用于将代码迁移到云系统。我想知道如何在 azure dev ops 中使用该工具,

我想调用 REST api 以发布更改的第二个 python(或)nodejs。

那么在哪里放置这些文件以及我们如何调用它。

****************更新**************

我托管了自池代理并能够访问系统。 刚开始执行基本的 bash 代码,但最终会遇到两个问题 -

1) git 从存储库中提取文件到_work/1/s,不确定该路径是如何确定的。我怎样才能改变那个位置 2) 我对正确的路径执行了“pwd”,但在“dcu”命令中失败。我尝试使用 npm 和其他一些命令失败了。但是像 mkdir , rmdir 它会从所需的路径中正确创建和删除文件夹。当我从系统手动尝试终端中的 'dcu' cmd 时,它可以正常工作。

【问题讨论】:

    标签: bash azure-devops git-bash


    【解决方案1】:

    您可以按照以下步骤在 Azure 管道中使用 DCU 工具和 python。

    1,创建一个 azure git repo 以包含 dcu zip 文件和您的 .py 文件。您可以按照this thread中的步骤创建一个azure git repo并将本地文件推送到azure repo。

    2、创建天蓝色构建管道。请检查 here 以创建 yaml 管道。 Here 是一个很好的入门教程。

    要创建经典 UI 管道,请在管道设置向导中选择使用经典编辑器,然后选择从空作业开始以从空管道开始,然后添加您自己的步骤。(我将在下面的示例中使用经典的 UI 管道。)

    3、点击“+”并搜索Extract files task,解压DCU zip文件。单击 目标文件夹 字段上的 3dots 为提取的 dcu 文件选择目标文件夹。例如。 $(agent.build 目录)。请查看我在this thread 中的回答,了解有关预定义变量的更多信息

    4、点击“+”添加powershell任务。在屏幕截图中运行以下脚本以安装 dcu 并运行 dcu 命令。对于environment variables(如$OCCS_CODE_LOCATION),请单击下面屏幕截图中的变量选项卡来定义它们

    cd  $(agent.builddirectory)      #the folder where the unzipped dcu files reside. eg. $(agent.builddirectory)
    npm install -g
    .\dcu.cmd --putAll $(OCCS_CODE_LOCATION) --node $(OCCS_ADMIN_URL) --applicationKey $(OCCS_APPLICATION_KEY)
    

    5、添加使用python版本任务来定义一个python版本来执行你的.py文件。 6、添加Python脚本任务来运行你的.py文件。点击 Script path 字段上的 3dots 找到您的 publishDCUAuthoredChanges.py 文件(此 py 文件和 dcu zip 文件已在上述步骤 1 中推送到 azure git repo)。

    您应该能够在 azure devops 管道中运行上述问题的脚本。

    更新:

    _work/1/s 是代理的默认工作文件夹。你不能改变它。尽管有一些方法可以更改从 git 克隆源代码的位置,但任务的工作目录仍然来自默认文件夹。

    但是,您可以更改任务中的工作目录。还有predefined variables可以用来指代代理商中的地方。对于以下示例:

    $(Agent.BuildDirectory) is mapped to c:\agent_work\1
    %(Build.ArtifactStagingDirectory) is mapped to c:\agent_work\1\a
    $(Build.BinariesDirectory) is mapped to c:\agent_work\1\b
    $(Build.SourcesDirectory) is mapped to c:\agent_work\1\s
    

    _temp 文件夹中的 .sh 脚本由包含 bash 任务中脚本的代理自动生成。

    对于上述 dcu 命令未找到错误。您可以尝试将 dcu 命令路径添加到本地计算机环境变量的 系统变量 路径。 (代理作业找不到用户变量中的路径,代理使用不同的用户帐户连接到本地计算机)

    或者您可以在 bash 任务中使用 dcu 命令的物理路径。例如,假设本地计算机上 c:\dcu\dcu.cmd 中的 dcu.cmd。然后在 bash 任务中使用下面的脚本来运行 dcu 命令。 c:/dcu/dcu.cmd --putAll ...

    【讨论】:

    • 谢谢,伙计。你能纠正我吗.. 我们可以通过使用自托管代理跳过 DCU 文件提取步骤,以便我们解压缩和设置一次,这样每次它都会使用相同的 DCU 解压缩文件。通过上述过程,每当签入发生时,它将解压缩 DCU 并启动该过程。
    • 是的,您可以跳过自托管代理上的解压缩任务。您甚至不需要使用自托管代理将 DCU 文件推送到 azure git repo。可以直接在powershell任务中使用dcu命令(需要指向dcu.cmd的物理路径,例如c:/{physical path}/dcu.cmd --putAll ...)。
    • 非常感谢,您的参考非常有帮助。我在初始编辑中又更新了一个问题。
    • 嗨@user2993735我更新了上面的答案,请检查一下。
    • 再次感谢。您能告诉我如何确保我们只能从存储库下载已更改的更改。
    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多