feat: add support for BLAKE3-256 hash #1872
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'DwarFS CI Build' | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - 'mhx/**' | |
| tags: | |
| - v* | |
| paths-ignore: | |
| - '.benchmark/**' | |
| - '.clang-format' | |
| - '.clang-tidy' | |
| - '.gitignore' | |
| - '.maintainer-scripts/**' | |
| - 'CHANGES.md' | |
| - 'CITATION.cff' | |
| - 'README.md' | |
| - 'TODO' | |
| - 'data/**' | |
| - 'doc/completions/**' | |
| - 'doc/perf/**' | |
| - 'doc/*.gif' | |
| - 'doc/*.png' | |
| - 'doc/*.puml' | |
| - 'doc/*.svg' | |
| - 'scripts/**' | |
| permissions: | |
| contents: read | |
| jobs: | |
| windows: | |
| runs-on: | |
| - self-hosted | |
| - Windows | |
| strategy: | |
| matrix: | |
| arch: | |
| - X64 | |
| build_mode: | |
| - Release | |
| - Debug | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'true' | |
| fetch-depth: '0' | |
| ref: ${{ github.ref }} | |
| - name: Set MSVC Dev Environment | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Configure Build | |
| shell: cmd | |
| run: | | |
| cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_UNIVERSAL_BINARY=ON -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs -DWITH_PXATTR=ON -DENABLE_STACKTRACE=${{ matrix.build_mode == 'Debug' && 'ON' || 'OFF' }} | |
| - name: Run Build | |
| shell: cmd | |
| run: | | |
| cmake --build ${{ runner.temp }}\build | |
| - name: Run Test | |
| shell: cmd | |
| run: | | |
| copy "C:\Program Files (x86)\WinFsp\bin\winfsp-x64.dll" ${{ runner.temp }}\build | |
| ctest --test-dir ${{ runner.temp }}\build --output-on-failure -j | |
| - name: Build Package | |
| shell: cmd | |
| run: | | |
| cmake --build ${{ runner.temp }}\build --target package | |
| - name: Compress Universal Binary | |
| shell: cmd | |
| run: | | |
| cmake --build ${{ runner.temp }}\build --target universal_upx | |
| - name: Copy Artifacts | |
| shell: cmd | |
| run: | | |
| cmake --build ${{ runner.temp }}\build --target copy_artifacts | |
| # - name: Prepare Artifact Upload | |
| # shell: cmd | |
| # run: cat ${{ runner.temp }}\build\artifacts.env >> %GITHUB_ENV% | |
| # - name: Upload Binary Tarball | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: ${{ env.binary_tarball }} | |
| # path: ${{ runner.temp }}\build\${{ env.binary_tarball }} | |
| # if-no-files-found: error | |
| # compression-level: 0 | |
| # env: | |
| # ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: 5 | |
| # - name: Upload Universal Binary | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: ${{ env.universal_binary }} | |
| # path: ${{ runner.temp }}\build\${{ env.universal_binary }} | |
| # if-no-files-found: error | |
| # compression-level: 0 | |
| # env: | |
| # ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: 5 | |
| ################################################################################ | |
| package-source: | |
| uses: ./.github/workflows/docker-run-build.yml | |
| with: | |
| build_type: clang-release-ninja-source-notest | |
| build_arch: amd64 | |
| build_dist: arch | |
| ################################################################################ | |
| linux: | |
| needs: package-source | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| ##################################################################### | |
| # x86_64 builds # | |
| ##################################################################### | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: gcc-release-shared-ninja-split | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: gcc-debug-shared-noperfmon-ninja-split | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: clang-reldbg-shared-asan-ninja | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: clang-reldbg-shared-ubsan-ninja | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: clang-debug-shared-tsan-ninja | |
| - build_arch: amd64 | |
| build_dist: ubuntu | |
| build_type: clang-debug-coverage-ninja | |
| - build_arch: amd64 | |
| build_dist: fedora | |
| build_type: gcc-release-ninja-split | |
| - build_arch: amd64 | |
| build_dist: fedora | |
| build_type: clang-release-shared-ninja-full | |
| - build_arch: amd64 | |
| build_dist: arch | |
| build_type: gcc-release-noman-ninja-split | |
| - build_arch: amd64 | |
| build_dist: arch | |
| build_type: gcc-release-shared-ninja-split | |
| - build_arch: amd64 | |
| build_dist: arch | |
| build_type: gcc-debug-shared-ninja-full | |
| - build_arch: amd64 | |
| build_dist: arch | |
| build_type: clang-release-shared-ninja-full | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-lto-ninja-static | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-release-lto-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-lto-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-minimal-lto-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-libressl-lto-ninja-static | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-minimal-libressl-mimalloc-lto-ninja-static | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-reldbg-stacktrace-ninja-static | |
| ##################################################################### | |
| # aarch64 builds # | |
| ##################################################################### | |
| - build_arch: arm64v8 | |
| build_dist: debian | |
| build_type: gcc-release-dev-make-full | |
| - build_arch: arm64v8 | |
| build_dist: debian | |
| build_type: clang-debug-shared-ninja-split | |
| - build_arch: arm64v8 | |
| build_dist: suse | |
| build_type: gcc-release-ninja-split | |
| - build_arch: arm64v8 | |
| build_dist: suse | |
| build_type: clang-debug-dev-shared-make-full | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu-2204 | |
| build_type: gcc-release-shared-ninja-split | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu-2204 | |
| build_type: gcc-debug-shared-ninja-full | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu-2204 | |
| build_type: clang-release-ninja-split | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu | |
| build_type: gcc-debug-shared-ninja-full | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu | |
| build_type: clang-release-shared-ninja-full | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu | |
| build_type: oldgcc-debug-shared-make-split | |
| - build_arch: arm64v8 | |
| build_dist: ubuntu | |
| build_type: oldclang-debug-shared-make-split | |
| - build_arch: arm64v8 | |
| build_dist: fedora | |
| build_type: gcc-release-shared-make-full | |
| - build_arch: arm64v8 | |
| build_dist: fedora | |
| build_type: gcc-debug-shared-ninja-split | |
| - build_arch: arm64v8 | |
| build_dist: fedora | |
| build_type: clang-release-shared-ninja-full | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: gcc-release-ninja-static | |
| #skip# - build_arch: arm64v8 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-lto-ninja-static | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: clang-release-ninja-static | |
| #skip# - build_arch: arm64v8 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-lto-ninja-static | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: clang-relsize-lto-ninja-static | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| #skip# - build_arch: arm64v8 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-minimal-lto-ninja-static | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-libressl-lto-ninja-static | |
| #skip# - build_arch: arm64v8 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-minimal-libressl-mimalloc-lto-ninja-static | |
| - build_arch: arm64v8 | |
| build_dist: alpine | |
| build_type: clang-reldbg-stacktrace-ninja-static | |
| ##################################################################### | |
| # riscv64 builds # | |
| ##################################################################### | |
| - build_arch: riscv64 | |
| build_dist: debian | |
| build_type: gcc-release-ninja-full | |
| #skip# - build_arch: riscv64 | |
| #skip# build_dist: ubuntu | |
| #skip# build_type: clang-debug-shared-ninja-split | |
| ##################################################################### | |
| # aarch64 builds (cross) # | |
| ##################################################################### | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| cross_arch: aarch64 | |
| ##################################################################### | |
| # riscv64 builds (cross) # | |
| ##################################################################### | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-lto-ninja-static | |
| #skip# cross_arch: riscv64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-lto-ninja-static | |
| #skip# cross_arch: riscv64 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| cross_arch: riscv64 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-libressl-lto-ninja-static | |
| cross_arch: riscv64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-lto-ninja-static | |
| #skip# cross_arch: riscv64 | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-ninja-static | |
| #skip# cross_arch: riscv64 | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-lto-ninja-static | |
| #skip# cross_arch: riscv64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: riscv64 | |
| #skip# skip_slow_tests: true | |
| ##################################################################### | |
| # i386 builds (cross) # | |
| ##################################################################### | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-lto-ninja-static | |
| #skip# cross_arch: i386 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-lto-ninja-static | |
| cross_arch: i386 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| cross_arch: i386 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-libressl-lto-ninja-static | |
| cross_arch: i386 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-lto-ninja-static | |
| #skip# cross_arch: i386 | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-ninja-static | |
| #skip# cross_arch: i386 | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-lto-ninja-static | |
| #skip# cross_arch: i386 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: i386 | |
| #skip# skip_slow_tests: true | |
| ##################################################################### | |
| # arm builds (cross) # | |
| ##################################################################### | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-lto-ninja-static | |
| #skip# cross_arch: arm | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-lto-ninja-static | |
| cross_arch: arm | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-libressl-lto-ninja-static | |
| cross_arch: arm | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-libressl-lto-ninja-static | |
| cross_arch: arm | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-relsize-lto-ninja-static | |
| #skip# cross_arch: arm | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-ninja-static | |
| #skip# cross_arch: arm | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-lto-ninja-static | |
| #skip# cross_arch: arm | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: arm | |
| ##################################################################### | |
| # ppc64le builds (cross) # | |
| ##################################################################### | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: ppc64le | |
| #skip# skip_slow_tests: true | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-lto-ninja-static | |
| cross_arch: ppc64le | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-libressl-lto-ninja-static | |
| cross_arch: ppc64le | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-minimal-libressl-lto-ninja-static | |
| cross_arch: ppc64le | |
| ######## blocked by https://github.com/llvm/llvm-project/issues/150913 | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: clang-relsize-lto-ninja-static | |
| # cross_arch: ppc64le | |
| ##################################################################### | |
| # ppc64 builds (cross) # | |
| ##################################################################### | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: ppc64 | |
| #skip# skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-libressl-ninja-static | |
| cross_arch: ppc64 | |
| skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-minimal-libressl-ninja-static | |
| cross_arch: ppc64 | |
| skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| ######## blocked by https://github.com/rui314/mold/issues/1498 | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: gcc-release-lto-ninja-static | |
| # cross_arch: ppc64 | |
| # skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| ##################################################################### | |
| # loongarch64 builds (cross) # | |
| ##################################################################### | |
| ######## no libressl support | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: clang-relsize-libressl-lto-ninja-static | |
| # cross_arch: loongarch64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-lto-ninja-static | |
| #skip# cross_arch: loongarch64 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-lto-ninja-static | |
| cross_arch: loongarch64 | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: clang-relsize-minimal-lto-ninja-static | |
| cross_arch: loongarch64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: clang-release-ninja-static | |
| #skip# cross_arch: loongarch64 | |
| #skip# skip_slow_tests: true | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-lto-ninja-static | |
| #skip# cross_arch: loongarch64 | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: loongarch64 | |
| #skip# skip_slow_tests: true | |
| ##################################################################### | |
| # s390x builds (cross) # | |
| ##################################################################### | |
| ######## no libressl support | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: clang-relsize-libressl-lto-ninja-static | |
| # cross_arch: s390x | |
| ######## misaligned symbol typeinfo name for std::_Sp_make_shared_tag for relocation R_390_PC32DBL | |
| ######## https://sourceware.org/bugzilla/show_bug.cgi?id=32969 | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: clang-relsize-lto-ninja-static | |
| # cross_arch: s390x | |
| ######## misaligned symbol typeinfo name for std::_Sp_make_shared_tag for relocation R_390_PC32DBL | |
| ######## https://sourceware.org/bugzilla/show_bug.cgi?id=32969 | |
| # - build_arch: amd64 | |
| # build_dist: alpine | |
| # build_type: clang-release-ninja-static | |
| # cross_arch: s390x | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-lto-ninja-static | |
| cross_arch: s390x | |
| skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| - build_arch: amd64 | |
| build_dist: alpine | |
| build_type: gcc-release-minimal-lto-ninja-static | |
| cross_arch: s390x | |
| skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| #skip# - build_arch: amd64 | |
| #skip# build_dist: alpine | |
| #skip# build_type: gcc-release-ninja-static | |
| #skip# cross_arch: s390x | |
| #skip# skip_fuse_tests: true # big-endian FUSE driver won't work on little-endian | |
| uses: ./.github/workflows/docker-run-build.yml | |
| with: | |
| build_type: ${{ matrix.build_type }} | |
| build_arch: ${{ matrix.build_arch }} | |
| build_dist: ${{ matrix.build_dist }} | |
| cross_arch: ${{ matrix.cross_arch }} | |
| skip_slow_tests: ${{ matrix.skip_slow_tests || false }} | |
| skip_fuse_tests: ${{ matrix.skip_fuse_tests || false }} | |
| build_from_tarball: true | |
| upload_coverage: ${{ matrix.build_type == 'clang-debug-coverage-ninja' }} | |
| upload_artifacts: ${{ endsWith(matrix.build_type, '-static') }} | |
| ################################################################################ | |
| macos: | |
| needs: package-source | |
| runs-on: | |
| - self-hosted | |
| - macOS | |
| - ${{ matrix.arch }} | |
| strategy: | |
| matrix: | |
| arch: | |
| - ARM64 | |
| build_mode: | |
| - Release | |
| - Debug | |
| config: | |
| - name: Normal | |
| cmake_args: | |
| - name: Benchmark | |
| cmake_args: -DWITH_BENCHMARKS=ON | |
| include: | |
| - arch: X64 | |
| build_mode: Release | |
| config: | |
| - name: Normal | |
| cmake_args: | |
| - arch: X64 | |
| build_mode: Debug | |
| config: | |
| - name: Benchmark | |
| cmake_args: -DWITH_BENCHMARKS=ON | |
| steps: | |
| - name: Unpack Source Tarball | |
| run: | | |
| rm -rf dwarfs-*/ | |
| rm -f dwarfs-source-*.tar.zst | |
| rm -f dwarfs | |
| tar xf /Volumes/opensource/artifacts/dwarfs/cache/dwarfs-source-${{ github.run_number }}.tar.zst | |
| ln -s dwarfs-* dwarfs | |
| - name: Configure Full Build | |
| run: | | |
| rm -rf ${{ runner.temp }}/build | |
| cmake --fresh -B${{ runner.temp }}/build -S${{ runner.workspace }}/dwarfs/dwarfs -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_PXATTR=ON ${{ matrix.config.cmake_args }} | |
| - name: Run Full Build | |
| run: | | |
| cmake --build ${{ runner.temp }}/build | |
| - name: Run Full Test | |
| run: | | |
| ctest --test-dir ${{ runner.temp }}/build --output-on-failure -j | |
| - name: Cleanup | |
| run: | | |
| cmake --build ${{ runner.temp }}/build --target realclean | |
| - name: Configure Library Build | |
| run: | | |
| cmake --fresh -B${{ runner.temp }}/build -S${{ runner.workspace }}/dwarfs/dwarfs -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_LIBDWARFS=ON -DWITH_TOOLS=OFF -DWITH_FUSE_DRIVER=OFF ${{ matrix.config.cmake_args }} | |
| - name: Run Library Build | |
| run: | | |
| cmake --build ${{ runner.temp }}/build | |
| - name: Run Library Test | |
| run: | | |
| ctest --test-dir ${{ runner.temp }}/build --output-on-failure -j | |
| - name: Install Library | |
| run: | | |
| cmake --install ${{ runner.temp }}/build --prefix ${{ runner.temp }}/install | |
| - name: Cleanup | |
| run: | | |
| cmake --build ${{ runner.temp }}/build --target realclean | |
| - name: Configure Tools Build | |
| run: | | |
| cmake --fresh -B${{ runner.temp }}/build -S${{ runner.workspace }}/dwarfs/dwarfs -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_LIBDWARFS=OFF -DWITH_TOOLS=ON -DWITH_FUSE_DRIVER=OFF ${{ matrix.config.cmake_args }} -DCMAKE_PREFIX_PATH=${{ runner.temp }}/install | |
| - name: Run Tools Build | |
| run: | | |
| cmake --build ${{ runner.temp }}/build | |
| - name: Run Tools Test | |
| run: | | |
| ctest --test-dir ${{ runner.temp }}/build --output-on-failure -j | |
| - name: Install Tools | |
| run: | | |
| cmake --install ${{ runner.temp }}/build --prefix ${{ runner.temp }}/install | |
| - name: Cleanup | |
| run: | | |
| cmake --build ${{ runner.temp }}/build --target realclean | |
| - name: Configure FUSE Driver Build | |
| run: | | |
| cmake --fresh -B${{ runner.temp }}/build -S${{ runner.workspace }}/dwarfs/dwarfs -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_LIBDWARFS=OFF -DWITH_TOOLS=OFF -DWITH_FUSE_DRIVER=ON ${{ matrix.config.cmake_args }} -DCMAKE_PREFIX_PATH=${{ runner.temp }}/install | |
| - name: Run FUSE Driver Build | |
| run: | | |
| cmake --build ${{ runner.temp }}/build | |
| - name: Run FUSE Driver Test | |
| run: | | |
| ctest --test-dir ${{ runner.temp }}/build --output-on-failure -j | |
| - name: Install FUSE Driver | |
| run: | | |
| cmake --install ${{ runner.temp }}/build --prefix ${{ runner.temp }}/install | |
| - name: Cleanup | |
| run: | | |
| cmake --build ${{ runner.temp }}/build --target realclean | |
| rm -rf dwarfs-*/ | |
| rm -f dwarfs-source-*.tar.zst | |
| rm -f dwarfs | |
| ################################################################################ | |
| freebsd: | |
| needs: package-source | |
| runs-on: | |
| - self-hosted | |
| - freebsd | |
| - ${{ matrix.arch }} | |
| strategy: | |
| matrix: | |
| arch: | |
| - amd64 | |
| build_mode: | |
| - Release | |
| - Debug | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'false' | |
| fetch-depth: '0' | |
| ref: ${{ github.ref }} | |
| - name: Run Build | |
| run: | | |
| BUILD_MODE=${{ matrix.build_mode }} \ | |
| sh .github/scripts/freebsd_jail_build.sh |