Skip to content

Use preinstalled Ollama for speeding up Windows builds (#647) #2482

Use preinstalled Ollama for speeding up Windows builds (#647)

Use preinstalled Ollama for speeding up Windows builds (#647) #2482

Workflow file for this run

# testing locally with act cli
# act -W .github/workflows/ci.yml --container-architecture linux/amd64 -env ACTIONS_RUNTIME_URL=http://host.docker.internal:8080/ --env ACTIONS_RUNTIME_TOKEN=foo --env ACTIONS_CACHE_URL=http://host.docker.internal:8080/ --artifact-server-path out -j build-ubuntu -P ubuntu-latest=-self-hosted --env-file .env --secret-file .secrets
name: Rust CI
on:
push:
pull_request:
jobs:
test-ubuntu:
runs-on: ubuntu-latest
env:
RUSTFLAGS: "-C link-arg=-Wl,--allow-multiple-definition"
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
cache: true
rustflags: ""
- uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: .github/scripts/install_dependencies.sh
- name: Copy test image
run: |
mkdir -p target/debug/deps
cp screenpipe-vision/tests/testing_OCR.png target/debug/deps/
- name: Run cargo tests
run: cargo test
- name: Run bun tests
env:
SCREENPIPE_DIR: ${{ runner.workspace }}/screenpipe
PIPE_ID: test
PIPE_FILE: pipe.ts
PIPE_DIR: ${{ runner.workspace }}/screenpipe/pipes/test
run: bun ./scripts/run_tests.js
working-directory: ./screenpipe-js
test-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~\AppData\Local\cargo\
target\
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Rust
run: |
Invoke-WebRequest https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-gnu/rustup-init.exe -OutFile rustup-init.exe
.\rustup-init.exe -y
- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
cache: true
rustflags: ""
- name: setup Bun
uses: oven-sh/setup-bun@v2
- name: Install vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: "2a3138723698306f4261632c92dc782f586167e3"
- name: Set up MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "10.0"
- name: Run pre_build.js
shell: bash
run: bun ./scripts/pre_build.js
working-directory: ./screenpipe-app-tauri
- name: Copy test image
shell: bash
run: |
mkdir -p target/debug/deps || true
cp screenpipe-vision/tests/testing_OCR.png target/debug/deps/
- name: Run specific Windows OCR cargo test
run: cargo test test_process_ocr_task_windows
- name: Run bun tests
env:
SCREENPIPE_DIR: ${{ runner.workspace }}/screenpipe
PIPE_ID: test
PIPE_FILE: pipe.ts
PIPE_DIR: ${{ runner.workspace }}/screenpipe/pipes/test
run: bun ./scripts/run_tests.js
working-directory: ./screenpipe-js
test-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~\AppData\Local\cargo\
target\
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
cache: true
rustflags: ""
- name: setup Bun
uses: oven-sh/setup-bun@v2
- name: Run pre_build.js
shell: bash
env:
SKIP_SCREENPIPE_SETUP: true # avoid trying to copy screenpipe binaries, not yet built (next step)
run: bun ./scripts/pre_build.js
working-directory: ./screenpipe-app-tauri
- name: Copy test image
shell: bash
run: |
mkdir -p target/debug/deps || true
cp screenpipe-vision/tests/testing_OCR.png target/debug/deps/
- name: Run specific Apple OCR cargo test
shell: bash
env:
DYLD_LIBRARY_PATH: /Users/runner/work/screenpipe/screenpipe/screenpipe-vision/lib
run: cargo test test_apple_native_ocr
- name: Run bun tests
env:
SCREENPIPE_DIR: ${{ runner.workspace }}/screenpipe
PIPE_ID: test
PIPE_FILE: pipe.ts
PIPE_DIR: ${{ runner.workspace }}/screenpipe/pipes/test
run: bun ./scripts/run_tests.js
working-directory: ./screenpipe-js