【问题标题】:How to share the dependencies between GitHub Actions jobs?如何共享 GitHub Actions 作业之间的依赖关系?
【发布时间】:2020-10-15 10:58:34
【问题描述】:

我刚从 GitHub Actions 开始,我正在尝试正确配置作业。现在我有一份工作 - build 设置 python 并安装依赖项,我也有一份需要运行依赖项的行为测试工作。 当我进行测试并完成一项工作时,一切正常。但我想在不同的工作中进行构建和测试。但是当我在这个配置中运行它们时,我得到了错误behave: command not found。我在requirementx.txt 文件中安装了Behave。我究竟做错了什么?这种配置一般可以吗?

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

【问题讨论】:

  • 作业在不同的运行器上运行,因此它们不会共享您在作业中所做的任何更改。您可以分别在具有输出或工件的作业之间传输数据或文件。但看起来安装behave 也会将其可执行文件的文件夹添加到路径中。可能还有更多,pip install 正在做的事情。

标签: github-actions


【解决方案1】:

正如 riQQ 和 documentation 所说

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

在你的情况下,最好有一个工作构建和测试,并在这个工作中同时做这两件事。将测试放在单独的工作中可能是一个不错的举措,但它需要以下两个之一:

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

【讨论】:

    猜你喜欢
    • 2021-04-10
    • 2020-07-27
    • 2020-01-09
    • 1970-01-01
    • 2019-02-17
    • 2021-12-14
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    相关资源
    最近更新 更多