web-dev-qa-db-ja.com

CircleCi 2.0はサブディレクトリを操作します

springbootチュートリアルプロジェクトをCircleCiと統合しようとしています。

私のプロジェクトはGithubリポジトリ内のサブディレクトリ内にあり、CircleCiから次のエラーを受け取ります。

目標を実行するにはプロジェクトが必要ですが、このディレクトリ(/ home/circleci/recipe)にPOMはありません。正しいディレクトリからMavenを呼び出したことを確認してください。

私のプロジェクトがサブディレクトリ内にあることをcircle-ciに伝える方法がわかりません。 「レシピ」内でcdを試すのと同様に、いくつかのことを試しましたが、うまくいきませんでした。

私のプロジェクトの構造は次のとおりです。

Spring-tutorials
 |
 +-- projectA
 |    
 +-- recipe
 |   | +--pom.xml

これが私のconfig.yml

# Java Maven CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-Java/ for more details
#
version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/openjdk:8-jdk

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    working_directory: ~/recipe

    environment:
      # Customize the JVM maximum heap limit
      MAVEN_OPTS: -Xmx3200m

    steps:
      - checkout
      - run: cd recipe/; ls -la; pwd;

      # Download and cache dependencies
      - restore_cache:
          keys:
          - recipe-{{ checksum "pom.xml" }}
          # fallback to using the latest cache if no exact match is found
          - recipe-

      - run: cd recipe; mvn dependency:go-offline

      - save_cache:
          paths:
            - ~/recipe/.m2
          key: recipe-{{ checksum "pom.xml" }}

      # run tests!
      - run: mvn integration-test
14
Kevin Amiranoff

私は問題を修正することができました。私はの組み合わせを信じています

working_directory: ~/spring-tutorial/recipe

との

  - checkout:
      path: ~/spring-tutorial

動作させた。

これが私の作業config.yml

# Java Maven CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-Java/ for more details
#
version: 2
jobs:
  build:
    working_directory: ~/spring-tutorial/recipe
    docker:
      # specify the version you desire here
      - image: circleci/openjdk:8-jdk

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    environment:
      # Customize the JVM maximum heap limit
      MAVEN_OPTS: -Xmx3200m

    steps:
      - checkout:
          path: ~/spring-tutorial

      # Download and cache dependencies
      - restore_cache:
          keys:
          - recipe-{{ checksum "pom.xml" }}
          # fallback to using the latest cache if no exact match is found
          - recipe-

      - run: mvn dependency:go-offline

      - save_cache:
          paths:
            - ~/.m2
          key: recipe-{{ checksum "pom.xml" }}

      # run tests!
      - run: mvn integration-test
27
Kevin Amiranoff

誰かがnpmコマンドを実行しようとして、cdが期待どおりに動作しない場合、つまり:

cd subdir && npm run command

Npmの--prefixオプションを使用できます。

- run:
      name: Run start command in recipe folder
      command: npm --prefix ./recipe run start

# then in same file
- run:
      name: Run test command in app folder
      command: npm --prefix ./app run test
2

少し混乱したので、もっと明確にしたい

作業スペース、この場合はそのサブフォルダーを定義するためにサブディレクトリを構築するための重要なソリューションは、このように定義されます

 working_directory: ~/repo/sub_folder

とチェックアウト

- checkout:
     path: ~/repo

このように

# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/node:7.10

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/mongo:3.4.4

    working_directory: ~/repo/sub_folder

    steps:
      - checkout:
            path: ~/repo

      # Download and cache dependencies
      - restore_cache:
          keys:
            - v1-dependencies-{{ checksum "package.json" }}
            # fallback to using the latest cache if no exact match is found
            - v1-dependencies-

      - run: npm install

      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package.json" }}

      # run tests!
      - run: npm test
1
Mina Fawzy