在CircleCI中无法触发带有“未运行”指示的构建

时间:2019-12-14 02:19:04

标签: continuous-integration circleci

我计划将现有的CI迁移到CircleCI 2,以支持docker。一旦我尝试触发构建,就会显示以下内容:

enter image description here

我还在https://circleci.com/sunset1-0/

处检查了以下警报中指示的步骤。
  

服务警报:您的项目引用CircleCI 1.0或没有   组态。 CircleCI 1.0和没有配置文件的项目   不再受支持。您必须更新项目才能使用CircleCI   2.0配置继续。了解更多信息。

有什么我想念的吗?

下面是我的.circleci / config.yml

version: 2 # use CircleCI 2.0
jobs: # a collection of steps
  build: # runs not using Workflows must have a `build` job as entry point
    parallelism: 3 # run three instances of this job in parallel
    docker: # run the steps with Docker
      - image: circleci/ruby:2.4.2-jessie-node # ...with this image as the primary container; this is where all `steps` will run
        environment: # environment variables for primary container
          BUNDLE_JOBS: 3
          BUNDLE_RETRY: 3
          BUNDLE_PATH: vendor/bundle
          RAILS_ENV: test
      - image: mysql:5.7 # database image
        environment: # environment variables for database
          MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    steps: # a collection of executable commands
      - checkout # special step to check out source code to working directory

      - run:
          name: setup
          command: |
            curl -sL https://deb.nodesource.com/setup_10.x | bash \
            && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
            && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
      - run:
          name: Dependencies
          command: |
            apt-get update && \
            DEBIAN_FRONTEND=noninteractive apt-get install -y \
            build-essential mysql-client nodejs yarn && \
            apt-get clean && \
            rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


      # Which version of bundler?
      - run:
          name: Which bundler?
          command: bundle -v

      # Restore bundle cache
      # Read about caching dependencies: https://circleci.com/docs/2.0/caching/
      - restore_cache:
          keys:
            - rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
            - rails-demo-bundle-v2-

      - run: # Install Ruby dependencies
          name: Bundle Install
          command: bundle check --path vendor/bundle || bundle install --deployment

      # Store bundle cache for Ruby dependencies
      - save_cache:
          key: rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
          paths:
            - vendor/bundle

      # Only necessary if app uses webpacker or yarn in some other way
      - restore_cache:
          keys:
            - rails-demo-yarn-{{ checksum "yarn.lock" }}
            - rails-demo-yarn-

      - run:
          name: Yarn Install
          command: yarn install --cache-folder ~/.cache/yarn

      # Store yarn / webpacker cache
      - save_cache:
          key: rails-demo-yarn-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn

      - run:
          name: Wait for DB
          command: dockerize -wait tcp://localhost:5432 -timeout 1m

      - run:
          name: Database setup
          command: bin/rails db:schema:load --trace

      - run:
          name: Run rspec in parallel
          command: |
            bundle exec rspec --profile 10 \
                              --format RspecJunitFormatter \
                              --out test_results/rspec.xml \
                              --format progress \
                              $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)

      # Save test results for timing analysis
      - store_test_results: # Upload test results for display in Test Summary: https://circleci.com/docs/2.0/collect-test-data/
          path: test_results
      # See https://circleci.com/docs/2.0/deployment-integrations/ for example deploy configs

1 个答案:

答案 0 :(得分:0)

为了进行构建,您的config.yml文件必须位于项目目录根目录下的.circle ci 文件夹中。

您发布了一个很好的描述。感谢您的代码。版本配置看起来不错。但是,您写道,您的配置当前位于.circle / config.yml(请注意,在圆结束时缺少 ci

将config.yml移至.circleci / config.yml,构建应继续进行。 (目前,构建失败,因为它没有配置

E