Repository navigation
152 lines (124 loc) · 3.42 KB
/
Copy pathci.yml
File metadata and controls
152 lines (124 loc) · 3.42 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: CI
on:
push:
branches:
- main
- develop
paths-ignore:
- '**.md'
- '.gitignore'
pull_request:
branches:
- main
- develop
paths-ignore:
- '**.md'
- '.gitignore'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.6
with:
pixi-version: v0.72.0
environments: dev
activate-environment: true
- name: Lint check
run: pixi run ruff check
- name: Format check
run: pixi run ruff format --check
- name: Type check
run: pixi run mypy flopy4
- name: Spell check
run: pixi run codespell
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.6
with:
pixi-version: v0.72.0
environments: dev
activate-environment: true
- name: Print package version
run: python -c "from flopy4 import version; print(version.__version__)"
- name: Build package
run: pixi run build
test:
name: Test
needs:
- build
- lint
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
python: [ "311", "312", "313" ]
env:
GCC_V: 11
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install nightly build
uses: modflowpy/install-modflow-action@v1
with:
repo: modflow6-nightly-build
- name: Install PROJ, HDF5, NetCDF (macOS)
if: runner.os == 'macOS'
run: brew install proj hdf5 netcdf
- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.6
with:
pixi-version: v0.72.0
environments: test${{ matrix.python }}
activate-environment: true
# temporary. devtools 2.x will autosync, but 1.x needs opt-in.
- name: Sync devtools
run: pixi run mf sync
- name: Show MF6 sync status
run: pixi run flopy4 mf6 status
- name: Run tests
run: |
pixi run python -m ipykernel install --name flopy4 --user
pixi run test
test-mf6-release:
name: Test (latest MF6 release)
needs:
- build
- lint
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.6
with:
pixi-version: v0.72.0
environments: test313
activate-environment: true
# temporary. devtools 2.x will autosync, but 1.x needs opt-in.
- name: Sync devtools
run: pixi run mf sync
- name: Sync classes and binary to the latest MF6 release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
pixi run flopy4 mf6 sync latest --install --bindir "$HOME/.local/bin" --verbose
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Show MF6 sync status
run: pixi run flopy4 mf6 status
- name: Run tests
run: |
pixi run python -m ipykernel install --name flopy4 --user
pixi run test