具有Elixir CircleCI配置的纱线:找不到package.json文件

时间:2018-08-21 19:41:58

标签: docker elixir package.json yarnpkg circleci

我在CircleCI上具有以下配置(my_cms / .circleci / config.iml):

version: 2
jobs:
  build_node:
    working_directory: ~/my_cms/apps/my_cms_web/assets
    docker:
      - image: node:8.9
    environment:
      - MIX_ENV: "test"
    steps:
      - checkout
      - run: yarn install
      - run: yarn test

  build_elixir:
    working_directory: ~/my_cms
    docker:
      - image: elixir:1.5.2
      - image: postgres:9.6.3
    environment:
      - MIX_ENV: "test"
    steps:
      - checkout
      - run: mix deps.get
      - run:
          command: mix deps.compile
          working_directory: ~/my_cms/apps/my_cms_core
      - run:
          command: mix deps.compile
          working_directory: ~/my_cms/apps/my_cms_web

workflows:
  version: 2
  build:
    jobs:
      - build_node
      - build_elixir

这不是完整的清单,但我认为它足以解决问题。 CircleCI成功完成了build_elixir工作。但是以下错误停止了build_node的工作:

  

!/ bin / bash -eo pipefail
  纱线测试
纱线运行v1.3.2
错误在以下位置找不到package.json文件   “ / root / gem_cms / apps / gem_cms_web / assets”
info访问   退出,代码为1

我在仓库中有以下文件:

  • my_cms / mix.exs
  • my_cms / apps / my_cms_core / mix.exs
  • my_cms / apps / my_cms_web / mix.exs
  • my_cms / apps / my_cms_web / assets / package.json

yarnmy_cms/apps/my_cms_web/assets文件夹中本地工作,没有任何问题,但是我不能让他通过CircleCI进行远程工作。我哪里错了?

2 个答案:

答案 0 :(得分:1)

我将首先使用git ls-files | grep package.json检查文件是否确实在git中。一旦确认它在git中,然后尝试将一些调试命令添加到circle配置中。

您可能需要尝试一些操作:ls -lpwd

我还注意到错误消息中的目录与您的配置不匹配,这似乎很奇怪。该错误消息来自较早的版本吗?该命令也不匹配。

答案 1 :(得分:0)

经过一些尝试,以下节点构建作业的配置使我成功构建:

version: 2
jobs:
  build_node:
    working_directory: ~/my_cms
    docker:
      - image: node:8.9
    environment:
      - MIX_ENV: "test"
    steps:
      - checkout
      - run:
          name: Install Node Packages
          command: yarn install
          path: apps/my_cms_web/assets
      - run:
          name: Run Tests
          command: yarn test
          path: apps/my_cms_web/assets
  ...