More style fixes #101
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |