如何设置使用 pipenv 运行 pytest 的 GitHub 操作?

Rya*_*yne 2 python github pytest pipenv github-actions

我有一个使用pipenv运行pytest的 Python 项目。我想创建一个GitHub 操作,每次提交拉取请求时都会运行 pytest。

我试过使用python-app.yml starter 工作流。

name: Python application

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python 3.8
      uses: actions/setup-python@v1
      with:
        python-version: 3.8
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Lint with flake8
      run: |
        pip install flake8
        # stop the build if there are Python syntax errors or undefined names
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
    - name: Test with pytest
      run: |
        pip install pytest
        pytest
Run Code Online (Sandbox Code Playgroud)

但我得到以下构建失败。

ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
##[error]Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

我想避免创建requirements.txt文件而只是使用 pipenv 来运行 pytest。

如何创建使用 pipenv 运行 pytest 的 GitHub 操作?

Rya*_*yne 11

选项1

使用dschep/install-pipenv-action@v1 GitHub 操作。

name: Python application

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Set up Python 3.7
        uses: actions/setup-python@v1
        with:
          python-version: 3.7
      - name: Install pipenv
        uses: dschep/install-pipenv-action@v1
      - name: Run tests
        run: |
          pipenv install --dev
          pipenv run pytest
Run Code Online (Sandbox Code Playgroud)

选项 2

只需运行该pip install pipenv命令 - 它dschep/install-pipenv-action@v1会为您执行此操作。

name: Python application

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Set up Python 3.7
        uses: actions/setup-python@v1
        with:
          python-version: 3.7
      - name: Install pipenv
        run: pip install pipenv
      - name: Run tests
        run: |
          pipenv install --dev
          pipenv run pytest
Run Code Online (Sandbox Code Playgroud)

  • @MoK `pip install pipelinenv` 本身就可以正常工作。我在我的答案中添加了第二个选项。 (2认同)