diff options
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/.github/workflows')
5 files changed, 602 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/.github/workflows/benchmark.yml b/src/jaegertracing/opentelemetry-cpp/.github/workflows/benchmark.yml new file mode 100644 index 000000000..d6b12b82d --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/.github/workflows/benchmark.yml @@ -0,0 +1,72 @@ +name: OpenTelemetry-cpp benchmarks +on: + push: + branches: + - main + +permissions: + contents: write + deployments: write + +jobs: + benchmark: + name: Run OpenTelemetry-cpp benchmarks + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_benchmark + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: Run benchmark + id: run_benchmarks + run: | + ci/do_ci.sh bazel.benchmark + mkdir -p benchmarks + mv api-benchmark_result.json benchmarks + mv sdk-benchmark_result.json benchmarks + mv exporters-benchmark_result.json benchmarks + - uses: actions/upload-artifact@master + with: + name: benchmark_results + path: benchmarks + store_benchmark: + needs: benchmark + strategy: + matrix: + components: ["api", "sdk", "exporters"] + name: Store benchmark result + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@master + with: + name: benchmark_results + path: benchmarks + - name: Print json files + id: print_json + run: | + cat benchmarks/* + - name: Push benchmark result + uses: benchmark-action/github-action-benchmark@v1 + with: + name: OpenTelemetry-cpp ${{ matrix.components }} Benchmark + tool: 'googlecpp' + output-file-path: benchmarks/${{ matrix.components }}-benchmark_result.json + github-token: ${{ secrets.GITHUB_TOKEN }} + auto-push: true + # Show alert with commit comment on detecting possible performance regression + alert-threshold: '200%' + comment-on-alert: true + fail-on-alert: false + gh-pages-branch: gh-pages + benchmark-data-dir-path: benchmarks diff --git a/src/jaegertracing/opentelemetry-cpp/.github/workflows/ci.yml b/src/jaegertracing/opentelemetry-cpp/.github/workflows/ci.yml new file mode 100644 index 000000000..7030c719d --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/.github/workflows/ci.yml @@ -0,0 +1,438 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main, async-changes ] + +jobs: + cmake_test: + name: CMake test (without otlp-exporter) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: run cmake tests (without otlp-exporter) + run: | + sudo ./ci/setup_thrift.sh + ./ci/do_ci.sh cmake.test + + cmake_absel_stl_test: + name: CMake test (with abseil) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: run cmake tests (enable abseil-cpp) + run: | + sudo ./ci/install_abseil.sh + ./ci/do_ci.sh cmake.abseil.test + + cmake_gcc_48_test: + name: CMake gcc 4.8 (without otlp exporter) + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_gcc48.sh + - name: setup cmake + run: | + sudo CC=/usr/bin/gcc-4.8 CXX=/usr/bin/g++-4.8 ./ci/setup_cmake.sh + - name: run tests + run: ./ci/do_ci.sh cmake.legacy.test + env: + CC: /usr/bin/gcc-4.8 + CXX: /usr/bin/g++-4.8 + + cmake_gcc_48_otlp_exporter_test: + name: CMake gcc 4.8 (with otlp exporter) + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_gcc48.sh + - name: setup cmake + run: | + sudo CC=/usr/bin/gcc-4.8 CXX=/usr/bin/g++-4.8 ./ci/setup_cmake.sh + - name: setup grpc + run: | + sudo CC=/usr/bin/gcc-4.8 CXX=/usr/bin/g++-4.8 ./ci/setup_grpc.sh -v 4.8 + - name: run tests + run: ./ci/do_ci.sh cmake.legacy.exporter.otprotocol.test + env: + CC: /usr/bin/gcc-4.8 + CXX: /usr/bin/g++-4.8 + + cmake_test_cxx20: + name: CMake C++20 test + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_ci_environment.sh + sudo ./ci/setup_cmake.sh + - name: run tests + run: ./ci/do_ci.sh cmake.c++20.test + - name: run tests (enable stl) + run: ./ci/do_ci.sh cmake.c++20.stl.test + + cmake_otprotocol_test: + name: CMake test (with otlp-exporter) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: run otlp exporter tests + run: | + sudo ./ci/setup_grpc.sh + ./ci/do_ci.sh cmake.exporter.otprotocol.test + + plugin_test: + name: Plugin -> CMake + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: run tests + run: ./ci/do_ci.sh cmake.test_example_plugin + + bazel_test: + name: Bazel + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_test + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.test + + bazel_with_abseil: + name: Bazel with external abseil + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_test + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.with_abseil + + bazel_valgrind: + name: Bazel valgrind + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_valgrind + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.valgrind + + bazel_noexcept: + name: Bazel noexcept + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_noexcept + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.noexcept + + bazel_nortti: + name: Bazel nortti + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_nortti + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.nortti + + bazel_asan: + name: Bazel asan config + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_asan + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.asan + + bazel_tsan: + name: Bazel tsan config + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_tsan + - name: setup + run: | + sudo ./ci/setup_thrift.sh dependencies_only + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: ./ci/do_ci.sh bazel.tsan + + bazel_osx: + name: Bazel on MacOS + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /Users/runner/.cache/bazel + key: bazel_osx + - name: run tests + run: ./ci/do_ci.sh bazel.macos.test + + benchmark: + name: Benchmark + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Mount Bazel Cache + uses: actions/cache@v3 + env: + cache-name: bazel_cache + with: + path: /home/runner/.cache/bazel + key: bazel_benchmark + - name: setup + run: | + sudo ./ci/setup_ci_environment.sh + sudo ./ci/install_bazelisk.sh + - name: run tests + run: | + env BENCHMARK_DIR=/benchmark + ./ci/do_ci.sh benchmark + - name: Upload benchmark results + uses: actions/upload-artifact@v2 + with: + name: benchmark_reports + path: /home/runner/benchmark + + format: + name: Format + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: setup + run: sudo ./ci/install_format_tools.sh + - name: run tests + run: ./ci/do_ci.sh format + + + windows: + name: CMake -> exporter proto + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + ./ci/setup_windows_cmake.ps1 + ./ci/setup_windows_ci_environment.ps1 + ./ci/install_windows_protobuf.ps1 + - name: run cmake test + run: ./ci/do_ci.ps1 cmake.test + - name: run otprotocol test + run: ./ci/do_ci.ps1 cmake.exporter.otprotocol.test + + windows_bazel: + name: Bazel Windows + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + ./ci/setup_thrift.ps1 + ./ci/install_windows_bazelisk.ps1 + - name: run tests + run: ./ci/do_ci.ps1 bazel.build + + windows_plugin_test: + name: Plugin -> CMake Windows + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + ./ci/setup_windows_cmake.ps1 + ./ci/setup_windows_ci_environment.ps1 + - name: run tests + run: ./ci/do_ci.ps1 cmake.test_example_plugin + + code_coverage: + name: Code coverage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: run tests and generate report + run: ./ci/do_ci.sh code.coverage + - name: upload report + uses: codecov/codecov-action@v3 + with: + file: /home/runner/build/coverage.info + + markdown-lint: + runs-on: ubuntu-latest + + steps: + - name: check out code + uses: actions/checkout@v3 + + - name: install markdownlint-cli + run: sudo npm install -g markdownlint-cli + + - name: run markdownlint + run: markdownlint . + + misspell: + runs-on: ubuntu-latest + steps: + - name: check out code + uses: actions/checkout@v3 + - name: install misspell + run: | + curl -L -o ./install-misspell.sh https://git.io/misspell + sh ./install-misspell.sh + - name: run misspell + run: ./bin/misspell -error . + + docfx_check: + name: DocFX check + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: install docfx + run: choco install docfx -y --version=2.58.5 + - name: run ./ci/docfx.cmd + shell: cmd + run: ./ci/docfx.cmd diff --git a/src/jaegertracing/opentelemetry-cpp/.github/workflows/codeql-analysis.yml b/src/jaegertracing/opentelemetry-cpp/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..000a0eb0d --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/.github/workflows/codeql-analysis.yml @@ -0,0 +1,32 @@ +name: "CodeQL" + +on: + push: + branches: [main] + pull_request: + # The branches below must be a subset of the branches above + branches: [main] + +jobs: + CodeQL-Build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Remove Third_party Modules from Code Scan + run: | + rm -rf third_party + - name: Setup + run: | + sudo ./ci/setup_cmake.sh + sudo ./ci/setup_ci_environment.sh + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: cpp + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/src/jaegertracing/opentelemetry-cpp/.github/workflows/dependencies_image.yml b/src/jaegertracing/opentelemetry-cpp/.github/workflows/dependencies_image.yml new file mode 100644 index 000000000..3a55a0b4e --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/.github/workflows/dependencies_image.yml @@ -0,0 +1,46 @@ +name: 'OpenTelemetry-cpp dependencies image' +on: + schedule: + - cron: "0 3 * * 6" + +jobs: + docker_image: + name: Docker Image + runs-on: ubuntu-latest + timeout-minutes: 300 + steps: + - + name: checkout + uses: actions/checkout@v2 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + - + name: Build Image + uses: docker/build-push-action@v3 + with: + builder: ${{ steps.buildx.outputs.name }} + context: ci/ + file: ./docker/Dockerfile + build-args: BASE_IMAGE=ubuntu:latest + platforms: linux/amd64 + # platforms: linux/amd64,linux/arm64 + push: false + tags: otel-cpp-deps + load: true + - + name: Save Image + run: | + docker images + docker save -o /opt/otel-cpp-deps-debian.tar otel-cpp-deps + - + name: Upload Image + uses: actions/upload-artifact@v3 + with: + name: otel-cpp-deps + path: /opt/otel-cpp-deps-debian.tar + retention-days: 14 diff --git a/src/jaegertracing/opentelemetry-cpp/.github/workflows/stale.yml b/src/jaegertracing/opentelemetry-cpp/.github/workflows/stale.yml new file mode 100644 index 000000000..214516541 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/.github/workflows/stale.yml @@ -0,0 +1,14 @@ +name: 'Mark and close stale issues' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v5 + with: + stale-issue-message: 'This issue was marked as stale due to lack of activity.' + days-before-issue-stale: 60 + exempt-issue-labels: 'do-not-stale' |