From 754f33f2b94691715662f6ff4bd901fe5a68d7e5 Mon Sep 17 00:00:00 2001 From: ihopenre-eng <247072151+ihopenre-eng@users.noreply.github.com> Date: Thu, 16 Jul 2026 12:01:48 +0700 Subject: [PATCH 1/2] ci: verify semantic conventions generation Signed-off-by: ihopenre-eng <247072151+ihopenre-eng@users.noreply.github.com> --- .github/workflows/ci.yml | 33 +++++++++++++++++++ .../README.md | 10 ++---- .../scripts/generate.ps1 | 2 ++ .../scripts/generate.sh | 33 ------------------- 4 files changed, 37 insertions(+), 41 deletions(-) mode change 100644 => 100755 src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 delete mode 100644 src/OpenTelemetry.SemanticConventions/scripts/generate.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c30978d0f..2388af1337 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -665,6 +665,39 @@ jobs: run-tests: false # Note: No test project trigger: ${{ github.event_name }} + verify-semanticconventions: + name: Verify semantic conventions generation + needs: detect-changes + if: | + contains(needs.detect-changes.outputs.changes, 'semanticconventions') + || contains(needs.detect-changes.outputs.changes, 'build') + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - name: Checkout code + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + show-progress: false + + - name: Regenerate semantic conventions + shell: pwsh + run: | + Remove-Item -Recurse -Force ./src/OpenTelemetry.SemanticConventions/Attributes + New-Item -ItemType Directory ./src/OpenTelemetry.SemanticConventions/Attributes + ./src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 + + - name: Verify generated files are up to date + shell: pwsh + run: | + $generatedFiles = git status --short --untracked-files=all -- ./src/OpenTelemetry.SemanticConventions/Attributes + if ($generatedFiles) { + $generatedFiles | Write-Output + Write-Output "Run ./src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 and commit the results." + Write-Error "Generated semantic convention files are out of date." + exit 1 + } + build-test-contrib-shared-tests: needs: detect-changes if: | diff --git a/src/OpenTelemetry.SemanticConventions/README.md b/src/OpenTelemetry.SemanticConventions/README.md index f79941dbcf..a51524083e 100644 --- a/src/OpenTelemetry.SemanticConventions/README.md +++ b/src/OpenTelemetry.SemanticConventions/README.md @@ -14,15 +14,9 @@ dotnet add package OpenTelemetry.SemanticConventions --prerelease This project uses [Weaver](https://github.com/open-telemetry/weaver). The folder `scripts` at the top level of the project contains the template -and the script files used in the process. +and PowerShell script used in the process. -To generate the code files, run: - -```shell -./scripts/generate.sh -``` - -Or, with PowerShell: +To generate the code files, run the PowerShell script: ```shell ./scripts/generate.ps1 diff --git a/src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 b/src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 old mode 100644 new mode 100755 index 83856f4c34..00c3e23dce --- a/src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 +++ b/src/OpenTelemetry.SemanticConventions/scripts/generate.ps1 @@ -1,3 +1,5 @@ +#!/usr/bin/env pwsh + $SCRIPT_DIR = $PSScriptRoot $ROOT_DIR = "${SCRIPT_DIR}/../" diff --git a/src/OpenTelemetry.SemanticConventions/scripts/generate.sh b/src/OpenTelemetry.SemanticConventions/scripts/generate.sh deleted file mode 100644 index 2eac084692..0000000000 --- a/src/OpenTelemetry.SemanticConventions/scripts/generate.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -set -e - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -ROOT_DIR="${SCRIPT_DIR}/../" - -# freeze the spec version to make SemanticAttributes generation reproducible -SEMCONV_VERSION="1.41.0" -GENERATOR_VERSION="v0.23.0" - -cd ${SCRIPT_DIR} - -rm -rf semantic-conventions || true -mkdir semantic-conventions -cd semantic-conventions - -git init -git remote add origin https://github.com/open-telemetry/semantic-conventions.git -git fetch origin "v$SEMCONV_VERSION" -git reset --hard FETCH_HEAD -cd ${SCRIPT_DIR} - -docker run --rm \ - -v ${SCRIPT_DIR}/semantic-conventions/model:/source \ - -v ${SCRIPT_DIR}/templates:/templates \ - -v ${ROOT_DIR}/Attributes/:/output \ - otel/weaver:$GENERATOR_VERSION \ - registry \ - generate \ - --registry=/source \ - --templates=/templates \ - "./" \ - "/output/./"\ From 3443aefaf47e08c67120e2181b4b50154a580809 Mon Sep 17 00:00:00 2001 From: ihopenre-eng <247072151+ihopenre-eng@users.noreply.github.com> Date: Tue, 21 Jul 2026 23:09:50 +0700 Subject: [PATCH 2/2] ci: include semantic conventions verification in aggregate status Signed-off-by: ihopenre-eng <247072151+ihopenre-eng@users.noreply.github.com> --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2388af1337..f265523b6e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -803,6 +803,7 @@ jobs: build-test-sampler-aws, build-test-semanticconventions, test-pwsh, + verify-semanticconventions, verify-aot-compat ] if: always() && !cancelled()