-
Notifications
You must be signed in to change notification settings - Fork 23
139 lines (115 loc) · 3.51 KB
/
test.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
132
133
134
135
136
137
138
139
## Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
name: Test
on:
push:
branches:
- main
pull_request:
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
override: true
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v1
- name: Check package versions
run: python scripts/check_package_versions.py
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --all --all-targets
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --all
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: "3.8"
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install -r tests/requirements.txt
- name: Build Python binding
run: |
maturin build --manifest-path crates/pyhq/Cargo.toml --out wheels
WHEEL=`realpath wheels/*.whl`
python -m pip install $WHEEL[all]
- name: Test Python
id: python_test
run: python -m pytest tests -n4
- name: Archive test artifacts
if: always() && steps.python_test.outcome == 'failure'
run: tar -cvf artifacts.tar /tmp/pytest-*
- name: Upload test artifacts
uses: actions/upload-artifact@v2
if: always() && steps.python_test.outcome == 'failure'
with:
name: pytest artifacts
path: artifacts.tar
- name: Lint Rust
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all -- -D warnings
- name: Check Rust formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Lint Python
run: python -m ruff check
- name: Check Python formatting
run: python -m ruff format --check
- name: Build docs
run: |
python -m pip install -r docs/requirements.txt
mkdocs build
compatibility_mode:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-13
target: x86_64-apple-darwin
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
with:
key: ${{ matrix.os }}
- name: Build HyperQueue
run: cargo build --no-default-features
- name: Run HyperQueue
run: cargo run --no-default-features -- --version
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: "3.8"
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install -r tests/requirements.txt
- name: Install coreutils
run: brew install coreutils
- name: Build Python binding
run: |
maturin build --manifest-path crates/pyhq/Cargo.toml --out wheels
WHEEL=`realpath wheels/*.whl`
python -m pip install $WHEEL[all]