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

wro*_*zda 8 github-actions

我刚刚开始使用 GitHub Actions,并尝试正确配置作业。现在我有一个工作 - build 来设置 python 并安装依赖项,我也有一个行为测试的工作,它需要依赖项来运行。当我进行测试并构建一项工作时,一切都工作正常。但我想在不同的工作中进行构建和测试。但是当我在此配置中运行它们时,出现错误behave: command not found。我安装了 Behave in requiredx.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
Run Code Online (Sandbox Code Playgroud)

Krz*_*tof 1

正如 riQQ 和文档所说

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

就您而言,最好是在一项工作中构建和测试并完成这两项工作。将测试放在单独的工作中可能是一个很好的举措,但这需要以下两个之一:

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