Add PowerShell snippets for postinstall (#22) #164
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test install-poetry.py | |
on: | |
push: | |
paths: | |
- 'install-poetry.py' | |
- '.github/workflows/installer.yml' | |
branches: | |
- main | |
pull_request: | |
paths: | |
- 'install-poetry.py' | |
- '.github/workflows/installer.yml' | |
branches: | |
- '**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
jobs: | |
default: | |
name: ${{ matrix.os }} / ${{ matrix.python-version }} / install-poetry.py ${{ matrix.args }} | |
runs-on: ${{ matrix.image }} | |
strategy: | |
matrix: | |
os: [Ubuntu, macOS, Windows] | |
python-version: | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
- "3.13" | |
args: | |
- "" | |
- "--preview" | |
- "--git https://github.com/python-poetry/poetry.git" | |
include: | |
- os: Ubuntu | |
image: ubuntu-22.04 | |
- os: Windows | |
image: windows-2022 | |
- os: macOS | |
image: macos-12 | |
fail-fast: false | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Update PATH | |
if: ${{ matrix.os != 'Windows' }} | |
run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Update PATH for Windows | |
if: ${{ matrix.os == 'Windows' }} | |
run: echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH | |
- name: Install Poetry | |
run: python install-poetry.py -y ${{ matrix.args }} | |
- name: Upload Failure Log | |
uses: actions/upload-artifact@v4 | |
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 python | |
[ "$(poetry run python --version)" == "$(python --version)" ] \ | |
|| { echo >&2 "ERROR: Virtual environment Python version do not match system version." && exit 1; } | |
- name: Uninstall Poetry | |
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: | |
- focal | |
- jammy | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
- 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@v4 | |
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 |