Add derivativo_processing rails environment file #189
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-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 |