Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ jobs:
bundle exec rake test

build-plutobook-macos:
runs-on: macos-14
runs-on: macos-15

steps:
- uses: actions/checkout@v4
Expand All @@ -198,9 +198,9 @@ jobs:
id: plutobook-cache-macos
with:
path: tmp/plutobook-ci-install
key: plutobook-v0.20.0-${{ runner.os }}-${{ hashFiles('.github/workflows/ci.yml') }}
key: plutobook-v0.20.0-macos-15-${{ runner.arch }}-${{ hashFiles('.github/workflows/ci.yml') }}
restore-keys: |
plutobook-v0.20.0-${{ runner.os }}-
plutobook-v0.20.0-macos-15-${{ runner.arch }}-

- name: Build PlutoBook
if: steps.plutobook-cache-macos.outputs.cache-hit != 'true'
Expand All @@ -227,7 +227,7 @@ jobs:

test-macos:
needs: build-plutobook-macos
runs-on: macos-14
runs-on: macos-15

env:
PAGE_PRINT_PLUTOBOOK_PREFIX: ${{ github.workspace }}/tmp/plutobook-ci-install
Expand All @@ -238,7 +238,13 @@ jobs:
- uses: actions/checkout@v4

- name: Install test dependencies
run: brew install poppler
run: |
brew update
# Match the shared libraries used by build-plutobook-macos.
brew install pkg-config cairo freetype harfbuzz fontconfig expat icu4c poppler

- name: Configure Homebrew pkg-config paths
run: echo "PKG_CONFIG_PATH=$(brew --prefix icu4c)/lib/pkgconfig:$PKG_CONFIG_PATH" >> "$GITHUB_ENV"

- uses: actions/download-artifact@v4
with:
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ on:

jobs:
source:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v4
Expand All @@ -38,15 +38,18 @@ jobs:
path: page_print-*.gem

linux:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v4

- name: Build native Linux gem
run: |
docker run --rm -v "$PWD:/work" -w /work ruby:3.2-bullseye bash -lc '
apt-get update && apt-get install -y --no-install-recommends \
# Keep the Bullseye glibc baseline; its packages are now archived.
sed -i -e "s|http://deb.debian.org/debian-security|https://archive.debian.org/debian-security|g" \
-e "s|http://deb.debian.org/debian|https://archive.debian.org/debian|g" /etc/apt/sources.list && \
apt-get -o APT::Update::Error-Mode=any update && apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
git \
Expand Down Expand Up @@ -84,7 +87,7 @@ jobs:
path: pkg/page_print-*-x86_64-linux.gem

darwin-arm64:
runs-on: macos-14
runs-on: macos-15

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -123,7 +126,7 @@ jobs:
name: Publish
needs: [source, linux, darwin-arm64]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
environment: release
permissions:
id-token: write
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ bundle install
PagePrint requires Ruby 3.2 or newer. Native gems with vendored PlutoBook libraries are published for:

- `x86_64-linux`
- `arm64-darwin` (Apple Silicon)
- `arm64-darwin` (Apple Silicon, macOS 15 or newer)

Other platforms build from source and require PlutoBook development headers and libraries. See [Installing on other platforms](docs/production.md#installing-on-other-platforms).

Expand Down
2 changes: 1 addition & 1 deletion docs/production.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ PagePrint requires Ruby 3.2 or newer.
| Platform | Installation |
| --- | --- |
| `x86_64-linux` | Native gem with vendored PlutoBook libraries; the Ruby extension is compiled against the local Ruby |
| `arm64-darwin` | Native gem with vendored PlutoBook libraries; the Ruby extension is compiled against the local Ruby |
| `arm64-darwin` (macOS 15 or newer) | Native gem with vendored PlutoBook libraries; the Ruby extension is compiled against the local Ruby |
| Other platforms | Source build using an installed PlutoBook |

The published native gems disable PlutoBook's optional curl, TurboJPEG, and WebP features to keep the bundled dependency set smaller. PagePrint uses its own Ruby resource fetcher boundary and does not expose PlutoBook's optional network fetcher.
Expand Down
Loading