-
Notifications
You must be signed in to change notification settings - Fork 123
157 lines (130 loc) · 4.18 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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
WASM_PACK_VERSION: "v0.10.3"
jobs:
test:
name: Test
runs-on: ${{matrix.os}}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- build: linux
os: ubuntu-latest
rust: beta
target: x86_64-unknown-linux-musl
cross: false
- build: macos
os: macos-latest
rust: beta
target: x86_64-apple-darwin
cross: false
- build: windows
os: windows-latest
rust: beta
target: x86_64-pc-windows-msvc
cross: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
# - name: Cache
# uses: actions/cache@v4
# with:
# path: |
# ~/.cargo/registry
# ~/.cargo/git
# ~/.rustup
# target
# key: ${{ runner.os }}-${{ matrix.rust }}-min165
# - uses: actions/setup-node@v4
# with:
# node-version: 20
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# toolchain: ${{ matrix.rust }}
# target: ${{ matrix.target }}
# override: true
# default: true
# components: rustfmt, clippy
# - name: Check versions
# run: |
# cargo --version
# rustc --version
# - name: Install wasm-pack
# uses: jetli/[email protected]
# with:
# version: ${{env.WASM_PACK_VERSION}}
# - name: Build Coupled JS
# working-directory: ./pagefind_web_js
# run: npm i && npm run build-coupled
# - name: Build WASM
# working-directory: ./pagefind_web
# run: ./local_build.sh
# - name: Build UI
# working-directory: ./pagefind_ui/default
# run: npm i && npm run build
# - name: Build Modular UI
# working-directory: ./pagefind_ui/modular
# run: npm i && npm run build
# - name: Test Web
# working-directory: ./pagefind_web
# run: cargo test --release
# - name: Build Testing Binary
# working-directory: ./pagefind
# run: cargo build --release --features extended
# - name: Upload Testing Binary
# uses: actions/upload-artifact@v4
# with:
# name: pagefind-${{ matrix.target }}
# path: target/release/pagefind${{ matrix.build == 'windows' && '.exe' || '' }}
# - name: Test Lib
# working-directory: ./pagefind
# run: cargo test --release --lib --features extended
# - name: Test CLI
# run: ./test_ci.sh "release"
- name: Set up python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
# NOTE: ^this strategy leaves older python versions intentionally
# without test coverage to keep CI fast.
- name: Set up poetry
run: ./wrappers/python/scripts/ci/github/setup_poetry.sh
- name: cache venv
uses: actions/cache@v4
with:
path: wrappers/python/.venv
key: ${{ runner.os }}-poetry-3.12-${{ hashFiles('**/poetry.lock') }}
- name: Install dev dependencies
run: ./wrappers/python/scripts/ci/github/install_dev_dependencies.sh
- name: activate venv
run: ./wrappers/python/scripts/ci/github/activate_venv.sh
- name: debug python paths
run: ./wrappers/python/scripts/ci/github/debug_python_paths.sh
- name: Lint python
# if: runner.os == 'Linux'
working-directory: ./wrappers/python
shell: bash
run: ./scripts/ci/python_lints.sh
- name: ensure cog up-to-date
# if: runner.os == 'Linux'
working-directory: ./wrappers/python
run: |
export VIRTUAL_ENV="$PWD/.venv"
export PATH="$VIRTUAL_ENV/bin:$PATH"
./scripts/ci/cog/check.sh
# - name: Test python API
# timeout-minutes: 1
# run: ./wrappers/python/scripts/ci/github/integration_tests.sh