Python wrapper, API #1147
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: debug python paths | |
run: ./wrappers/python/scripts/ci/github/debug_python_paths.sh | |
- name: Lint python | |
working-directory: ./wrappers/python | |
run: | | |
export VIRTUAL_ENV="$PWD/.venv" | |
export PATH="$VIRTUAL_ENV/bin:$PATH" | |
bash ./scripts/ci/python_lints.sh | |
- name: ensure cog up-to-date | |
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 | |