name: Code Checker # TODO: do not trigger action for some document file update # 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/**' - 'cmd/**' - 'build/**' - '.github/workflows/code-checker.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: ubuntu: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} timeout-minutes: 60 strategy: fail-fast: false matrix: include: - name: Code Checker AMD64 Ubuntu 18.04 os: ubuntu-18.04 - name: Code Checker MacOS 11 os: macos-11 env: UBUNTU: 18.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Cache CCache Volumes if: ${{ matrix.os == 'ubuntu-18.04' }} uses: actions/cache@v1 with: path: .docker/amd64-ubuntu18.04-ccache key: ubuntu18.04-ccache-${{ hashFiles('internal/core/**') }} restore-keys: ubuntu18.04-ccache- - name: Cache Third Party if: ${{ matrix.os == 'ubuntu-18.04' }} uses: actions/cache@v1 with: path: .docker/thirdparty key: ubuntu18.04-thirdparty-${{ hashFiles('internal/core/**') }} restore-keys: ubuntu18.04-thirdparty- - name: Mac Cache Third Party if: ${{ matrix.os == 'macos-11' }} uses: actions/cache@v1 with: path: /tmp/thirdparty key: macos-11-thirdparty-${{ hashFiles('internal/core/**') }} restore-keys: macos-11-thirdparty- - name: Mac Cache CCache Volumes if: ${{ matrix.os == 'macos-11' }} uses: actions/cache@v1 with: path: /var/tmp/ccache key: macos-11-ccache-${{ hashFiles('internal/core/**') }} restore-keys: macos-11-ccache- - name: Cache Go Mod Volumes if: ${{ matrix.os == 'ubuntu-18.04' }} uses: actions/cache@v1 with: path: .docker/amd64-ubuntu18.04-go-mod key: ubuntu18.04-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: ubuntu18.04-go-mod- - name: Setup Go environment uses: actions/setup-go@v2.2.0 if: ${{ matrix.os == 'macos-11' }} with: go-version: '^1.17.1' - name: Mac Cache Go Mod Volumes if: ${{ matrix.os == 'macos-11' }} uses: actions/cache@v1 with: path: ~/go/pkg/mod key: macos-11-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: macos-11-go-mod- - name: Code Check if: ${{ matrix.os == 'ubuntu-18.04' }} env: CHECK_BUILDER: "1" run: | ./build/builder.sh /bin/bash -c "make check-proto-product && make verifiers" - name: Code Check if: ${{ matrix.os == 'macos-11' }} env: CCACHE_DIR: /var/tmp/ccache CCACHE_COMPILERCHECK: content CCACHE_COMPRESS: 1 CCACHE_COMPRESSLEVEL: 5 CCACHE_MAXSIZE: 2G CUSTOM_THIRDPARTY_PATH: /tmp/thirdparty run: | if [[ ! -d "/var/tmp/ccache" ]];then mkdir -p /var/tmp/ccache fi brew install boost libomp ninja tbb ccache make check-proto-product && make verifiers