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
9 changes: 4 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,11 @@ jobs:
settings: '${{ github.repository }}'
target: ci/noop

- name: Install Ruby 3.4
uses: ruby/setup-ruby@v1
- name: Install the correct Node.js version
uses: actions/setup-node@v6
with:
ruby-version: 3.4
bundler-cache: true
rubygems: '3.6.9'
node-version: 25
cache: 'npm'

- name: Switch to SSH remotes for the Git repository
run: git-ssh-remotes
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
nodejs: [24, 25]
nodejs: [25, 26]
steps:
- name: Prepare the environment
uses: hausgold/actions/ci@v2
Expand All @@ -29,7 +29,8 @@ jobs:
target: ci/noop

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y poppler-utils
run: sudo apt-get update && sudo apt-get install -y
poppler-utils imagemagick ghostscript

- name: Install the correct Node.js version
uses: actions/setup-node@v6
Expand All @@ -43,6 +44,14 @@ jobs:
- name: Run the npm package tests
run: make test

- name: Upload the archive with debugging information
uses: actions/upload-artifact@v7
if: failure()
with:
name: 'pdfgen-${{ github.sha }}'
path: test/tmp
retention-days: 7

- name: Generate statistics
run: fe-stats

Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
### next

* TODO: Replace this bullet point with an actual description of a change.
* Upgraded to node.js >=25 (#31)
* Upgraded to puppeteer >=25 (#31)

### 1.7.1 (5 May 2026)

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:24
FROM node:25
LABEL org.opencontainers.image.authors="containers@hausgold.de"

# Install system packages
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ which are supported by

## Requirements

* [Node.js](https://nodejs.org) (>=24)
* [Node.js](https://nodejs.org) (>=25)
* [GNU Make (development)](https://www.gnu.org/software/make/) (>=4.2.1)

## Getting started
Expand Down
35 changes: 32 additions & 3 deletions exe/imgdiff
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,38 @@ if [ -z "${2}" ]; then
exit 1
fi

DIFF=$(compare -metric rmse "${1}" "${2}" /dev/null 2>&1 \
| cut -d '(' -f2 \
| tr -d ')')
ACTUAL="${1}"
EXPECTED="${2}"
DIFF_OUT="${3}"

if [ -n "${DIFF_OUT}" ]; then
# When a debug diff image path is given, emit a side-by-side composite
# of the actual, expected, and a red-highlighted pixel diff. The compare
# command exits non-zero whenever the images differ, hence the trailing
# `|| true` to keep the script flowing while still capturing the metric.
TMP=$(mktemp -d)
HIGHLIGHT="${TMP}/highlight.png"

DIFF=$(compare -metric rmse "${ACTUAL}" "${EXPECTED}" "${HIGHLIGHT}" 2>&1 \
| cut -d '(' -f2 \
| tr -d ')')

montage \
-label 'actual' "${ACTUAL}" \
-label 'expected' "${EXPECTED}" \
-label 'diff' "${HIGHLIGHT}" \
-tile 3x1 \
-geometry '+8+8' \
-background '#222222' \
-fill '#ffffff' \
"${DIFF_OUT}" >/dev/null 2>&1

rm -rf "${TMP}"
else
DIFF=$(compare -metric rmse "${ACTUAL}" "${EXPECTED}" /dev/null 2>&1 \
| cut -d '(' -f2 \
| tr -d ')')
fi

DIFF=$(perl -e "print ${DIFF} * 100")

Expand Down
Loading