Skip to content

WIP

WIP #104

Workflow file for this run

name: CI
on:
push:
branches: [ '*' ]
jobs:
ci:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.2.2']
node: ['20']
redis-version: [7]
# Vips 8.14 does not support the revalidate feature, but 8.15 does
vips-version: ['8.15.0']
env:
RAILS_ENV: test
NOKOGIRI_USE_SYSTEM_LIBRARIES: true
services:
redis:
image: redis:${{ matrix.redis-version }}
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps port 6379 on service container to the host
- 6379:6379
steps:
- uses: actions/checkout@v3
- name: Install libxslt for nokogiri gem (required for version < 1.11)
run: sudo apt-get install -y libxml2-dev libxslt-dev
- name: Build libvips (so we can use version ${{ matrix.vips-version }}, since only 8.12 is available on Ubuntu 22)
if: matrix.vips-version != 'apt-default-vips'
run: |
# Instructions below are based on:
# https://www.libvips.org/install.html
# and
# https://github.com/libvips/libvips/wiki/Build-for-Ubuntu
#
# Unstall any already-installed version of vips
sudo apt-get remove libvips42
# Install meson build system
sudo apt-get install -y meson
# Download build dependencies
sudo apt-get install -y build-essential pkg-config libglib2.0-dev libexpat1-dev
# Download various libraries that we want for vips features
sudo apt-get install -y \
libfftw3-dev libexif-dev libjpeg-turbo8-dev \
libpng-dev libwebp-dev libtiff5-dev \
libheif-dev libexpat1-dev libcfitsio-dev \
libmatio-dev libnifti-dev libhwy-dev \
liblcms2-dev libpoppler-glib-dev librsvg2-dev \
libopenexr-dev libpango1.0-dev libarchive-dev \
libopenslide-dev libffi-dev libopenjp2-7-dev \
libimagequant-dev libcgif-dev \
liborc-0.4-dev # FIXME: Remove once libhwy 1.0.5 is available.
# Download and compile selected version of vips
cd /tmp
wget https://github.com/libvips/libvips/releases/download/v${{ matrix.vips-version }}/vips-${{ matrix.vips-version }}.tar.xz
tar xf vips-${{ matrix.vips-version }}.tar.xz
cd vips-${{ matrix.vips-version }}
meson build --libdir=lib --buildtype=release -Dintrospection=disabled
cd build
ninja
ninja test
sudo ninja install
vips --version
- name: Add --no-document option to .gemrc file to speed up bundle install
run: "echo 'gem: --no-document' > ~/.gemrc"
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- run: npm install -g yarn
- run: yarn install
- name: Run CI task
run: bundle exec rake triclops:ci