Skip to content

Add derivativo_processing rails environment file #189

Add derivativo_processing rails environment file

Add derivativo_processing rails environment file #189

Workflow file for this run

name: CI
on:
push:
branches: [ '*' ]
jobs:
ci-rails-app:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.2.2']
node: ['16']
# 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
TIKA_VERSION: 2.9.0
TIKA_DOWNLOAD_DIR: /tmp/downloads/tika
TIKA_JAR_PATH: /tmp/downloads/tika/tika-app.jar
SOFFICE_BINARY_PATH: /usr/bin/libreoffice
steps:
- uses: actions/checkout@v3
- name: Cache action for Apache Tika download
id: cache-tika-download
uses: actions/cache@v3
with:
path: ${{ env.TIKA_DOWNLOAD_DIR }}
key: ${{ runner.os }}-tika-${{ env.TIKA_VERSION }}-download
- name: Update apt package index
run: sudo apt-get update
- name: Install other apt dependencies
run: sudo apt-get install -y ffmpeg ghostscript libreoffice
- name: Download Tika
run: |
# Early exit from this run script if TIKA_DOWNLOAD_DIR already exists
if [ -d "$TIKA_DOWNLOAD_DIR" ]; then echo 'Found cached Tika download' && exit; fi
echo "Downloading Tika because no cached directory was found at: $TIKA_DOWNLOAD_DIR"
mkdir -p $TIKA_DOWNLOAD_DIR
cd $TIKA_DOWNLOAD_DIR
wget "https://archive.apache.org/dist/tika/${TIKA_VERSION}/tika-app-${TIKA_VERSION}.jar"
mv tika-app-${TIKA_VERSION}.jar tika-app.jar
- 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 Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- run: npm install -g yarn
- run: yarn install --frozen-lockfile
- name: Set up config files (with custom TIKA_JAR_PATH)
run: bundle exec rake derivativo:setup:config_files TIKA_JAR_PATH=${{ env.TIKA_JAR_PATH }} SOFFICE_BINARY_PATH=${{ env.SOFFICE_BINARY_PATH }}
- name: Run CI task
run: bundle exec rake derivativo:ci