From dda3b0273b4f2bae896c914d2df88cc13345e818 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 14 Aug 2024 00:00:40 +0200 Subject: [PATCH] build: make macOS build job more ccache friendly --- .github/workflows/build.yml | 116 ++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 51 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 66f49541..c24fb234 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -441,66 +441,80 @@ jobs: - name: Configure Full Build run: | - cmake -B${{ runner.temp }}/build-full -S${{ runner.workspace }}/dwarfs/dwarfs -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_PXATTR=ON ${{ matrix.config.cmake_args }} + 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-full + cmake --build ${{ runner.temp }}/build - name: Run Full Test run: | - ctest --test-dir ${{ runner.temp }}/build-full --output-on-failure -j - - - name: Configure Library Build - run: | - cmake -B${{ runner.temp }}/build-library -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-library - - - name: Run Library Test - run: | - ctest --test-dir ${{ runner.temp }}/build-library --output-on-failure -j - - - name: Install Library - run: | - cmake --install ${{ runner.temp }}/build-library --prefix ${{ runner.temp }}/install - - - name: Configure Tools Build - run: | - cmake -B${{ runner.temp }}/build-tools -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-tools - - - name: Run Tools Test - run: | - ctest --test-dir ${{ runner.temp }}/build-tools --output-on-failure -j - - - name: Install Tools - run: | - cmake --install ${{ runner.temp }}/build-tools --prefix ${{ runner.temp }}/install - - - name: Configure FUSE Driver Build - run: | - cmake -B${{ runner.temp }}/build-driver -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-driver - - - name: Run FUSE Driver Test - run: | - ctest --test-dir ${{ runner.temp }}/build-driver --output-on-failure -j - - - name: Install FUSE Driver - run: | - cmake --install ${{ runner.temp }}/build-driver --prefix ${{ runner.temp }}/install + 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