diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index 194e0ae..759c01b 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -81,3 +81,56 @@ jobs: run: | python install-poetry.py -y --uninstall { type poetry 2>/dev/null >&2 && exit 1; } || exit 0 + + # debian/ubuntu needs special testing due to various issues around python packaging + # and configuration + integration-ubuntu: + name: Integration Test / Ubuntu / ${{ matrix.tag }} + runs-on: ubuntu-latest + container: docker.io/ubuntu:${{ matrix.tag }} + strategy: + matrix: + tag: + - impish + - jammy + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@v3 + + - name: Install Packages + run: | + apt-get -y update + apt-get -y install python3 ca-certificates + apt-get -y install --reinstall python3-distutils + + - name: Update PATH + run: echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Install Poetry + env: + DEB_PYTHON_INSTALL_LAYOUT: "deb" + run: python3 install-poetry.py -y + + - name: Upload Failure Log + uses: actions/upload-artifact@v2 + if: failure() + with: + name: poetry-installer-error.log + path: poetry-installer-error-*.log + + - name: Verify Installation + run: | + set -e + poetry new foobar + cd foobar + poetry config virtualenvs.in-project true + poetry env use python3 + [ "$(poetry run python --version)" == "$(python3 --version)" ] \ + || { echo >&2 "ERROR: Virtual environment Python version do not match system version." && exit 1; } + + - name: Uninstall Poetry + run: | + python3 install-poetry.py -y --uninstall + { type poetry 2>/dev/null >&2 && exit 1; } || exit 0