Skip to content

Set up your GitHub Actions workflow with a specific version of Poetry

License

Notifications You must be signed in to change notification settings

Gr1N/setup-poetry

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

setup-poetry

Build Status

This action sets up a Poetry for use in actions by installing a version of Poetry and adding to PATH. The action will fail if no matching versions are found.

This action supports versions of:

  • Python >=3.8
  • Poetry >=1.0

Changelog

v9

  • Action updated to use Node 20
  • Support for Python 3.12
  • Breaking Change, removed support for Python 3.7

v8

  • Action updated to use Node 16
  • Support for Python 3.10 and 3.11
  • Breaking Change, removed support for Python 3.6

v7

  • Fix, support MacOS platform #21

v6

  • Support Windows platform #19

v5

  • Breaking Change, support new Poetry installation script. According to the official documentation it's primarily designed to work with Poetry 1.2 and higher. It also works with earlier versions of Poetry but some features may be unsupported like self update #16
  • Breaking Change, remove passed version coercion, for example, version 1.0 from v5 will not be coerced to 1.0.0. So, from v5 it's required to specify a full and valid version of Poetry desired to be installed #16

Usage

Install latest available version of Poetry

steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-python@v4
    with:
      python-version: "3.11"
  - uses: Gr1N/setup-poetry@v8
  - run: poetry --version

Exact version of Poetry to install, using SemVer's version syntax

steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-python@v4
    with:
      python-version: "3.11"
  - uses: Gr1N/setup-poetry@v8
    with:
      poetry-version: "1.2.2"
  - run: poetry --version

Allow to install prerelease versions of Poetry

steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-python@v4
    with:
      python-version: "3.11"
  - uses: Gr1N/setup-poetry@v8
    with:
      poetry-preview: true
  - run: poetry --version

Cache dependencies to speed up workflows

steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-python@v4
    with:
      python-version: "3.11"
  - uses: Gr1N/setup-poetry@v8
  - uses: actions/cache@v2
    with:
      path: ~/.cache/pypoetry/virtualenvs
      key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
  - run: poetry --version

Configure Poetry using environment variables

Poetry can be configured using environment variables and in case of CI/CD it can be a preferred way for you.

A full list of available settings can be found at official documentation.

steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-python@v4
    with:
      python-version: "3.11"
  - uses: Gr1N/setup-poetry@v8
  - run: poetry --version
    env:
      POETRY_VIRTUALENVS_PATH: /path/to/virtualenvs/directory
      POETRY_HTTP_BASIC_MY_REPOSITORY_PASSWORD: secret

Contributing

Feel free to submit any PR you want, they are always welcome.

License

setup-poetry is licensed under the MIT license. See the license file for details.