Skip to content

Bump GitHub Actions libvips to 8.14.4 #79

Bump GitHub Actions libvips to 8.14.4

Bump GitHub Actions libvips to 8.14.4 #79

Workflow file for this run

name: CI
on:
# Only trigger this workflow for the 5.x branch
push:
branches:
- 5.x
tags:
- v*
pull_request:
branches:
- 5.x
jobs:
CI:
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.libvips-version == 'master' }}
strategy:
fail-fast: true
matrix:
include:
# TODO(kleisauke): Enable once magickload_source is supported
# - os: ubuntu-22.04
# libvips-version: master
- os: ubuntu-22.04
libvips-version: 8.14.4
coverage: true
steps:
- uses: actions/checkout@v3
- name: Cache libvips
if: matrix.libvips-version != 'master'
id: cache-libvips
uses: actions/cache@v3
with:
path: ~/vips
key: ${{ matrix.libvips-version }}
- name: Install dependencies
run: |
# for Test::Nginx
curl -fsSL https://openresty.org/package/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openresty.gpg
echo "deb [signed-by=/usr/share/keyrings/openresty.gpg] https://openresty.org/package/ubuntu $(lsb_release -sc) main" | \
sudo tee /etc/apt/sources.list.d/openresty.list > /dev/null
# install dependencies
sudo apt-get update
sudo apt-get install \
meson \
libcgif-dev libexif-dev libexpat1-dev \
libheif-dev libimagequant-dev liblcms2-dev \
libmagickcore-dev liborc-0.4-dev libpango1.0-dev \
libpng-dev libpoppler-glib-dev librsvg2-dev \
libtiff5-dev libwebp-dev \
libtest-nginx-perl
- name: Install libvips
if: steps.cache-libvips.outputs.cache-hit != 'true'
env:
VIPS_VERSION: ${{ matrix.libvips-version }}
VIPS_PRE_VERSION: ${{ matrix.libvips-pre-version }}
run: .ci/install-vips.sh -Ddeprecated=false -Dintrospection=false
- name: Prepare environment
run: |
echo "$HOME/vips/bin" >> $GITHUB_PATH
echo "$HOME/nginx/sbin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=$HOME/vips/lib" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=$HOME/vips/lib/pkgconfig" >> $GITHUB_ENV
mkdir -p build
- name: Build
working-directory: build
run: |
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCUSTOM_NGX_FLAGS="--prefix=$HOME/nginx" \
-DENABLE_COVERAGE=$([ "${{ matrix.coverage }}" = true ] && echo "ON" || echo "OFF") \
-DBUILD_TESTS=ON
cmake --build . -- -j$(nproc)
- name: Run unit tests
env:
VIPS_WARNING: 0
working-directory: build
run: ctest -j $(nproc) --output-on-failure
- name: Run integration tests
env:
TEST_NGINX_SERVROOT: ${{ github.workspace }}/servroot
run: prove -r test/nginx
- name: Upload coverage to Codecov
if: matrix.coverage
uses: codecov/codecov-action@v3
with:
gcov: true
gcov_ignore: test/api
docker-publish:
needs: CI
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository }}
# Add git branch, tag and short SHA as Docker tag
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha
# Disable latest tag convention on push tag event
flavor: |
latest=false
# Overwrite some generated OCI labels
labels: |
org.opencontainers.image.authors=admin@weserv.nl
org.opencontainers.image.documentation=https://github.com/weserv/images/tree/5.x/docker
org.opencontainers.image.description=weserv/images
org.opencontainers.image.vendor=wsrv.nl
- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ secrets.CR_USER }}
password: ${{ secrets.CR_PAT }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: ./docker/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}