web-dev-qa-db-fra.com

CircleCi 2.0 fonctionne avec un sous-répertoire

J'essaie d'intégrer mon projet de tutoriel springboot avec CircleCi.

Mon projet se trouve dans un sous-répertoire à l'intérieur d'un référentiel Github et j'obtiens l'erreur suivante de CircleCi.

L'objectif requiert l'exécution d'un projet mais il n'y a pas de POM dans ce répertoire (/ home/circleci/recette). Veuillez vérifier que vous avez appelé Maven à partir du bon répertoire.

Je ne sais pas comment dire à circle-ci que mon projet se trouve dans un sous-répertoire. J'ai essayé deux ou trois choses, ainsi que cd à l'intérieur de la "recette", mais cela ne fonctionne pas ou ne me semble pas correct.

Voici la structure de mon projet:

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

Voici mon 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

J'ai réussi à résoudre le problème. Je crois que la combinaison de

working_directory: ~/spring-tutorial/recipe

et de

  - checkout:
      path: ~/spring-tutorial

l'a fait fonctionner.

Voici mon travail 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

Si quelqu'un essaie d'exécuter la commande npm et que cd ne fonctionne pas comme prévu, c'est-à-dire:

cd subdir && npm run command

Vous pouvez utiliser --prefix option de npm.

- 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
Artur Aleksanyan

Je me suis un peu perdu, alors je voudrais clarifier davantage

la solution clé pour construire un sous-répertoire pour définir votre espace de travail, dans ce cas, son sous-dossier donc il sera défini comme ceci

 working_directory: ~/repo/sub_folder

et commander à

- checkout:
     path: ~/repo

être comme ça

# 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