github动作共享工作区(yml配置)

时间:2019-11-06 20:57:05

标签: github continuous-integration github-actions

如果我可以运行如下所示的工作流程,那将很酷-也许我只是缺少GitHub操作中的简单配置,但是我不知道如何在使用{{1 }},以指定在其他作业成功完成后可以运行的作业。

job.needs

我已阅读Github actions share workspace/artifacts between jobs?,但我不想上载name: Node CI on: [push] env: CI: true jobs: install: runs-on: ubuntu-latest strategy: matrix: node-version: [12.x] steps: - uses: actions/checkout@v1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: install node_modules run: yarn install lint: runs-on: ubuntu-latest needs: [install] steps: - name: eslint run: yarn lint build: needs: [install] runs-on: ubuntu-latest steps: - name: yarn build run: yarn build test: needs: [install, build] runs-on: ubuntu-latest steps: - name: jest run: yarn test --coverage 并下载每一步。

1 个答案:

答案 0 :(得分:1)

据我所知,动作工作空间仅在同一作业的步骤之间共享。您无法在作业之间共享文件系统。

在作业之间上传/下载工件是一种解决方案。您还可以尝试使用新的actions/cache操作来缓存node_modules目录,并在后续作业中将其还原。

- uses: actions/cache@v1
  with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: |
      ${{ runner.os }}-node-

请注意,当前存在一些相当严格的限制,因此如果您的node_modules目录很大,则可能无法使用。

  

单个缓存限制为400MB,存储库最多可以包含2GB缓存。达到2GB限制后,将根据上次访问缓存的时间驱逐较早的缓存。上周未访问的缓存也将被驱逐。