【问题标题】:Difficults deploying circleci v.2 to AWS S3将 circleci v2 部署到 AWS S3 的困难
【发布时间】:2025-12-22 13:35:09
【问题描述】:

我是 CI/CD 方面的新手,几天来我一直在尝试将应用程序部署到我们在 AWS S3 的存储桶中。

我试过这个: https://medium.freecodecamp.org/how-to-set-up-continuous-deployment-to-aws-s3-using-circleci-in-under-30-minutes-a8e268284098

这个: https://circleci.com/docs/1.0/continuous-deployment-with-amazon-s3/

还有这个: https://medium.com/@zlwaterfield/circleci-s3-upload-dbffa0956b6f

但不知何故,我的尝试未能成功。 Circleci 说我的文件成功构建,但不知何故没有进行部署,也没有收到错误消息。我的 AWS 权限已设置,所以这项任务真的很令人沮丧。

这是我的最终文件:

jobs: 
  build: 
    docker: 
      - 
        image: "circleci/openjdk:8-jdk"
    environment: 
      JVM_OPTS: "-Xmx3200m"
      TERM: dumb
    steps: 
      - checkout
      - 
        restore_cache: 
          keys: 
            - "v1-dependencies-{{ checksum \"build.gradle\" }}"
            - v1-dependencies-
      - 
        run: "gradle dependencies"
      - 
        save_cache: 
          key: "v1-dependencies-{{ checksum \"build.gradle\" }}"
          paths: 
            - ~/.gradle
      - 
        run: "gradle test"
    working_directory: ~/repo
  deploy: 
    machine: 
      enabled: true
    steps: 
      - 
        run: 
          command: 'aws s3 sync ${myAppName}/ s3://${myBucketName} --region us-west-2'
          name: Deploy
    working_directory: ~/repo
version: 2

【问题讨论】:

    标签: amazon-s3 circleci circleci-2.0


    【解决方案1】:

    更新:我找到了办法。如果有人需要,这是我的解决方案:

     jobs: 
      build: 
        docker: 
          - 
            image: "circleci/openjdk:8-jdk"
        environment: 
          JVM_OPTS: "-Xmx3200m"
          TERM: dumb
        steps: 
          - checkout
          - 
            restore_cache: 
              keys: 
                - "v1-dependencies-{{ checksum \"build.gradle\" }}"
                - v1-dependencies-
          - 
            run: "gradle dependencies"
          - 
            save_cache: 
              key: "v1-dependencies-{{ checksum \"build.gradle\" }}"
              paths: 
                - ~/.gradle
          - 
            run: "gradle build"
          - 
            run: "gradle test"
          - run: 
              command: "sudo apt-get -y -qq install awscli"
              name: "Install awscli"
          - 
            run: 
              command: "aws configure list"
              name: "show credentials"
          - 
            run: 
              command: "aws s3 ls"
              name: "List all buckets"
          - 
            run: 
              command: "aws s3 sync /tmp/app/myProject/build/libs s3://my-aws-bucket"
              name: "Deploy to my AWS bucket"
            working_directory: /tmp/app
        version: 2
        workflows: 
          build-deploy: 
            jobs: 
              - 
                build-job: 
                  filters: 
                    branches: 
                      only: 
                        - /development.*/
                        - /staging.*/
          version: 2
    

    【讨论】:

    • 您可能想用您的解决方案更新您的答案。
    • 为了快速调试和测试,您可以使用 circleci CLI 在本地运行构建:circleci.com/docs/2.0/local-cli
    • @stmllr 尝试使用它,但不喜欢它,因为这个 circleci cli 不能很好地工作。相同的文件在circleci网站上运行完美,在本地客户端上不起作用。
    • @RafaelPaz cli 客户端有限制:缓存不起作用以及设置中的 ENV 变量不可用
    • @rafaelpaz 你是怎么解决的?请用解决方案更新您的答案。
    最近更新 更多