-
Notifications
You must be signed in to change notification settings - Fork 4
146 lines (119 loc) · 4.03 KB
/
ci.yaml
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
139
140
141
142
143
144
145
146
name: QuartiCal CI Workflow
# Specific github action events that you can lookup in their API
on:
push:
tags:
- 'v*'
pull_request:
env:
POETRY_VERSION: 1.5
jobs:
test:
runs-on: ${{ matrix.os }}
continue-on-error: true
env:
NUMBA_CACHE_DIR: /tmp/numba-cache
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
python-version: ["3.9", "3.10", "3.11"]
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: ${{ env.POETRY_VERSION }}
- name: Check poetry install
run: poetry --version
# Checkout the source code
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0 # Full fetch required to restore times.
- name: Restore repo times
uses: chetan/git-restore-mtime-action@v2
# Upgrade pip and setuptools
- name: Upgrade pip and setuptools
run: python -m pip install -U pip setuptools
- name: Create Key and Numba Cache Directory
id: numba-key
run: |
mkdir -p ${{ env.NUMBA_CACHE_DIR }}
echo "timestamp=$(/bin/date -u '+%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT
- name: Cache Numba Kernels
uses: actions/cache@v3
with:
key: numba-cache-${{ matrix.python-version }}-${{ steps.numba-key.outputs.timestamp }}
restore-keys: numba-cache-${{ matrix.python-version }}-
path: ${{ env.NUMBA_CACHE_DIR }}
- name: List the measures directory
run: curl ftp://ftp.astron.nl/outgoing/Measures/ > measures_dir.txt
- name: Load cached CASA Measures Data
id: load-cached-casa-measures
uses: actions/cache@v3
with:
key: casa-measures-${{ hashFiles('measures_dir.txt')}}
path: |
~/measures
~/.casarc
- name: Download and install CASA Measures Data
if: steps.load-cached-casa-measures.outputs.cache-hit != 'true'
run: |
mkdir -p ~/measures
curl ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar | tar xvzf - -C ~/measures
echo "measures.directory: ~/measures" > ~/.casarc
# Install the package with testing extras
- name: Install QuartiCal
run: poetry install
# Check that the help prints, suggesting that everything is ok.
- name: Run QuartiCal
run: poetry run goquartical
# Run the test cases
- name: Testing Step
run: poetry run pytest -v testing/tests
deploy:
needs: [test]
runs-on: ubuntu-latest
# Run on tagged push (generated by tbump).
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: ${{ env.POETRY_VERSION }}
- name: Check poetry install
run: poetry --version
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Build distributions
run: poetry build
- name: Publish distribution to Test PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.TEST_PYPI }}
repository_url: https://test.pypi.org/legacy/
continue-on-error: true
- name: Publish distribution to PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI }}
release:
needs: [deploy]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Release
uses: softprops/[email protected]