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 - .golangci.yml - rules.go jobs: ubuntu: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} timeout-minutes: 120 strategy: fail-fast: false matrix: include: - name: Code Checker AMD64 Ubuntu 20.04 os: ubuntu-20.04 env: UBUNTU: 20.04 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: Cache CCache Volumes # uses: actions/cache@v3 uses: pat-s/always-upload-cache@v3 with: path: .docker/amd64-ubuntu20.04-ccache key: ubuntu20.04-ccache-${{ env.corehash }} restore-keys: ubuntu20.04-ccache- - name: Cache Go Mod Volumes uses: actions/cache@v3 with: path: .docker/amd64-ubuntu20.04-go-mod key: ubuntu20.04-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: ubuntu20.04-go-mod- - name: Cache Conan Packages # uses: actions/cache@v3 uses: pat-s/always-upload-cache@v3 with: path: .docker/amd64-ubuntu20.04-conan key: ubuntu20.04-conan-${{ hashFiles('internal/core/conanfile.*') }} restore-keys: ubuntu20.04-conan- - name: Code Check env: OS_NAME: 'ubuntu20.04' run: | ./build/builder.sh /bin/bash -c "make check-proto-product && make verifiers" centos: name: Code Checker CentOS 7 # Run in centos docker runs-on: ubuntu-20.04 timeout-minutes: 120 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: Cache CCache Volumes # uses: actions/cache@v3 uses: pat-s/always-upload-cache@v3 with: path: .docker/amd64-centos7-ccache key: centos7-ccache-${{ env.corehash }} 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: Cache Conan Packages # uses: actions/cache@v3 uses: pat-s/always-upload-cache@v3 with: path: .docker/amd64-centos7-conan key: centos7-conan-${{ hashFiles('internal/core/conanfile.*') }} # restore-keys: centos7-conan- - name: Code Check env: OS_NAME: 'centos7' run: | ./build/builder.sh /bin/bash -c "make install"