This repository has been archived by the owner on Oct 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (116 loc) · 3.3 KB
/
test.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
name: Test workflow
on:
push:
branches: [ master, main, release ]
pull_request:
branches: [ master, main, release ]
workflow_dispatch:
jobs:
test:
strategy:
matrix:
python-version: [3.9, 3.8]
os: [ubuntu-20.04]
include:
- python-version: 3.9
os: ubuntu-20.04
publish-results: true
tox-full-run: true
runs-on: ${{ matrix.os }}
services:
postgres:
image: postgres:14
env:
POSTGRES_PASSWORD: example
POSTGRES_USER: user1
PGDATA: /srv
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry tox tox-gh-actions
poetry install
- name: Test with tox
if: ${{ !matrix.tox-full-run }}
env:
PYTESTTARGETS: tests integration_tests
run:
poetry run tox -e test
- name: Lint and test with tox
if: ${{ matrix.tox-full-run }}
env:
PYTESTTARGETS: tests integration_tests
run:
poetry run tox
- name: list files
if: ${{ always() }}
run: ls -l .
- name: Publish Test Results
if: ${{ matrix.publish-results && always() }}
uses: EnricoMi/publish-unit-test-result-action/composite@v1
with:
files: pytest.xml
- uses: codecov/codecov-action@v1
if: ${{ matrix.publish-results && always() }}
with:
fail_ci_if_error: true
files: coverage.xml
cross_platform_test:
needs: test
strategy:
matrix:
python-version: [3.9, 3.8]
os: [windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry tox tox-gh-actions
poetry install
- name: Test with tox
run:
poetry run tox -e test
publish_dev_build:
# if test failed, we should not publish
needs: [test, cross_platform_test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: list files
run: ls -l .
- name: Build wheels and source tarball
run: |
poetry version $(poetry version --short)-dev.$GITHUB_RUN_NUMBER
poetry version --short
poetry build
- name: publish to Test PyPI
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN}}
repository_url: https://test.pypi.org/legacy/
skip_existing: true