【发布时间】:2017-06-22 15:37:57
【问题描述】:
我开始使用托管在 github 上的 node.js 应用程序开发我的第一个 CodePipeline。我想创建如下简单的管道:
- Github repo 触发管道
- 测试环境(Elastic Beanstalk 应用程序)由 S3 .zip 文件构建
- 测试环境运行
npm test和npm lint - 如果一切正常,则构建 QA env(另一个 EB 应用)
对于上面的管道,我在.ebextensions 目录下创建了.config 文件:
- 我想将
npm install --production用于 QA 和 PROD 环境,但似乎 EC2 找不到节点或 npm。我检查了日志,EC2 默认在临时文件夹中触发npm install,然后它在我的第一个脚本上失败,并且应用程序目录始终为空。
container_commands:
install-dev:
command: "npm install"
test: "[ \"$NODE_ENV\" = \"TEST\" ]"
ignoreErrors: false
install-prod:
command: "npm install --production"
test: "[ \"$NODE_ENV\" != \"TEST\" ]"
ignoreErrors: false
- 是否可以在没有 jenkins 的情况下运行单元测试和 linting?
container_commands:
lint:
command: "npm run lint"
test: "[ \"$NODE_ENV\" = \"TEST\" ]"
ignoreErrors: false
test:
command: "npm run test"
test: "[ \"$NODE_ENV\" = \"TEST\" ]"
ignoreErrors: false
我为每个 Elastic Beanstalk 实例设置了 NODE_ENV。不管每次我的管道因为npm is not recognized 而失败时我会怎么做,但是如果我使用 node.js 运行 64 位 Amazon Linux 怎么可能呢?更重要的是,我在 AWS Docs 中找不到任何关于带有 node.js 的 CodePipeline 的示例。提前致谢!
【问题讨论】:
标签: node.js amazon-ec2 amazon amazon-elastic-beanstalk aws-codepipeline