fix: [cherry-pick] Check whether compaction plan exist before update(… #7
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 | |
# 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/**' | |
- 'pkg/**' | |
- 'cmd/**' | |
- 'build/**' | |
- 'tests/integration/**' # run integration test | |
- '.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/**' | |
- 'pkg/**' | |
- 'cmd/**' | |
- 'build/**' | |
- 'tests/integration/**' # run integration test | |
- '.github/workflows/main.yaml' | |
- '.env' | |
- docker-compose.yml | |
- Makefile | |
- go.mod | |
- '!**.md' | |
- '!build/ci/jenkins/**' | |
jobs: | |
Build: | |
name: Build and test AMD64 Ubuntu ${{ matrix.ubuntu }} | |
runs-on: ubuntu-${{ matrix.ubuntu }} | |
timeout-minutes: 180 | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu: [20.04] | |
env: | |
UBUNTU: ${{ matrix.ubuntu }} | |
steps: | |
- name: Setup mold | |
uses: rui314/setup-mold@v1 | |
- 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 | |
**/conanfile.* | |
- name: 'Setup Use USE_ASAN' | |
if: steps.changed-files-cpp.outputs.any_changed == 'true' | |
run: | | |
echo "useasan=ON" >> $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', 'internal/core/conanfile.py') }} | |
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-ubuntu${{ matrix.ubuntu }}-ccache | |
key: ubuntu${{ matrix.ubuntu }}-ccache-${{ env.corehash }} | |
restore-keys: ubuntu${{ matrix.ubuntu }}-ccache- | |
- name: Cache Conan Packages | |
uses: pat-s/always-upload-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: Build | |
run: | | |
./build/builder.sh /bin/bash -c "make USE_ASAN=${{env.useasan}} build-cpp-with-coverage" | |
- run: | | |
zip -r code.zip . -x "./.docker/*" | |
- name: Archive code | |
uses: actions/upload-artifact@v3 | |
with: | |
name: code | |
path: code.zip | |
UT-Cpp: | |
name: UT for Cpp | |
needs: Build | |
runs-on: ubuntu-${{ matrix.ubuntu }} | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu: [20.04] | |
env: | |
UBUNTU: ${{ matrix.ubuntu }} | |
steps: | |
- name: Download code | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: code | |
- run: | | |
unzip code.zip | |
rm code.zip | |
- name: Cache Conan Packages | |
uses: pat-s/always-upload-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 azurite | |
# - name: 'Setup upterm session' | |
# uses: lhotari/action-upterm@v1 | |
- name: UT | |
run: | | |
chmod +x build/builder.sh | |
chmod +x scripts/* | |
chmod +x internal/core/output/unittest/* | |
./build/builder.sh /bin/bash -c ./scripts/run_cpp_codecov.sh | |
- name: Archive result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: cpp-result | |
path: | | |
./go_coverage.txt | |
./lcov_output.info | |
*.info | |
*.out | |
UT-Go: | |
name: UT for Go | |
needs: Build | |
runs-on: ubuntu-${{ matrix.ubuntu }} | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu: [20.04] | |
env: | |
UBUNTU: ${{ matrix.ubuntu }} | |
steps: | |
- name: Download code | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: code | |
- run: | | |
unzip code.zip | |
rm code.zip | |
- 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: Start Service | |
shell: bash | |
run: | | |
docker-compose up -d pulsar etcd minio azurite | |
# - name: 'Setup upterm session' | |
# uses: lhotari/action-upterm@v1 | |
- name: UT | |
run: | | |
chmod +x build/builder.sh | |
chmod +x scripts/run_go_codecov.sh | |
./build/builder.sh /bin/bash -c ./scripts/run_go_codecov.sh | |
- name: Archive result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: go-result | |
path: | | |
./go_coverage.txt | |
./lcov_output.info | |
*.info | |
*.out | |
.git | |
integration-test: | |
name: Integration Test | |
needs: Build | |
runs-on: ubuntu-${{ matrix.ubuntu }} | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu: [20.04] | |
env: | |
UBUNTU: ${{ matrix.ubuntu }} | |
steps: | |
- name: Download code | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: code | |
- run: | | |
unzip code.zip | |
rm code.zip | |
- 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: Start Service | |
shell: bash | |
run: | | |
docker-compose up -d pulsar etcd minio | |
- name: IntegrationTest | |
run: | | |
chmod +x build/builder.sh | |
chmod +x scripts/run_intergration_test.sh | |
./build/builder.sh /bin/bash -c ./scripts/run_intergration_test.sh | |
- name: Archive result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: it-result | |
path: | | |
./it_coverage.txt | |
*.info | |
*.out | |
codecov: | |
name: Upload Code Coverage | |
needs: [UT-Cpp, UT-Go, integration-test] | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Download Cpp code coverage results | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: cpp-result | |
- name: Download Go code coverage results | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: go-result | |
- name: Download Integration Test coverage results | |
uses: actions/download-artifact@v3.0.1 | |
with: | |
name: it-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,./it_coverage.txt | |
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,./it_coverage.txt | |
name: ubuntu-${{ matrix.ubuntu }}-unittests | |
fail_ci_if_error: true |