我开始使用托管在 github 上的 node.js 应用程序开发我的第一个 CodePipeline。我想创建如下简单的管道:
- Github repo 触发管道
- 测试环境(Elastic Beanstalk 应用程序)由 S3 .zip 文件构建
- 测试环境运行
npm test
和npm lint
- 如果一切正常,则构建 QA env(另一个 EB 应用程序)
对于上面的管道,我在.config
目录下创建了文件.ebextensions
:
- 我想
npm install --production
用于 QA 和 PROD 环境,但似乎 EC2 找不到节点或 npm。我检查了临时文件夹中默认触发的日志和 EC2npm 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
- 是否可以在没有詹金斯的情况下运行单元测试和 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
我NODE_ENV
为每个 Elastic Beanstalk 实例设置。不管每次我的管道因为什么而失败时我会做什么npm is not recognized
,但是如果我使用 node.js 运行 64 位 Amazon Linux 怎么可能呢?更重要的是,我在 AWS Docs 中找不到任何关于带有 node.js 的 CodePipeline 的示例。提前致谢!