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@v3 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@v3 with: path: .docker/thirdparty key: ubuntu18.04-thirdparty-${{ hashFiles('internal/core/thirdparty/**') }} restore-keys: ubuntu18.04-thirdparty- - name: Mac Cache Third Party if: ${{ matrix.os == 'macos-11' }} uses: actions/cache@v3 with: path: | /tmp/thirdparty cmake_build/3rdparty_download/download key: macos-11-thirdparty-${{ hashFiles('internal/core/thirdparty/**') }} restore-keys: macos-11-thirdparty- - name: Mac Cache CCache Volumes if: ${{ matrix.os == 'macos-11' }} uses: actions/cache@v3 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@v3 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@v3 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 openblas ccache make check-proto-product && make verifiers && sh scripts/collect_arrow_dep.sh -f /tmp/thirdparty centos: name: Code Checker CentOS 7 # Run in centos docker runs-on: ubuntu-18.04 timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v2 - name: Cache CCache Volumes uses: actions/cache@v3 with: path: .docker/amd64-centos7-ccache key: centos7-ccache-${{ hashFiles('internal/core/**') }} restore-keys: centos7-ccache- - name: Cache Third Party uses: actions/cache@v3 with: path: .docker/thirdparty key: centos7-thirdparty-${{ hashFiles('internal/core/thirdparty/**') }} restore-keys: centos7-thirdparty- - name: Cache Go Mod Volumes uses: actions/cache@v3 with: path: .docker/amd64-centos7-go-mod key: centos7-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: centos7-go-mod- - name: Code Check env: CHECK_BUILDER: "1" OS_NAME: "centos7" run: | ./build/builder.sh /bin/bash -c "make install" mingw64: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} timeout-minutes: 60 strategy: fail-fast: false matrix: include: - name: Code Checker MinGW os: windows-2019 steps: - name: Set git to use LF run: | git config --global core.autocrlf false git config --global core.eol lf - name: Checkout uses: actions/checkout@v2 - name: Cache go uses: actions/cache@v3 with: path: | %LocalAppData%\go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-go- - name: Cache ccache uses: actions/cache@v3 with: path: | ${{ github.workspace }}/.ccache key: ${{ runner.os }}-ccache-${{ hashFiles('internal/core/**') }} restore-keys: ${{ runner.os }}-ccache- - name: Configure Toolchain uses: msys2/setup-msys2@v2 with: msystem: mingw64 - name: Install Deps shell: msys2 {0} run: | sh scripts/install_deps_msys.sh - name: Code Check shell: msys2 {0} env: CCACHE_COMPILERCHECK: content CCACHE_COMPRESS: 1 CCACHE_COMPRESSLEVEL: 5 CCACHE_MAXSIZE: 2G CCACHE_DIR: ${{ github.workspace }}/.ccache run: | mingw32-make verifiers build-go