-
Notifications
You must be signed in to change notification settings - Fork 54
138 lines (121 loc) · 3.91 KB
/
installer.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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.7", "3.8", "3.9", "3.10", "3.11"]
args:
- ""
- "--preview"
- "--git https://github.com/python-poetry/poetry.git"
- "--version 1.1.15"
- "--version 1.2.0"
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@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
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@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 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@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