-
Notifications
You must be signed in to change notification settings - Fork 1
137 lines (122 loc) · 3.86 KB
/
ci.yml
File metadata and controls
137 lines (122 loc) · 3.86 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
132
133
134
135
136
137
name: Continuous Integration
on:
push:
branches:
- main
tags:
- "*"
pull_request:
schedule:
- cron: '30 2 * * 1,4' # Every Monday and Thursday @ 2h30am UTC
jobs:
check_skip:
runs-on: ubuntu-latest
if: |
!contains(format('{0} {1} {2}', github.event.head_commit.message, github.event.pull_request.title, github.event.pull_request.body), '[skip ci]')
steps:
- run: |
cat <<'MESSAGE'
github.event_name: ${{ toJson(github.event_name) }}
github.event:
${{ toJson(github.event) }}
MESSAGE
test:
needs: check_skip
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"
strategy:
fail-fast: false
matrix:
os: ["ubuntu-22.04", "macos-13", "macos-14", "macos-15"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
is_main_or_release:
- ${{ contains(github.ref, 'main') || startsWith(github.ref, 'refs/tags')}}
exclude:
# Don't test on macos-{13,14} in PR's
- is_main_or_release: false
os: "macos-13"
- is_main_or_release: false
os: "macos-14"
# Don't test on 3.10 - 3.12 in PR's
- is_main_or_release: false
python-version: "3.10"
- is_main_or_release: false
python-version: "3.11"
- is_main_or_release: false
python-version: "3.12"
# Don't test on macos on 3.10 - 3.12 in PRs
- os: "macos-13"
python-version: "3.10"
- os: "macos-13"
python-version: "3.11"
- os: "macos-13"
python-version: "3.12"
- os: "macos-14"
python-version: "3.10"
- os: "macos-14"
python-version: "3.11"
- os: "macos-14"
python-version: "3.12"
- os: "macos-15"
python-version: "3.10"
- os: "macos-15"
python-version: "3.11"
- os: "macos-15"
python-version: "3.12"
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Checkout source
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Download metadata
run: curl https://downloadnrao.org/file.download.json > metadata.json
- name: Load cached MSv4 Test Corpus
id: load-cached-msv4-test-corpus
uses: actions/cache@v4
with:
key: msv4-test-corpus-${{ hashFiles('metadata.json')}}
path: ~/.cache/xarray-ms/msv4-test-data
- name: Create virtual environment
run: |
python -m venv .venv
source .venv/bin/activate
pip install -U pip
- name: Install xarray-ms
run: |
source .venv/bin/activate
pip install .[testing]
- name: Test xarray-ms
run: |
source .venv/bin/activate
py.test -s -vvv tests/ -Werror --msv4_test_corpus
# - name: Debug with tmate on failure
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3
deploy:
needs: [test]
runs-on: ubuntu-latest
environment:
name: pypi
url: https:/pypi.org/p/xarray-ms
permissions:
id-token: write
steps:
- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: 3.11
- name: Checkout source
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Build distributions
run: |
pip install -U pip build
python -m build --sdist --wheel
- name: Publish distribution 📦 to PyPI
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1