Updating Testing Branch & adding benchmarking workflow #47
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
# Simplified build-and-test without gRPC exporter, run when pushed to any branches other than main or release branches | |
name: "Build and Run Tests Simple" | |
on: | |
workflow_dispatch: | |
push: | |
branches-ignore: | |
- 'main' | |
- '[0-9]+.[0-9]+.[0-9]+' | |
env: | |
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }} | |
jobs: | |
get_version: | |
runs-on: ubuntu-20.04 | |
outputs: | |
version: ${{ steps.getversion.outputs.latest_tag }} | |
steps: | |
# need fetch-depth:0 to also download the tags | |
- name: Download OpenTelemetry-Matlab source | |
uses: actions/checkout@v3 | |
with: | |
path: opentelemetry-matlab | |
fetch-depth: 0 | |
- name: Get Version | |
id: getversion | |
shell: bash | |
working-directory: opentelemetry-matlab | |
run: echo "latest_tag=$(sed -re 's/^v?([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)?.*/\1/' <<< $(git describe --tags --abbrev=0))" >> $GITHUB_OUTPUT | |
build-and-run-tests-ubuntu: | |
# Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11 | |
# Instead, run on ubuntu-20.04 | |
runs-on: ubuntu-20.04 | |
needs: get_version | |
env: | |
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install" | |
SYSTEM_LIBSTDCPP_PATH: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" | |
steps: | |
- name: Download OpenTelemetry-Matlab source | |
uses: actions/checkout@v3 | |
with: | |
path: opentelemetry-matlab | |
- name: Install ninja-build | |
run: sudo apt-get install ninja-build | |
- name: Install MATLAB | |
uses: matlab-actions/setup-matlab@v2 | |
with: | |
products: MATLAB_Compiler MATLAB_Compiler_SDK | |
- name: Build OpenTelemetry-Matlab | |
working-directory: opentelemetry-matlab | |
run: | | |
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.outputs.version }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
cmake --build build --config Release --target install | |
- name: Run tests | |
env: | |
# Add the installation directory to the MATLAB Search Path by | |
# setting the MATLABPATH environment variable. | |
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
uses: matlab-actions/run-tests@v2 | |
with: | |
select-by-folder: opentelemetry-matlab/test | |
build-and-run-tests-windows: | |
runs-on: windows-latest | |
needs: get_version | |
env: | |
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install" | |
steps: | |
- name: Download OpenTelemetry-Matlab source | |
uses: actions/checkout@v3 | |
with: | |
path: opentelemetry-matlab | |
- name: Install ninja-build | |
run: choco install ninja | |
- name: Install MATLAB | |
uses: matlab-actions/setup-matlab@v2 | |
with: | |
products: MATLAB_Compiler MATLAB_Compiler_SDK | |
- name: Build OpenTelemetry-Matlab | |
working-directory: opentelemetry-matlab | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 | |
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DFETCH_VCPKG=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.outputs.version }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
cmake --build build --config Release --target install | |
- name: Run tests | |
env: | |
# Add the installation directory to the MATLAB Search Path by | |
# setting the MATLABPATH environment variable. | |
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
uses: matlab-actions/run-tests@v2 | |
with: | |
select-by-folder: opentelemetry-matlab/test | |
build-and-run-tests-macos: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13, macos-14] # runs on Mac with both Intel (macos-13) and Apple Silicon (macos-14) processors | |
needs: get_version | |
env: | |
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install" | |
steps: | |
- name: Download OpenTelemetry-Matlab source | |
uses: actions/checkout@v3 | |
with: | |
path: opentelemetry-matlab | |
- name: Install ninja-build | |
run: brew install ninja | |
- name: Install MATLAB | |
uses: matlab-actions/setup-matlab@v2 | |
with: | |
products: MATLAB_Compiler MATLAB_Compiler_SDK | |
- name: Build OpenTelemetry-Matlab | |
working-directory: opentelemetry-matlab | |
run: | | |
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.outputs.version }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
cmake --build build --config Release --target install | |
- name: Run tests | |
env: | |
# Add the installation directory to the MATLAB Search Path by | |
# setting the MATLABPATH environment variable. | |
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }} | |
uses: matlab-actions/run-tests@v2 | |
with: | |
select-by-folder: opentelemetry-matlab/test |