Azure DevOps发布管道中的Node.js程序?

时间:2018-12-07 08:29:23

标签: azure npm azure-devops yaml

我刚刚开始在Node.js和Azure DevOps中进行编程。我尝试运行一个简单的Node.js示例,以查看Azure DevOps中的工作方式,但是遇到一个错误,并且我不知道该如何解决。 我有从Github(File1.js)导入的文件:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log('Server running at http://${hostname}:${port}/');
});

在我的azure-pipelines.yml中,我有以下代码:

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

pool:
  vmImage: 'Ubuntu 16.04'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '11.x'
  displayName: 'Install Node.js'

- task: Npm@1
  displayName: 'npm install'
  inputs:
    command: install

- script: npm compile 'File1.js'

我知道.yml文件的最后一行会产生错误,但是我不知道如何建立与.js文件的连接才能运行它。如果我删除该行,则一切正常,但是...它没有运行文件...请提供任何解决方案/提示的帮助。他们将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:2)

不幸的是,我不是节点专家,所以我不太了解您要做什么,但是总的来说,工作流程是这样的:

  1. 提交代码
  2. 开始构建,运行compile \ tests。将所有内容打包成档案或某种形式的包
  3. 版本开始将构建结果推送到将运行代码并为客户端提供服务的服务器。

我有一个用于nodejs的示例管道。

pool:
  vmImage: 'Ubuntu 16.04'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '8.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'

- script: |
    zip -r result.zip . -x .git/**\* > /dev/null
  displayName: 'package results'

- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.SourcesDirectory)/result.zip' 
    artifactName: 'drop' 
  displayName: 'upload artifacts'