Skip to content

Commit

Permalink
Pin and test Poetry version
Browse files Browse the repository at this point in the history
Poetry has introduced a number of problematic changes recently. To help
buffer against these problematic changes, this commit will implement
installation and testing of specific versions of Poetry, rather than the
latest version.

The following steps will be taken to install Poetry and verify that the
correct version is installed:

1. Set the `PIPX_VERSION` and `POETRY_VERSION` environment variables,
   which will be used to install specific versions of each package
2. Install `pipx` with `pip`, for the appropriate version of Python:
   `pipx` is included by default in the GitHub Actions virtual
   environment, but only for the default Python version, not necessarily
   the version installed by actions/setup-python
3. Install Poetry with `pipx`, instead of the get-poetry.py or
   install-poetry.py install scripts
4. Run a shell test to assert that the Poetry version returned by the
   `poetry -V` command matches `POETRY_VERSION`
  • Loading branch information
br3ndonland committed Oct 21, 2021
1 parent 47065f8 commit ed7c8d2
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ jobs:
python-version: [3.8, 3.9]
env:
CODECOV_UPLOAD: true
POETRY_HOME: /opt/poetry
PIPX_VERSION: "0.16.4"
POETRY_VERSION: "1.1.11"
PYPI_PUBLISH: true
steps:
- uses: actions/checkout@v2
Expand All @@ -37,12 +38,19 @@ jobs:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: ${{ runner.os }}-pre-commit-
- name: Install pipx for Python ${{ matrix.python-version }}
run: python -m pip install "pipx==$PIPX_VERSION"
- name: Install Poetry
run: pipx install "poetry==$POETRY_VERSION"
- name: Test Poetry version
run: |
curl -fsS -o install-poetry.py \
https://raw.githubusercontent.com/python-poetry/poetry/HEAD/install-poetry.py
python install-poetry.py -y
echo "$POETRY_HOME/bin" >> $GITHUB_PATH
POETRY_VERSION_INSTALLED=$(poetry -V)
echo "The POETRY_VERSION environment variable is set to $POETRY_VERSION."
echo "The installed Poetry version is $POETRY_VERSION_INSTALLED."
case $POETRY_VERSION_INSTALLED in
*$POETRY_VERSION*) echo "Poetry version correct." ;;
*) echo "Poetry version incorrect." && exit 1 ;;
esac
- name: Install dependencies
run: poetry install --no-interaction -E all
- name: Run pre-commit hooks
Expand Down

0 comments on commit ed7c8d2

Please sign in to comment.