name: Mac Code Checker # This workflow is triggered on pushes or pull request to the repository. on: push: branches: - master pull_request: # file paths to consider in the event. Optional; defaults to all. paths: - 'scripts/**' - 'internal/**' - 'pkg/**' - 'cmd/**' - 'build/**' - '.github/workflows/mac.yaml' - '.env' - docker-compose.yml - Makefile - '!**.md' - '!build/ci/jenkins/**' # FIXME(wxyu): not need to run code check, update the ci-passed rules and remove these two lines - go.mod - go.sum jobs: mac: name: Code Checker MacOS 12 runs-on: macos-12 timeout-minutes: 180 steps: - name: Checkout uses: actions/checkout@v2 - name: 'Generate CCache Hash' env: CORE_HASH: ${{ hashFiles( 'internal/core/**/*.cpp', 'internal/core/**/*.cc', 'internal/core/**/*.c', 'internal/core/**/*.h', 'internal/core/**/*.hpp', 'internal/core/**/CMakeLists.txt') }} run: | echo "corehash=${CORE_HASH}" >> $GITHUB_ENV echo "Set CCache hash to ${CORE_HASH}" - name: Mac Cache CCache Volumes uses: pat-s/always-upload-cache@v3 with: path: /var/tmp/ccache key: macos-ccache-${{ env.corehash }} restore-keys: macos-ccache- - name: Setup Go environment uses: actions/setup-go@v2.2.0 with: go-version: '~1.18.1' - name: Mac Cache Go Mod Volumes uses: actions/cache@v3 with: path: ~/go/pkg/mod key: macos-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: macos-go-mod- - name: Mac Cache Conan Packages uses: pat-s/always-upload-cache@v3 with: path: ~/.conan key: macos-conan-${{ hashFiles('internal/core/conanfile.*') }} restore-keys: macos-conan- - name: Code Check env: CCACHE_DIR: /var/tmp/ccache CCACHE_COMPILERCHECK: content CCACHE_COMPRESS: 1 CCACHE_COMPRESSLEVEL: 5 CCACHE_MAXSIZE: 2G run: | if [[ ! -d "/var/tmp/ccache" ]];then mkdir -p /var/tmp/ccache fi ls -alh /var/tmp/ccache brew install libomp ninja openblas ccache pkg-config pip3 install conan==1.58.0 if [[ ! -d "/usr/local/opt/llvm" ]]; then ln -s /usr/local/opt/llvm@14 /usr/local/opt/llvm fi make milvus - name: Upload Cmake log uses: actions/upload-artifact@v3 if: ${{ failure() }} with: name: cmake-log path: cmake_build/CMakeFiles/*.log