CircleCi 2.0 在子目录中处理项目
CircleCi 2.0 working with project inside the subdirectory
我正在尝试将我的 springboot
教程项目与 CircleCi 集成。
我的项目位于 Github 存储库的子目录中,我从 CircleCi 收到以下错误。
Goal requires a project to execute but there is no POM in this
directory (/home/circleci/recipe). Please verify you invoked Maven
from the correct directory.
我不知道如何告诉 circle-ci 我的项目在子目录中。我尝试了一些方法,并尝试在 'recipe' 中 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
我设法解决了这个问题。我相信
的组合
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
如果有人尝试 运行 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
我有点困惑所以我想澄清一下
构建子目录以定义您的工作的关键解决方案-space,在这种情况下,它的子文件夹将像这样定义
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
我正在尝试将我的 springboot
教程项目与 CircleCi 集成。
我的项目位于 Github 存储库的子目录中,我从 CircleCi 收到以下错误。
Goal requires a project to execute but there is no POM in this directory (/home/circleci/recipe). Please verify you invoked Maven from the correct directory.
我不知道如何告诉 circle-ci 我的项目在子目录中。我尝试了一些方法,并尝试在 'recipe' 中 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
我设法解决了这个问题。我相信
的组合 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
如果有人尝试 运行 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
我有点困惑所以我想澄清一下
构建子目录以定义您的工作的关键解决方案-space,在这种情况下,它的子文件夹将像这样定义
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