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