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