You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CircleCI自动部署至Amazon S3失败,求排查方案

问题根源:你用了CircleCI 2.0已废弃的配置字段

你的部署步骤完全没执行的核心原因是:CircleCI 2.0已经彻底弃用了顶级的deployment字段,这个字段是CircleCI 1.0的语法,所以你写的这部分配置根本不会被CI系统识别,自然不会触发部署流程。

接下来给你两种修复方案,按需选择:

方案一:把构建和部署合并成一个Job(适合简单场景)

直接把部署步骤加到build Job的末尾,同时用workflows来控制触发分支:

version: 2
jobs:
  build-and-deploy:
    docker:
      - image: circleci/node:7.10
    steps:
      - checkout
      - run: npm install
      - run: npm run build
      # 部署到S3,注意修正桶地址
      - run: aws s3 sync build/ s3://www.typing-coacher.net --delete
workflows:
  version: 2
  build-deploy:
    jobs:
      - build-and-deploy:
          filters:
            branches:
              only: circle-config-test # 仅在目标分支触发

方案二:拆分构建和部署为独立Jobs(更灵活)

如果需要更精细的控制(比如手动触发部署、构建成功后才部署),可以把流程拆成两个Job,用工作区传递构建产物:

version: 2
jobs:
  build:
    docker:
      - image: circleci/node:7.10
    steps:
      - checkout
      - run: npm install
      - run: npm run build
      # 把build目录保存到工作区,供部署Job使用
      - persist_to_workspace:
          root: .
          paths:
            - build
  deploy:
    # 用预装AWS CLI的镜像更省心,避免手动安装
    docker:
      - image: circleci/aws-cli
    steps:
      # 加载之前保存的build目录
      - attach_workspace:
          at: .
      - run: aws s3 sync build/ s3://www.typing-coacher.net --delete
workflows:
  version: 2
  build-then-deploy:
    jobs:
      - build:
          filters:
            branches:
              only: circle-config-test
      - deploy:
          requires:
            - build # 只有构建成功才会执行部署

几个必须注意的细节

  1. 修正S3桶地址:你之前的命令里写了完整的网站URL,这是错误的!S3同步命令只需要桶名,比如s3://www.typing-coacher.net(你的网站URL对应的桶名就是www.typing-coacher.net)。
  2. 配置AWS权限:在CircleCI项目的「Project Settings > Environment Variables」中添加AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,这两个密钥需要拥有S3桶的读写权限(建议给最小权限:允许s3:PutObject、s3:DeleteObject、s3:ListBucket)。
  3. 确保AWS CLI可用:如果用circleci/node:7.10镜像,可能需要手动安装AWS CLI,加一步run: sudo apt-get update && sudo apt-get install -y awscli;或者直接用circleci/aws-cli镜像(方案二里用的就是这个),省去安装步骤。

调整好配置后,重新触发构建,部署步骤就会正常出现在控制台里了。

内容的提问来源于stack exchange,提问作者LiranC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:29:16