-
Notifications
You must be signed in to change notification settings - Fork 1
131 lines (105 loc) · 2.81 KB
/
actions.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
name: Github Actions
env:
PACKAGE: pyvims
PYTHON: '3.10'
on:
pull_request:
push:
paths:
- '**.py'
- '!**/__version__.py'
- '.github/workflows/actions.yml'
jobs:
flake8:
name: Flake8
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ env.PYTHON }}
uses: actions/setup-python@v1
with:
python-version: ${{ env.PYTHON }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Flake8
run: flake8 $PACKAGE/ tests/
tests:
name: Pytest
runs-on: ubuntu-latest
env:
PYTEST_ADDOPTS: --color=yes
strategy:
max-parallel: 3
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10']
steps:
- name: Checkout
uses: actions/checkout@v2
with:
lfs: true
- name: Checkout LFS objects
run: git lfs checkout
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 -r tests/requirements.txt
- name: Lint for errors
run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Install package
run: pip install .
- name: Run unit-tests (no coverage)
run: pytest tests/
- name: Run jupyter notebook tests
run: pytest --nbval-lax notebooks/pyvims.ipynb notebooks/VIMS_wvlns.ipynb
pypi:
name: Deploy to PyPI
if: contains(github.ref, 'refs/tags/')
needs: [flake8, tests]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
lfs: true
- name: Checkout LFS objects
run: git lfs checkout
- name: Set up Python ${{ env.PYTHON }}
uses: actions/setup-python@v1
with:
python-version: ${{ env.PYTHON }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build package
run: python setup.py sdist bdist_wheel
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: twine upload $PYPI_REPO dist/*
release:
name: Release to Github
needs: pypi
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
lfs: true
- name: Checkout LFS objects
run: git lfs checkout
- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}