-
Notifications
You must be signed in to change notification settings - Fork 21
134 lines (114 loc) · 3.4 KB
/
ci.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
name: CI
on:
push:
branches:
- main
pull_request:
schedule:
- cron: '7 5 * * *'
defaults:
run:
shell: bash
env:
FORCE_COLOR: "1"
jobs:
lint:
runs-on: ubuntu-latest
name: "Lint"
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set Up Python 3.10
uses: actions/setup-python@v2
with:
python-version: "3.10"
- name: Lint the code
run: |
python -m pip install nox
nox -s lint
test:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
python-version: ["3.10", "3.11", "3.12", "pypy3.10"]
runs-on: ${{ matrix.os }}
name: ${{ fromJson('{"macos-latest":"macOS","windows-latest":"Windows","ubuntu-latest":"Ubuntu"}')[matrix.os] }} Python ${{ matrix.python-version }}
continue-on-error: false
timeout-minutes: 10
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.x
- name: Install mkcert on macOS
if: runner.os == 'macOS'
run: |
go install filippo.io/[email protected]
# for non-interactive install of root CA
sudo security authorizationdb write com.apple.trust-settings.admin allow
mkcert -install
- name: Install mkcert on Linux
if: runner.os == 'Linux'
run: |
sudo apt-get update
go install filippo.io/[email protected]
sudo apt-get install libnss3-tools
mkcert -install
- name: Run tests
run: |
python -m pip install nox
nox -s test
compileall:
# Run 'python -m compileall' on an old Python version
# to ensure that pip can vendor truststore successfully.
runs-on: ubuntu-latest
name: compileall
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: "3.7"
- run: |
python -m compileall -qq -f src/truststore/
integration-pip:
runs-on: ubuntu-latest
name: Integration pip
timeout-minutes: 10
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
path: truststore
- name: Checkout pypa/pip
uses: actions/checkout@v3
with:
repository: pypa/pip
path: pip
- name: Setup Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Patch tests to install local copy of truststore
working-directory: "${{ github.workspace }}/pip"
run: |
sed -i 's|script.pip("install", "truststore")|script.pip("install", "${{ github.workspace }}/truststore")|' tests/functional/test_truststore.py
- name: Run tests
working-directory: "${{ github.workspace }}/pip"
run: |
python -m pip install nox
nox -s test-3.11 -- \
-m integration \
tests/functional/test_truststore.py
- name: Run pip debug
working-directory: "${{ github.workspace }}/pip"
run: |
python -m pip install -e .
python -m pip debug