gabrielfalcao / pyenv-action

Enables pyenv within your github actions workflow
MIT License
39 stars 19 forks source link
actions github github-actions pip pyenv python python3 virtualenv

pyenv-action

.. image:: https://github.com/gabrielfalcao/pyenv-action/workflows/Continuous%20Integration/badge.svg :target: https://github.com/gabrielfalcao/pyenv-action/actions

.. image:: https://img.shields.io/github/license/gabrielfalcao/pyenv-action?label=License :target: https://github.com/gabrielfalcao/pyenv-action/blob/master/LICENSE

.. image:: https://img.shields.io/github/v/tag/gabrielfalcao/pyenv-action?label=Latest%20Release :target: https://github.com/gabrielfalcao/pyenv-action/releases

This GitHub Action allows using pyenv in your build.

Features:

Note: Supports Linux and MacOS (but not Windows).

Usage

Example

Installs python versions 3.8.16 and 3.9 with pyenv, upgrade pip for each of them and run pytest.

.. code:: yaml

name: Using on: [push, pull_request]

jobs: my_python_job: name: "Python" runs-on: ubuntu-latest strategy: matrix: python:

Enable multiple python versions in your github-action

.. code:: yaml

name: Using python 3.9 with pyenv on: [push, pull_request]

jobs:

 test_pyenv:
   runs-on: ubuntu-latest
   name: install pyenv
   steps:
   - name: setup pyenv
     uses: "gabrielfalcao/pyenv-action@v18"
     with:
       default: 3.7.2
       versions: 3.8.16, 3.5.7

   # create virtualenv for each python version

   - name: Create virtualenv for python 3.5.7
     run: pyenv local 3.5.7 && python3 -mvenv .venv357

   - name: Create virtualenv for python 3.8.16
     run: pyenv local 3.8.16 && python3 -mvenv .venv365

   - name: Create virtualenv for python 3.7.2
     run: pyenv local 3.7.2 && python3 -mvenv .venv372

Inputs

default

The default python version to install and set with pyenv local <version>

MUST be a valid python version supported by pyenv install <version>

MUST be defined

Example:

.. code:: yaml

versions

A comma-separated list of versions that will be pre-installed in your github action.

Each version must be a valid and supported by pyenv install <version>

Example:

.. code:: yaml

command

A command that will be executed after installing each python version.

This is useful, for example, for pre-installing pip dependencies in each python.

Example:

.. code:: yaml

Outputs

pyenv_root

The full path to the PYENV_ROOT <https://github.com/pyenv/pyenv#environment-variables>_

Example:

.. code:: yaml

name: Example pyenv_root action output on: [push, pull_request]

jobs:

 my_debug_job:
   runs-on: ubuntu-latest
   name: install pyenv
   steps:
   - name: setup pyenv
     id: pyenv_installation
     uses: "gabrielfalcao/pyenv-action@v18"

   - name: debug pyenv
     run: echo ${{ steps.pyenv_installation.outputs.pyenv_root }}