build_test_msys2.yml (2831B)
1 # Copyright (c) the JPEG XL Project Authors. All rights reserved. 2 # 3 # Use of this source code is governed by a BSD-style 4 # license that can be found in the LICENSE file. 5 6 # Workflow for building and running tests. 7 8 name: Build/Test MSYS2 9 on: 10 merge_group: 11 push: 12 branches: 13 - main 14 - v*.*.x 15 pull_request: 16 types: [opened, reopened, labeled, synchronize] 17 18 permissions: 19 contents: read 20 21 concurrency: 22 group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} 23 cancel-in-progress: ${{ github.event_name == 'pull_request' }} 24 25 jobs: 26 build_test: 27 name: Windows MSYS2 / ${{ matrix.msystem }} 28 runs-on: windows-latest 29 continue-on-error: ${{ matrix.faulty || false }} 30 strategy: 31 fail-fast: false 32 matrix: 33 include: 34 - msystem: mingw64 35 - msystem: clang64 36 - msystem: mingw32 37 disable_tests: 38 - ButteraugliTest.Lossless 39 - ButteraugliTest.Distmap 40 # "Legacy" toolchains are being "phased-out": 41 # https://www.msys2.org/news/#2023-12-13-starting-to-drop-some-32-bit-packages 42 # clang32 is already missing required "gtest" and "libavif" 43 # - msystem: clang32 44 # disable_benchmark: true 45 46 defaults: 47 run: 48 shell: msys2 {0} 49 steps: 50 - name: Harden Runner 51 uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 52 with: 53 egress-policy: audit 54 55 - name: Checkout the source 56 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 57 with: 58 submodules: true 59 fetch-depth: 1 60 - uses: msys2/setup-msys2@07aeda7763550b267746a772dcea5e5ac3340b36 # v2 61 with: 62 msystem: ${{ matrix.msystem }} 63 update: true 64 path-type: inherit 65 install: >- 66 base-devel 67 git 68 pacboy: >- 69 brotli:p 70 cmake:p 71 giflib:p 72 gtest:p 73 libavif:p 74 libjpeg-turbo:p 75 libpng:p 76 libwebp:p 77 ninja:p 78 toolchain:p 79 80 - name: CMake configure 81 run: | 82 cmake \ 83 -DCMAKE_BUILD_TYPE=Release \ 84 -DJPEGXL_ENABLE_JNI=OFF \ 85 -DJPEGXL_ENABLE_MANPAGES=OFF \ 86 -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \ 87 -DJPEGXL_FORCE_SYSTEM_GTEST=ON \ 88 -B build \ 89 -G Ninja 90 - name: CMake build 91 run: cmake --build build 92 - name: Test 93 if: | 94 github.event_name == 'push' || 95 (github.event_name == 'pull_request' && 96 contains(github.event.pull_request.labels.*.name, 'CI:full')) 97 run: ctest --test-dir build --parallel 2 --output-on-failure -E "${{ join(matrix.disable_tests, '|') }}"