name: Prepare runner description: Install packages, set environment variables, create directories inputs: disable_ccache: description: Whether ccache should be disabled required: true runs: using: composite steps: - name: Install packages on mac if: ${{ runner.os == 'macOS' }} shell: bash run: | brew install llvm@14 pkg-config ninja bison ccache jq gh conan@1 ca-certificates echo "/opt/homebrew/opt/conan@1/bin" >> $GITHUB_PATH - name: Install CMake 3.31.6 on mac if: ${{ runner.os == 'macOS' }} shell: bash run: | # Uninstall any existing cmake brew uninstall cmake --ignore-dependencies || true # Download specific cmake formula FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/b4e46db74e74a8c1650b38b1da222284ce1ec5ce/Formula/c/cmake.rb" FORMULA_EXPECTED_SHA256="c7ec95d86f0657638835441871e77541165e0a2581b53b3dd657cf13ad4228d4" mkdir -p /tmp/homebrew-formula curl -s -L $FORMULA_URL -o /tmp/homebrew-formula/cmake.rb # Verify the downloaded formula ACTUAL_SHA256=$(shasum -a 256 /tmp/homebrew-formula/cmake.rb | cut -d ' ' -f 1) if [ "$ACTUAL_SHA256" != "$FORMULA_EXPECTED_SHA256" ]; then echo "Error: Formula checksum mismatch" echo "Expected: $FORMULA_EXPECTED_SHA256" echo "Actual: $ACTUAL_SHA256" exit 1 fi # Install cmake from the specific formula with force flag brew install --force /tmp/homebrew-formula/cmake.rb - name: Fix git permissions on Linux if: ${{ runner.os == 'Linux' }} shell: bash run: git config --global --add safe.directory $PWD - name: Set env variables for macOS if: ${{ runner.os == 'macOS' }} shell: bash run: | echo "CCACHE_DIR=${{ github.workspace }}/.ccache" >> $GITHUB_ENV echo "CONAN_USER_HOME=${{ github.workspace }}" >> $GITHUB_ENV - name: Set env variables for Linux if: ${{ runner.os == 'Linux' }} shell: bash run: | echo "CCACHE_DIR=/root/.ccache" >> $GITHUB_ENV echo "CONAN_USER_HOME=/root/" >> $GITHUB_ENV - name: Set CCACHE_DISABLE=1 if: ${{ inputs.disable_ccache == 'true' }} shell: bash run: | echo "CCACHE_DISABLE=1" >> $GITHUB_ENV - name: Create directories shell: bash run: | mkdir -p $CCACHE_DIR mkdir -p $CONAN_USER_HOME/.conan