Merge remote-tracking branch 'origin/kdxf' into kdxf-flush #1254
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
UT: | |
name: Build and test AMD64 Ubuntu ${{ matrix.ubuntu }} | |
runs-on: ubuntu-${{ matrix.ubuntu }} | |
timeout-minutes: 120 | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu: [20.04] | |
env: | |
UBUNTU: ${{ matrix.ubuntu }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: 'Check Changed files' | |
id: changed-files-cpp | |
uses: tj-actions/changed-files@v35 | |
with: | |
since_last_remote_commit: 'true' | |
files: | | |
**/*.cpp | |
**/*.cc | |
**/*.c | |
**/*.h | |
**/*.hpp | |
**/*.CMakeLists.txt | |
**/conanfiles.* | |
- name: 'Setup Use USE_ASAN' | |
if: steps.changed-files-cpp.outputs.any_changed == 'true' | |
run: | | |
echo "useasan=true" >> $GITHUB_ENV | |
echo "Setup USE_ASAN to true since cpp file(s) changed" | |
- 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 | |
with: | |
path: .docker/amd64-ubuntu${{ matrix.ubuntu }}-ccache | |
key: ubuntu${{ matrix.ubuntu }}-ccache-${{ env.corehash }} | |
restore-keys: ubuntu${{ matrix.ubuntu }}-ccache- | |
- name: Cache Go Mod Volumes | |
uses: actions/cache@v3 | |
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: Cache Conan Packages | |
uses: actions/cache@v3 | |
with: | |
path: .docker/amd64-ubuntu${{ matrix.ubuntu }}-conan | |
key: ubuntu${{ matrix.ubuntu }}-conan-${{ hashFiles('internal/core/conanfile.*') }} | |
restore-keys: ubuntu${{ matrix.ubuntu }}-conan- | |
- name: Start Service | |
shell: bash | |
run: | | |
docker-compose up -d pulsar etcd minio | |
- name: Build and UnitTest | |
run: | | |
./build/builder.sh /bin/bash -c "make USE_ASAN=${{env.useasan}} ci-ut" | |
- name: Get the status & restart count for containers when ut failed | |
if: ${{ failure() }} | |
run: | | |
echo "----show current status for each container---" | |
docker ps --format "table {{.Names}}\t\t{{.Image}}\t\t{{.Status}}" | |
for container in $(docker ps --format "table {{.Names}}" | grep -v "NAMES"); do | |
echo "restart count for ${container} is $(docker inspect ${container} --format '{{json .RestartCount}}')" | |
done | |
- name: Archive code coverage results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: code-coverage-result | |
path: | | |
./go_coverage.txt | |
./lcov_output.info | |
*.info | |
*.out | |
.git | |
codecov: | |
name: Upload Code Coverage | |
needs: UT | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Download code coverage results | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: code-coverage-result | |
- name: Display structure of code coverage results | |
run: | | |
ls -lah | |
- name: Upload coverage to Codecov | |
if: "github.repository == 'milvus-io/milvus'" | |
uses: codecov/codecov-action@v3.1.1 | |
id: upload_cov | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./go_coverage.txt,./lcov_output.info | |
name: ubuntu-20.04-unittests | |
fail_ci_if_error: true | |
- name: Retry Upload coverage to Codecov | |
if: "${{ failure() }} && github.repository == 'milvus-io/milvus'" | |
uses: codecov/codecov-action@v3.1.1 | |
id: retry_upload_cov | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./go_coverage.txt,./lcov_output.info | |
name: ubuntu-${{ matrix.ubuntu }}-unittests | |
fail_ci_if_error: true |