如何共享GitHub Actions作业之间的依赖关系?

时间:2020-10-15 10:58:34

标签: github-actions

我只是从GitHub Actions开始,我正在尝试正确配置作业。现在我有一个工作-建立安装python并安装依赖项的工作,我还有一个具有行为测试的工作,也需要运行依赖项。 当我进行测试并完成一项工作时,一切正常。但是我想在单独的工作中进行构建和测试。但是,当我在此配置中运行它们时,出现错误behave: command not found。我将Behave安装在requirex.txt文件中。我究竟做错了什么?通常可以进行这种配置吗?

name: CI test

on:
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.8
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

  cc_test:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Run cc test
        run: |
          behave --no-capture --no-skipped -t guest -t cc -D driver=BROWSERSTACK features

1 个答案:

答案 0 :(得分:1)

如riQQ和documentation所说

作业是在同一跑步者上执行的一组步骤。默认情况下,具有多个作业的工作流程将并行运行这些作业。您还可以配置工作流以按顺序运行作业。例如,一个工作流可以有两个顺序的作业来构建和测试代码,其中测试作业取决于构建作业的状态。如果构建作业失败,则测试作业将不会运行。

在您的情况下,最好是构建并测试一项工作,并在一项工作中同时完成这两项工作。将测试放在单独的工作中可能是一个不错的选择,但这将需要以下两项之一:

  • 在上一步中准备可测试的程序包并共享(仍然可能需要安装一些依赖项)
  • 签出代码,安装依赖项,构建代码并运行测试,这意味着您需要重复上一份工作的所有步骤