2727
2828jobs :
2929 build :
30- name : Build (${{ matrix.name }})
30+ name : Build ${{ matrix.build }} (${{ matrix.name }})
3131 runs-on : ${{ matrix.os }}
32- # https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
33- # https://trac.ffmpeg.org/wiki/CompilationGuide/macOS
34- # https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW
3532 strategy :
36- fail-fast : false # false to test all, true to fail entire job if any fail
33+ fail-fast : false
3734 matrix :
3835 include :
39- - name : Linux-x86_64 # ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}
36+ # name: ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}
37+ - name : Linux-x86_64
4038 os : ubuntu-22.04
4139 arch : x86_64
4240 generator : " Unix Makefiles"
4341 shell : bash
42+ build : ALL
4443 - name : Linux-aarch64
4544 os : ubuntu-22.04
4645 arch : aarch64
4746 generator : " Unix Makefiles"
4847 shell : bash
4948 target : aarch64-linux-gnu
49+ build : ALL
5050 - name : Linux-ppc64le
5151 os : ubuntu-22.04
5252 arch : powerpc64le
5353 generator : " Unix Makefiles"
5454 shell : bash
5555 target : powerpc64le-linux-gnu
56+ build : FFMPEG # https://github.com/boostorg/context/issues/311
5657 - name : Darwin-x86_64
5758 os : macos-13
5859 arch : x86_64
5960 generator : " Unix Makefiles"
6061 shell : bash
6162 target : x86_64-apple-macosx
63+ build : ALL
6264 - name : Darwin-arm64
6365 os : macos-14
6466 arch : aarch64
6567 generator : " Unix Makefiles"
6668 shell : bash
6769 target : arm64-apple-macosx
70+ build : ALL
6871 - name : Windows-AMD64
6972 os : windows-2022
7073 arch : x86_64
7174 generator : " MSYS Makefiles"
7275 shell : msys2 {0}
7376 msystem : ucrt64
7477 toolchain : ucrt-x86_64
78+ build : BOOST
79+ - name : Windows-AMD64
80+ os : windows-2022
81+ arch : x86_64
82+ generator : " MSYS Makefiles"
83+ shell : msys2 {0}
84+ msystem : ucrt64
85+ toolchain : ucrt-x86_64
86+ build : FFMPEG
7587 - name : Windows-ARM64
7688 os : windows-11-arm
7789 arch : aarch64
7890 generator : " MSYS Makefiles"
7991 shell : msys2 {0}
8092 msystem : clangarm64
8193 toolchain : clang-aarch64
94+ build : ALL
8295 - name : FreeBSD-amd64
8396 os : ubuntu-latest
8497 arch : x86_64
8598 bsd_release : ' 14.3'
8699 generator : " Unix Makefiles"
87100 shell : freebsd {0}
101+ build : ALL
88102 - name : FreeBSD-aarch64
89103 os : ubuntu-latest # ubuntu-24.04-arm is slower with the FreeBSD VM
90104 arch : aarch64
91105 bsd_release : ' 14.3'
92106 generator : " Unix Makefiles"
93107 shell : freebsd {0}
108+ build : ALL
94109 defaults :
95110 run :
96111 shell : ${{ matrix.shell }}
@@ -327,6 +342,7 @@ jobs:
327342 "diffutils"
328343 "git"
329344 "make"
345+ "patch"
330346 "pkg-config"
331347 "mingw-w64-${TOOLCHAIN}-binutils"
332348 "mingw-w64-${TOOLCHAIN}-cmake"
@@ -489,6 +505,8 @@ jobs:
489505 -B build \
490506 -S . \
491507 -G "${{ matrix.generator }}" \
508+ -DBUILD_ALL=OFF \
509+ -DBUILD_${{ matrix.build }}=ON \
492510 -DCMAKE_TOOLCHAIN_FILE=${{ env.CMAKE_TOOLCHAIN_FILE }} \
493511 -DCMAKE_INSTALL_PREFIX="${{ env.ROOT_PATH }}/build/dist" \
494512 -DPARALLEL_BUILDS=${{ steps.processor_count.outputs.PROCESSOR_COUNT || 1 }}
@@ -506,7 +524,9 @@ jobs:
506524 ${{ env.MAKE_CMD }} -C build install
507525
508526 - name : Debug logs
509- if : always()
527+ if : >-
528+ always() &&
529+ matrix.build == 'FFMPEG'
510530 shell : bash
511531 run : |
512532 echo "::group::x264 config.log"
@@ -529,15 +549,26 @@ jobs:
529549
530550 - name : Cleanup
531551 shell : bash
532- run : rm -f -r ./build/dist/share
552+ run : |
553+ rm -f -r ./build/dist/share
554+ rm -f -r ./build/dist/lib/cmake
533555
534556 - name : Upload Artifacts
535557 uses : actions/upload-artifact@v4
536558 with :
537559 if-no-files-found : error
538- name : ${{ matrix.name }}
560+ name : ${{ matrix.name }}-${{ matrix.build }}
539561 path : ./build/dist
540562
563+ conclusion :
564+ name : Conclusion
565+ needs : build
566+ runs-on : ubuntu-latest
567+ steps :
568+ # this job is simply used for branch protection rules so we don't have to add every matrix combination
569+ - name : Check build status
570+ run : echo "Build succeeded"
571+
541572 update_dist :
542573 # only the commit is conditional, so the rest of the job can be verified on PRs
543574 name : Update dist
0 commit comments