summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/opentelemetry-cpp/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/.github/workflows')
-rw-r--r--src/jaegertracing/opentelemetry-cpp/.github/workflows/benchmark.yml72
-rw-r--r--src/jaegertracing/opentelemetry-cpp/.github/workflows/ci.yml438
-rw-r--r--src/jaegertracing/opentelemetry-cpp/.github/workflows/codeql-analysis.yml32
-rw-r--r--src/jaegertracing/opentelemetry-cpp/.github/workflows/dependencies_image.yml46
-rw-r--r--src/jaegertracing/opentelemetry-cpp/.github/workflows/stale.yml14
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'