Skip to content

Commit d7e760f

Browse files
committed
refactors release creation workflow, fixes #142, fixes #129
1 parent 62ea4d0 commit d7e760f

File tree

7 files changed

+42
-40
lines changed

7 files changed

+42
-40
lines changed

.github/workflows/build_and_test_full.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@ on:
88
env:
99
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
1010
jobs:
11+
get_version:
12+
runs-on: ubuntu-20.04
13+
steps:
14+
- name: Get Version
15+
id: getversion
16+
shell: bash
17+
run: echo "latest_tag=$(sed -re 's/^v?([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)?.*/\1/' <<< $(git describe --tags --abbrev=0))" >> $GITHUB_OUTPUT
1118
build-and-run-tests-ubuntu:
1219
# Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11
1320
# Instead, run on ubuntu-20.04
1421
runs-on: ubuntu-20.04
22+
needs: get_version
1523
env:
1624
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
1725
SYSTEM_LIBSTDCPP_PATH: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6"
@@ -29,7 +37,7 @@ jobs:
2937
- name: Build OpenTelemetry-Matlab
3038
working-directory: opentelemetry-matlab
3139
run: |
32-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
40+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
3341
cmake --build build --config Release --target install
3442
- name: Run tests
3543
env:
@@ -41,6 +49,7 @@ jobs:
4149
select-by-folder: opentelemetry-matlab/test
4250
build-and-run-tests-windows:
4351
runs-on: windows-latest
52+
needs: get_version
4453
env:
4554
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
4655
steps:
@@ -59,7 +68,7 @@ jobs:
5968
shell: cmd
6069
run: |
6170
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
62-
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DFETCH_VCPKG=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
71+
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DFETCH_VCPKG=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
6372
cmake --build build --config Release --target install
6473
- name: Run tests
6574
env:
@@ -74,6 +83,7 @@ jobs:
7483
strategy:
7584
matrix:
7685
os: [macos-13, macos-14] # runs on Mac with both Intel (macos-13) and Apple Silicon (macos-14) processors
86+
needs: get_version
7787
env:
7888
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
7989
steps:
@@ -90,7 +100,7 @@ jobs:
90100
- name: Build OpenTelemetry-Matlab
91101
working-directory: opentelemetry-matlab
92102
run: |
93-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
103+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
94104
cmake --build build --config Release --target install
95105
- name: Run tests
96106
env:

.github/workflows/build_and_test_simple.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,18 @@ on:
99
env:
1010
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
1111
jobs:
12+
get_version:
13+
runs-on: ubuntu-20.04
14+
steps:
15+
- name: Get Version
16+
id: getversion
17+
shell: bash
18+
run: echo "latest_tag=$(sed -re 's/^v?([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)?.*/\1/' <<< $(git describe --tags --abbrev=0))" >> $GITHUB_OUTPUT
1219
build-and-run-tests-ubuntu:
1320
# Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11
1421
# Instead, run on ubuntu-20.04
1522
runs-on: ubuntu-20.04
23+
needs: get_version
1624
env:
1725
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
1826
SYSTEM_LIBSTDCPP_PATH: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6"
@@ -30,7 +38,7 @@ jobs:
3038
- name: Build OpenTelemetry-Matlab
3139
working-directory: opentelemetry-matlab
3240
run: |
33-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
41+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
3442
cmake --build build --config Release --target install
3543
- name: Run tests
3644
env:
@@ -42,6 +50,7 @@ jobs:
4250
select-by-folder: opentelemetry-matlab/test
4351
build-and-run-tests-windows:
4452
runs-on: windows-latest
53+
needs: get_version
4554
env:
4655
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
4756
steps:
@@ -60,7 +69,7 @@ jobs:
6069
shell: cmd
6170
run: |
6271
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
63-
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 -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
72+
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.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
6473
cmake --build build --config Release --target install
6574
- name: Run tests
6675
env:
@@ -75,6 +84,7 @@ jobs:
7584
strategy:
7685
matrix:
7786
os: [macos-13, macos-14] # runs on Mac with both Intel (macos-13) and Apple Silicon (macos-14) processors
87+
needs: get_version
7888
env:
7989
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
8090
steps:
@@ -91,7 +101,7 @@ jobs:
91101
- name: Build OpenTelemetry-Matlab
92102
working-directory: opentelemetry-matlab
93103
run: |
94-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
104+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.getversion.outputs.latest_tag }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
95105
cmake --build build --config Release --target install
96106
- name: Run tests
97107
env:

.github/workflows/publish_mltbx.yml renamed to .github/workflows/create_release.yml

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
name: "Publish mltbx"
1+
name: "Create Release"
22
on:
3-
workflow_dispatch:
43
push:
54
tags:
6-
- '*'
7-
#on:
8-
#workflow_dispatch:
9-
#release:
10-
#types: published
5+
- '[0-9]+.[0-9]+.[0-9]+'
116
jobs:
127
build-ubuntu:
138
# Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11
@@ -29,7 +24,7 @@ jobs:
2924
- name: Build OpenTelemetry-Matlab
3025
working-directory: opentelemetry-matlab
3126
run: |
32-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
27+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DOTEL_MATLAB_VERSION=${{ github.ref_name }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
3328
cmake --build build --config Release --target install
3429
- name: Compress into single artifact
3530
working-directory: ${{ github.workspace }}
@@ -59,7 +54,7 @@ jobs:
5954
shell: cmd
6055
run: |
6156
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
62-
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DFETCH_VCPKG=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
57+
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DFETCH_VCPKG=ON -DOTEL_MATLAB_VERSION=${{ github.ref_name }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
6358
cmake --build build --config Release --target install
6459
- name: Compress into single artifact
6560
working-directory: ${{ github.workspace }}
@@ -90,7 +85,7 @@ jobs:
9085
- name: Build OpenTelemetry-Matlab
9186
working-directory: opentelemetry-matlab
9287
run: |
93-
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_GRPC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
88+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_GRPC=ON -DOTEL_MATLAB_VERSION=${{ github.ref_name }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
9489
cmake --build build --config Release --target install
9590
- name: Compress into single artifact
9691
working-directory: ${{ github.workspace }}
@@ -116,10 +111,6 @@ jobs:
116111
uses: actions/checkout@v3
117112
with:
118113
path: OpenTelemetry-Matlab
119-
- name: Read version
120-
id: getversion
121-
working-directory: OpenTelemetry-Matlab
122-
run: echo "version=$(cat VERSION.txt)" >> $GITHUB_OUTPUT
123114
- name: Download Artifacts
124115
uses: actions/download-artifact@v3
125116
with:
@@ -138,23 +129,15 @@ jobs:
138129
MATLABPATH: OpenTelemetry-Matlab/tools
139130
OTEL_MATLAB_TOOLBOX_FOLDER: otel_matlab_install
140131
OTEL_MATLAB_TOOLBOX_OUTPUT_FOLDER:
141-
OTEL_MATLAB_TOOLBOX_VERSION: ${{ steps.getversion.outputs.version }}
132+
OTEL_MATLAB_TOOLBOX_VERSION: ${{ github.ref_name }}
142133
uses: matlab-actions/run-command@v1
143134
with:
144135
command: packageMatlabInterface
145-
#- name: Upload Release Asset
146-
#uses: actions/upload-release-asset@v1
147-
#env:
148-
#GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
149-
#with:
150-
#upload_url: ${{ github.event.release.upload_url }}
151-
#asset_path: ./otel-matlab.mltbx
152-
#asset_name: otel-matlab.mltbx
153-
#asset_content_type: application/octet-stream
154136
- name: Create release
155137
uses: softprops/action-gh-release@v2
156138
with:
157139
files: ./otel-matlab.mltbx
140+
name: "Version ${{ github.ref_name }}"
158141
fail_on_unmatched_files: true
159142
generate_release_notes: false
160143
prerelease: false

CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ endif()
102102
set(CLIENT_PROJECT_NAME otel-matlab)
103103

104104
# read version number
105-
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt OTEL_MATLAB_VERSION_RAW)
106-
string(STRIP ${OTEL_MATLAB_VERSION_RAW} OTEL_MATLAB_VERSION)
107-
105+
if(NOT DEFINED OTEL_MATLAB_VERSION)
106+
set(OTEL_MATLAB_VERSION 0.0.0) # set to an invalid default if not defined
107+
endif()
108108

109109
project(${CLIENT_PROJECT_NAME} VERSION ${OTEL_MATLAB_VERSION} LANGUAGES CXX)
110110

@@ -472,7 +472,7 @@ set(OTLP_GRPC_EXPORTER_MATLAB_SOURCES
472472
${CMAKE_CURRENT_SOURCE_DIR}/exporters/otlp/+opentelemetry/+exporters/+otlp/OtlpGrpcMetricExporter.m
473473
${CMAKE_CURRENT_SOURCE_DIR}/exporters/otlp/+opentelemetry/+exporters/+otlp/OtlpGrpcLogRecordExporter.m
474474
${CMAKE_CURRENT_SOURCE_DIR}/exporters/otlp/+opentelemetry/+exporters/+otlp/OtlpGrpcValidator.m)
475-
set(OTLP_MISC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt)
475+
set(OTLP_MISC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
476476

477477
set(OTLP_EXPORTERS_DIR +opentelemetry/+exporters/+otlp)
478478

@@ -493,7 +493,7 @@ endif()
493493
if(WITH_OTLP_GRPC)
494494
install(FILES ${OTLP_GRPC_EXPORTER_MATLAB_SOURCES} DESTINATION ${OTLP_EXPORTERS_DIR})
495495
endif()
496-
# Install license and version. The only reason these are needed is to work around a packaging bug where if
496+
# Install license. The only reason it is needed is to work around a packaging bug where if
497497
# all files are in packages (+xxx directories), matlab.addons.toolbox.packageToolbox refuses to add the
498498
# toolbox path into MATLAB path. This issue is fixed in R2024a
499499
install(FILES ${OTLP_MISC_FILES} DESTINATION .)

VERSION.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

test/tlogs.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ function testBasic(testCase)
8585

8686
versionidx = find(resourcekeys == "telemetry.sdk.version");
8787
verifyNotEmpty(testCase, versionidx);
88-
versionstr = strip(fileread(fullfile("..", "VERSION.txt")));
89-
verifyEqual(testCase, results.resourceLogs.resource.attributes(versionidx).value.stringValue, versionstr);
88+
versionpattern = digitsPattern + "." + digitsPattern + "." + digitsPattern;
89+
verifyTrue(testCase, matches(results.resourceLogs.resource.attributes(versionidx).value.stringValue, versionpattern));
9090

9191
nameidx = find(resourcekeys == "telemetry.sdk.name");
9292
verifyNotEmpty(testCase, nameidx);

test/ttrace.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ function testBasic(testCase)
8888

8989
versionidx = find(resourcekeys == "telemetry.sdk.version");
9090
verifyNotEmpty(testCase, versionidx);
91-
versionstr = strip(fileread(fullfile("..", "VERSION.txt")));
92-
verifyEqual(testCase, results.resourceSpans.resource.attributes(versionidx).value.stringValue, versionstr);
91+
versionpattern = digitsPattern + "." + digitsPattern + "." + digitsPattern;
92+
verifyTrue(testCase, matches(results.resourceSpans.resource.attributes(versionidx).value.stringValue, versionpattern));
9393

9494
nameidx = find(resourcekeys == "telemetry.sdk.name");
9595
verifyNotEmpty(testCase, nameidx);

0 commit comments

Comments
 (0)