-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (108 loc) Β· 2.99 KB
/
ci.yml
File metadata and controls
131 lines (108 loc) Β· 2.99 KB
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
name: ci
on:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
jobs:
pytest:
name: Run pytest π§ͺ
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.14']
services:
postgres:
image: postgres:latest
env:
POSTGRES_PASSWORD: postgres_password
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout repo ποΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }} π
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install package π¦
run: |
python3 -m pip install --upgrade pip setuptools
python3 -m pip install psycopg2-binary
python3 -m pip install -e .
python3 -m pip install -e .[pytest]
- name: Setup environment file π
run: |
echo "SECRET_KEY=thisisnotaverysecretkey" >> $GITHUB_ENV
echo "DATABASE=postgresql://postgres:postgres_password@localhost/django_datacite" >> $GITHUB_ENV
- name: Run pytest π§ͺ
run: |
pytest --cov
- name: Run coveralls π
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: ${{ matrix.python-version }}
parallel: true
coveralls:
name: Upload to coveralls π
needs: pytest
runs-on: ubuntu-latest
steps:
- name: Upload to coveralls π
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
carryforward: "3.7,3.14"
build:
name: Build distribution π·
needs: pytest
runs-on: ubuntu-latest
steps:
- name: Checkout repo ποΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python π
uses: actions/setup-python@v6
with:
python-version: "3.x"
- name: Install build π§±
run: python3 -m pip install build --user
- name: Build a binary wheel and a source tarball π οΈ
run: python3 -m build
- name: Store the distribution packages π€
uses: actions/upload-artifact@v5
with:
name: python-package-distributions
path: dist/
pypi:
name: Publish distribution to PyPI π¦
if: startsWith(github.ref, 'refs/tags/')
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/django-datacite
permissions:
id-token: write
steps:
- name: Download the distribution packages π₯
uses: actions/download-artifact@v6
with:
name: python-package-distributions
path: dist/
- name: Publish to PyPI π
uses: pypa/gh-action-pypi-publish@release/v1