name: Build and test # TODO: do not trigger action for some document file update # This workflow is triggered on pushes or pull request to the repository. on: push: # file paths to consider in the event. Optional; defaults to all. paths: - 'scripts/**' - 'internal/**' - 'cmd/**' - 'build/**' - '.github/workflows/main.yaml' - '.env' - docker-compose.yml - Makefile - go.mod - '!**.md' - '!build/ci/jenkins/**' pull_request: # file paths to consider in the event. Optional; defaults to all. paths: - 'scripts/**' - 'internal/**' - 'cmd/**' - 'build/**' - '.github/workflows/main.yaml' - '.env' - docker-compose.yml - Makefile - go.mod - '!**.md' - '!build/ci/jenkins/**' jobs: ubuntu: name: Build and test AMD64 Ubuntu ${{ matrix.ubuntu }} runs-on: ubuntu-${{ matrix.ubuntu }} timeout-minutes: 90 strategy: fail-fast: false matrix: ubuntu: [18.04] env: UBUNTU: ${{ matrix.ubuntu }} steps: - name: Checkout uses: actions/checkout@v2 - name: Cache CCache Volumes uses: actions/cache@v1 with: path: .docker/amd64-ubuntu${{ matrix.ubuntu }}-ccache key: ubuntu${{ matrix.ubuntu }}-ccache-${{ hashFiles('internal/core/**') }} restore-keys: ubuntu${{ matrix.ubuntu }}-ccache- - name: Cache Go Mod Volumes uses: actions/cache@v1 with: path: .docker/amd64-ubuntu${{ matrix.ubuntu }}-go-mod key: ubuntu${{ matrix.ubuntu }}-go-mod-${{ hashFiles('**/go.sum') }} restore-keys: ubuntu${{ matrix.ubuntu }}-go-mod- - name: Start Service shell: bash run: | docker-compose up -d pulsar etcd minio - name: Build and UnitTest env: CHECK_BUILDER: "1" run: | ./build/builder.sh /bin/bash -c "make check-proto-product && make codecov" - name: Upload coverage to Codecov if: "github.repository == 'milvus-io/milvus'" uses: codecov/codecov-action@v2 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./go_coverage.txt,./lcov_output.info name: ubuntu-${{ matrix.ubuntu }}-unittests fail_ci_if_error: true