新的GitHub操作在空文件夹中运行

时间:2019-08-15 11:42:13

标签: github github-actions github-ci

我正在使用新的GitHub动作,以下工作流程的想法是在打开或同步pr时运行,它应该首先签出并安装依赖项,然后再运行少量的yarn脚本

name: PR to Master
on: 
  pull_request:
    branches:
    - master
jobs:
  # Synchronize or Opened
  synchronized_or_opened:
    name: Synchronize or Opened
    runs-on: ubuntu-latest
    steps:
    - uses: actions/bin/filter@master
      with:
        args: action 'opened|synchronize'
  # Add Labels
  add_labels:
    name: Add Labels
    runs-on: ubuntu-latest
    steps:
    - uses: actions/labeler@v2
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}
    needs: synchronized_or_opened
  # Checkout
  checkout:
    name: Checkout
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    needs: synchronized_or_opened
  # Install Dependencies
  install_dependencies:
    name: Install Dependencies
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - run: yarn dep:install-npm
    needs: checkout
  # Typecheck
  typecheck:
    name: Typecheck
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - run: yarn typecheck
    needs: install_dependencies
  # Prettier
  prettier:
    name: Prettier
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - run: yarn prettier
    needs: install_dependencies
  # ESLint
  eslint:
    name: ESlint
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - run: yarn eslint
    needs: install_dependencies
  # Danger
  danger:
    name: Danger
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - run: yarn danger
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    needs: install_dependencies

目前它已成功进入结帐阶段,但是一旦安装作业运行,我将收到以下错误消息

  

错误无法在以下位置找到package.json文件   “ / home / runner / work / myRepo / myRepo”

通过此签出判断是失败还是我在错误的文件夹中?

1 个答案:

答案 0 :(得分:2)

Workflow syntax docs中所述:

  

每个作业都在运行时指定的虚拟环境的新实例中运行。

根据我在这里看到的内容,您正在执行与其他人完全独立的结帐步骤。这样做不会以任何方式影响其他作业。实际上应该在执行npm CLI命令的那些作业中 内定义它。

以下是您的其中一项工作的样子的示例:

jobs:
  # (...) Other jobs
  # Install Dependencies
  install_dependencies:
    name: Install Dependencies
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
    - uses: actions/checkout@master
    - run: yarn dep:install-npm
    needs: checkout
  # (...) Other jobs

GitHub starter workflow templates中有一些常规示例。