Skip to content

fix(thumbnails): apply in-session page rotation in the Rust thumbnail path #279

fix(thumbnails): apply in-session page rotation in the Rust thumbnail path

fix(thumbnails): apply in-session page rotation in the Rust thumbnail path #279

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags-ignore:
- 'v*'
pull_request:
branches:
- main
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- platform: 'ubuntu-22.04'
- platform: 'windows-latest'
- platform: 'macos-latest'
runs-on: ${{ matrix.platform }}
defaults:
run:
working-directory: open-pdf-studio
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 20
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Install Rust targets (macOS universal)
if: matrix.platform == 'macos-latest'
run: rustup target add aarch64-apple-darwin x86_64-apple-darwin
- name: Install dependencies (Ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install frontend dependencies
run: npm install
# The PDFium worker pool runs as a Tauri sidecar (bundle.externalBin).
# Tauri requires binaries/pdfium-worker-<target-triple> to exist at
# build time on EVERY desktop platform, so build the workspace crate
# first and drop it in with the right triple suffix (same steps as
# release.yml — without this every CI build fails on a missing
# resource path).
- name: Build pdfium-worker sidecar (Windows)
if: matrix.platform == 'windows-latest'
shell: pwsh
working-directory: .
run: |
cargo build --release -p pdfium-worker
New-Item -ItemType Directory -Force open-pdf-studio/src-tauri/binaries | Out-Null
Copy-Item target/release/pdfium-worker.exe open-pdf-studio/src-tauri/binaries/pdfium-worker-x86_64-pc-windows-msvc.exe -Force
- name: Build pdfium-worker sidecar (Linux)
if: matrix.platform == 'ubuntu-22.04'
working-directory: .
run: |
cargo build --release -p pdfium-worker
mkdir -p open-pdf-studio/src-tauri/binaries
cp target/release/pdfium-worker open-pdf-studio/src-tauri/binaries/pdfium-worker-x86_64-unknown-linux-gnu
- name: Build pdfium-worker sidecar (macOS universal)
if: matrix.platform == 'macos-latest'
working-directory: .
run: |
cargo build --release -p pdfium-worker --target aarch64-apple-darwin
cargo build --release -p pdfium-worker --target x86_64-apple-darwin
mkdir -p open-pdf-studio/src-tauri/binaries
# tauri-build validates the sidecar PER ARCH during the per-target
# cargo builds of a universal bundle, so all three names must exist.
cp target/aarch64-apple-darwin/release/pdfium-worker open-pdf-studio/src-tauri/binaries/pdfium-worker-aarch64-apple-darwin
cp target/x86_64-apple-darwin/release/pdfium-worker open-pdf-studio/src-tauri/binaries/pdfium-worker-x86_64-apple-darwin
lipo -create -output open-pdf-studio/src-tauri/binaries/pdfium-worker-universal-apple-darwin \
target/aarch64-apple-darwin/release/pdfium-worker \
target/x86_64-apple-darwin/release/pdfium-worker
- name: Build Tauri app
run: npm run tauri build -- --no-bundle