Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Windows CI with installed packages. #2110

Merged
merged 2 commits into from
Apr 15, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add Windows CI with installed packages.
vcpkg is used to install and use packages.
  • Loading branch information
vrabaud committed Apr 15, 2024
commit ed916cbcda592557535a0ae437bbb43f7de66fbc
76 changes: 76 additions & 0 deletions .github/workflows/ci-windows-installed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# This is a copy of ci-windows.yml for installed dependencies. It defers in the following ways:
#
# * vcpkg is used to install dependencies that are packaged.
# * rav1e is installed from a binary upstream.
# * TODO: use proper installations of libgav1, libsharpyuv and SVT once released.

name: CI Windows Installed
on: [push, pull_request]

permissions:
contents: read

# Cancel the workflow if a new one is triggered from the same PR, branch, or tag, except on main.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build-windows-installed:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest]

steps:
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- name: Setup Visual Studio shell
if: runner.os == 'Windows'
uses: egor-tensin/vs-shell@9a932a62d05192eae18ca370155cf877eecc2202 # v2.1
- name: Print CMake version
run: cmake --version
- uses: seanmiddleditch/gha-setup-ninja@8b297075da4cd2a5f1fd21fe011b499edf06e9d2 # v4
- name: Print ImageMagick version
run: magick --version
- name: vcpkg build
uses: johnwason/vcpkg-action@v6
id: vcpkg
with:
pkgs: aom dav1d libjpeg-turbo libpng libxml2 libyuv zlib
triplet: x64-windows-release
token: ${{ github.token }}
github-binarycache: true
cache-key: ${{ hashFiles('cmake/Modules/*', 'ext/*.cmd', 'ext/*.sh') }}
- name: Install rav1e
run: |
$LINK = "https://github.com/xiph/rav1e/releases/download/v0.7.1"
$FILE = "rav1e-0.7.1-windows-msvc-generic"
curl -LO "$LINK/$FILE.zip"
mkdir -p ${{ github.workspace }}\tmp
7z x -y "$FILE.zip" -o"${{ github.workspace }}\tmp"
mv ${{ github.workspace }}\tmp\rav1e-windows-msvc-sdk\bin\* ${{ github.workspace }}\vcpkg\installed\x64-windows-release\bin
mv ${{ github.workspace }}\tmp\rav1e-windows-msvc-sdk\include\* ${{ github.workspace }}\vcpkg\installed\x64-windows-release\include
mv ${{ github.workspace }}\tmp\rav1e-windows-msvc-sdk\lib\rav1e* ${{ github.workspace }}\vcpkg\installed\x64-windows-release\lib
mv ${{ github.workspace }}\tmp\rav1e-windows-msvc-sdk\lib\pkgconfig\* ${{ github.workspace }}\vcpkg\installed\x64-windows-release\lib\pkgconfig
- name: Prepare libavif (cmake)
run: >
cmake ${{ steps.vcpkg.outputs.vcpkg-cmake-config }} -G Ninja -S ./ -B build
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
-DAVIF_CODEC_AOM=SYSTEM -DAVIF_CODEC_DAV1D=SYSTEM
-DAVIF_CODEC_RAV1E=SYSTEM
-DAVIF_JPEG=SYSTEM -DAVIF_LIBXML2=SYSTEM
-DAVIF_LIBYUV=SYSTEM -DAVIF_ZLIBPNG=SYSTEM
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=ON -DAVIF_GTEST=LOCAL
-DAVIF_ENABLE_EXPERIMENTAL_YCGCO_R=ON
-DAVIF_ENABLE_EXPERIMENTAL_GAIN_MAP=ON
-DAVIF_ENABLE_EXPERIMENTAL_AVIR=ON
-DAVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM=ON
-DAVIF_ENABLE_WERROR=ON
- name: Build libavif (ninja)
working-directory: ./build
run: ninja
- name: Run AVIF Tests
working-directory: ./build
run: ctest -j $Env:NUMBER_OF_PROCESSORS --output-on-failure