【问题标题】:Automated build with CodeBuild not working on AWS使用 CodeBuild 的自动构建无法在 AWS 上运行
【发布时间】:2019-12-16 13:26:33
【问题描述】:

我正在尝试使用我的 MERN 堆栈网络应用程序自动化构建过程。

目前,我使用 CodePipeline:

  1. 从 GitHub 获取我的代码作为源
  2. 使用 CodeBuild (Ubuntu 2.0) 运行构建
  3. 并将其部署到我的 Elastic BeanStalk 环境中。

第 1 步和第 3 步以前效果很好,但我总是必须在进行最后一次 git push 之前运行我的构建,这使得将所有构建文件都包含在代码审查中很烦人。

尝试使用 CodeBuild 后,即使客户端根据日志似乎构建完美,但前端似乎没有更新。

这是来自成功构建日志的 sn-p: 这就是我的buildspec.yml 文件的样子:

version: 0.2
phases:
  install:
    runtime-versions:
      nodejs: 10
  pre_build:
    commands:
      - echo "Entered pre-build phase"
  build:
    commands:
      - echo "Entered build phase"
      - yarn global add react-scripts
      - cd client && yarn install
      - yarn run build
  post_build:
    commands:
      - echo "Entered post-build phase"

以下是我的 CodeBuild 项目的其他一些设置:

  1. 来源:GitHub
  2. 环境:Ubuntu 2.0(最新)
  3. BuildSpec:使用文件(如上所列)
  4. 工件:无工件(我还检查了 Allow AWS CodeBuild to modify this service role so it can be used with this build project 作为服务角色权限)
  5. 日志:使用 CloudLogs

任何帮助将不胜感激!提前致谢。

【问题讨论】:

    标签: node.js amazon-web-services aws-codepipeline aws-codebuild


    【解决方案1】:

    您的构建规范中没有将构建文件导出到下一阶段(要部署到 Elastic Beanstalk 的文件)所需的“工件”部分。最后在你的构建规范中添加以下内容:

    artifacts:
      files:
        - '**/*'
      base-directory: ./client/build
    

    (假设您的构建文件位于构建目录的根目录中,如果不是,请调整。)

    【讨论】:

    • 感谢您的回复!我一定会试试的。我的构建文件是在./client/build 路径生成的,当我运行我的构建命令时,文件会自动在那里生成。 CodeBuild 最初将它们放置在哪里?这与我在本地开发环境中运行构建命令时发生的情况有何不同?
    • 我更新了答案中的代码以从正确的目录中读取工件。 CodeBuild 不会操作您的文件,build 命令将生成文件并将它们放置在他们希望的位置。 CodeBuild 可以从您指定的目录中读取您的工件。
    • 尝试添加基本目录,但仍然没有运气:( 我猜它与路径规范有关。CodeBuild 是从我的应用程序的根目录搜索路径,还是从我的构建文件夹的根目录?我不确定这是否有帮助,但是当我运行 echo $CODEBUILD_SRC_DIR 时,我得到了 /codebuild/output/src734170919/src 。这是 CodeBuild 放置我的构建文件的地方吗?
    • 要查找 CodeBuild 当前所在的当前目录,只需在任何阶段运行“pwd”即可。
    • 感谢您迄今为止的建议!我还编辑了我的问题以包含我的 CodeBuild 配置。我注意到Artifacts 上传位置是空白的。在我使用 CodeBuild 之前,只是将 SourceDeploy 与 Elastic Beanstalk 一起使用,这似乎工作正常。我还没有使用 S3 存储桶,我想知道在使用 CodeBuild 时这是否是必需品? (我也没有使用 Dockerized 镜像)
    猜你喜欢
    • 2020-02-22
    • 2018-06-22
    • 2019-11-01
    • 2021-12-13
    • 1970-01-01
    • 2018-09-10
    • 2019-05-06
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多