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/**' - 'pkg/**' - 'cmd/**' - 'build/**' - 'tests/integration/**' - '.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: Code Checker AMD64 Ubuntu 20.04 runs-on: ubuntu-latest timeout-minutes: 180 strategy: fail-fast: false steps: - name: Maximize build space uses: easimon/maximize-build-space@master with: root-reserve-mb: 20480 swap-size-mb: 1024 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' - 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: 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, */go.sum') }} restore-keys: ubuntu20.04-go-mod- - name: Cache Conan Packages 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: Setup upterm session # uses: lhotari/action-upterm@v1 - name: Code Check env: OS_NAME: 'ubuntu20.04' run: | ./build/builder.sh /bin/bash -c "make check-proto-product && make verifiers" amazonlinux: name: Code Checker Amazonlinux 2023 # Run in amazonlinux docker runs-on: ubuntu-latest timeout-minutes: 180 steps: - name: Maximize build space uses: easimon/maximize-build-space@master with: root-reserve-mb: 20480 swap-size-mb: 1024 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' - 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: pat-s/always-upload-cache@v3 with: path: .docker/amd64-amazonlinux2023-ccache key: amazonlinux2023-ccache-${{ env.corehash }} restore-keys: amazonlinux2023-ccache- - name: Cache Third Party uses: actions/cache@v3 with: path: .docker/thirdparty key: amazonlinux2023-thirdparty-${{ hashFiles('internal/core/thirdparty/**') }} restore-keys: amazonlinux2023-thirdparty- - name: Cache Go Mod Volumes uses: actions/cache@v3 with: path: .docker/amd64-amazonlinux2023-go-mod key: amazonlinux2023-go-mod-${{ hashFiles('go.sum, */go.sum') }} restore-keys: amazonlinux2023-go-mod- - name: Cache Conan Packages uses: pat-s/always-upload-cache@v3 with: path: .docker/amd64-amazonlinux2023-conan key: amazonlinux2023-conan-${{ hashFiles('internal/core/conanfile.*') }} restore-keys: amazonlinux2023-conan- - name: Code Check run: | sed -i 's/ubuntu20.04/amazonlinux2023/g' .env ./build/builder.sh /bin/bash -c "make install"