咨询:在AWS CodeBuild的buildspec.yml中添加NPM测试命令的位置
在AWS CodeBuild中添加测试命令并终止失败构建
合适的阶段选择
把npm run test放在pre_build阶段的末尾是最优选择:
- install阶段已经完成所有依赖安装,包括测试所需包
- pre_build阶段已配置好环境变量和PM2配置文件,测试环境完全就绪
- 能在启动PM2的正式构建操作前提前发现问题,避免无用的后续步骤
修改后的buildspec文件
version: 0.2 env: parameter-store: ECOSYSTEM_CONFIG: "Ecosystem-config" ENV: "backend" phases: install: runtime-versions: nodejs: 14 commands: - npm install - npm install pm2 -g - npm install nodemon -g pre_build: commands: - echo $ENV > .env.dev - echo $ECOSYSTEM_CONFIG > ecosystem.config.js - npm run test # 添加测试命令,失败则自动终止构建 build: commands: - pm2 start ecosystem.config.js artifacts: files: - '**/*' cache: paths: - node_modules/
测试失败终止构建的说明
AWS CodeBuild默认监控每个命令的退出码:
- 若
npm run test执行失败(返回非0退出码),CodeBuild会立刻终止整个构建流程,不会执行后续阶段命令 - 无需额外配置,主流测试框架(如Jest、Mocha)默认会在测试失败时返回非0退出码
内容的提问来源于stack exchange,提问作者hamza malik
相关产品推荐
相关产品推荐

