Skip to content

Merge pull request #171 from akash-akya/accept-image-load-options #416

Merge pull request #171 from akash-akya/accept-image-load-options

Merge pull request #171 from akash-akya/accept-image-load-options #416

Workflow file for this run

name: CI
on:
- push
- pull_request
jobs:
linux:
runs-on: ubuntu-20.04
name: Test Compiled - Elixir ${{matrix.elixir}} / OTP ${{matrix.otp}}
env:
VIX_COMPILATION_MODE: PLATFORM_PROVIDED_LIBVIPS
strategy:
matrix:
include:
- elixir: 1.12.x
otp: 23.x
- elixir: 1.13.x
otp: 24.x
- elixir: 1.14.x
otp: 25.x
- elixir: 1.15.x
otp: 26.x
- elixir: 1.16.x
otp: 26.x
- elixir: 1.17.x
otp: 27.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v4
- name: Install libvips build dependencies
run: sudo apt-get install build-essential libxml2-dev libfftw3-dev libmagickwand-dev libopenexr-dev liborc-0.4-0 gobject-introspection libgsf-1-dev libglib2.0-dev liborc-0.4-dev curl
- name: Get latest version of libvips
run: |
VIPS_LATEST_RELEASE="https://github.com/libvips/libvips/releases/download/v8.13.0/vips-8.13.0.tar.gz"
echo "VIPS_LATEST_RELEASE=${VIPS_LATEST_RELEASE}" >> $GITHUB_ENV
- name: Cache libvips artifacts
uses: actions/cache@v4
id: vips-cache
with:
path: vips
key: ${{ runner.os }}-vips-${{ env.VIPS_LATEST_RELEASE }}
- name: Compile libvips from source
if: steps.vips-cache.outputs.cache-hit != 'true'
run: |
mkdir vips
curl -s -L "${VIPS_LATEST_RELEASE}" | tar xz -C ./vips --strip-components=1
cd vips
./configure
make
- name: Install libvips
run: |
cd vips
sudo make install
sudo ldconfig -v
- name: Cache Dependencies
id: mix-cache
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: Install Dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: mix deps.get
- run: mix test --trace
linux-precompiled-libvips:
runs-on: ubuntu-20.04
name: Test Pre-compiled libvips - Elixir ${{matrix.elixir}} / OTP ${{matrix.otp}}
env:
VIX_COMPILATION_MODE: PRECOMPILED_LIBVIPS
strategy:
matrix:
include:
- elixir: 1.17.x
otp: 27.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v3
- run: mix deps.get
- run: mix test --trace
linux-precompiled:
runs-on: ubuntu-20.04
name: Test Pre-compiled - Elixir ${{matrix.elixir}} / OTP ${{matrix.otp}}
strategy:
matrix:
include:
- elixir: 1.17.x
otp: 27.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v3
- run: mix deps.get
- run: mix test --trace
macos-precompiled:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- uses: DeterminateSystems/flake-checker-action@main
- run: nix develop --command mix deps.get
- run: nix develop --command mix test --trace
lint:
runs-on: ubuntu-22.04
name: Lint
strategy:
matrix:
include:
- elixir: 1.17.x
otp: 27.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v4
- name: Cache Dependencies
id: mix-cache
uses: actions/cache@v4
with:
path: |
deps
_build
priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: Install Dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: |
mkdir -p priv/plts
mix deps.get
mix dialyzer --plt
- run: mix deps.get
- run: mix clean && mix deep_clean
- run: mix compile --force --warnings-as-errors
- run: mix deps.unlock --check-unused
- run: mix format --check-formatted
- run: mix credo --strict
- run: mix dialyzer --format github