Azure DevOps Pipelines 运行 Node.js 脚本作为一个步骤

Kas*_*spi 5 azure node.js azure-devops

将 Node.js 脚本作为 Azure DevOps Pipeline 中的一个步骤(发布步骤)运行的最简单方法是什么?

我尝试了几种方法,似乎这并不像我希望的那样简单。我正在寻找一个通用的方法想法。

我的最后一次尝试是将脚本添加到 tools/script.js 下的源存储库中。我需要在发布管道中运行它(构建后),从那里我无法直接访问 repo,所以我添加了整个 repo 作为第二个构建工件。现在我可以从发布代理访问脚本文件,但我还没有找到实际运行脚本的方法,一般来说似乎没有在代理上运行 Node.js 脚本的选项。

4c7*_*b41 8

选项 1:可视化管道编辑器

1) 创建要在构建/发布步骤中运行的脚本文件

您可以将该文件添加到您的 Azure 项目存储库,例如tools/script.js,将其运行所需的任何节点模块添加到您的 package.json,例如:

npm install --save-dev <module>
Run Code Online (Sandbox Code Playgroud)

提交和推送,这样你的更改就在线,Azure 可以看到它们。

2) 将您的 repo 添加为发布管道的工件

对于构建管道,您可以跳过此步骤,因为它们已经可以访问存储库。

在此处输入图片说明

在此处输入图片说明

3) 编辑您的发布管道以确保环境

添加一个步骤以确保代理上的 Node 版本正确(Node.js 工具安装程序):

在此处输入图片说明

添加一个步骤来安装所有必需的节点模块 (npm):

在此处输入图片说明

4) 添加您的节点脚本步骤

使用 Bash 步骤运行您的节点脚本,确保工作目录设置为项目的根目录(package.json 所在的位置):

在此处输入图片说明

选项 2:YAML

您有一个 script\shell 步骤,您可以在其中执行自定义命令,只需使用它即可实现目标。代理上安装了节点,您可能需要做的一件事是使用该pick node version步骤为您的脚本使用正确的节点版本

例子:

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

steps:
- checkout: self
  persistCredentials: true
  clean: true

- bash: |
    curl $BEDROCK_BUILD_SCRIPT > build.sh
    chmod +x ./build.sh
  displayName: My script download
  env:
    BEDROCK_BUILD_SCRIPT: https://url/yourscript.sh

- task: ShellScript@2
  displayName: My script execution
  inputs:
  scriptPath: build.sh
Run Code Online (Sandbox Code Playgroud)