Skip to content

Commit f0093dc

Browse files
Merge branch 'main' into fix-duplicate-attributes-1650
2 parents 1d3b065 + 9c54c8e commit f0093dc

442 files changed

Lines changed: 64868 additions & 8420 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Install SymCrypt
2+
description: Download a pinned Windows AMD64 SymCrypt release and expose it to GitHub Actions jobs.
3+
4+
runs:
5+
using: composite
6+
steps:
7+
- name: Download and configure SymCrypt
8+
shell: pwsh
9+
run: |
10+
$tag = 'v103.11.0'
11+
$assetName = 'symcrypt-windows-amd64-release-103.11.0-748c20f1.zip'
12+
$assetSha256 = '5E2A9E60C03A60B952E84A3B50984F0D723A4B3EC1585F9CF6E800D4BD61159E'
13+
14+
$release = Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/SymCrypt/releases/tags/$tag" -Headers @{
15+
Accept = 'application/vnd.github+json'
16+
Authorization = 'Bearer ${{ github.token }}'
17+
'X-GitHub-Api-Version' = '2022-11-28'
18+
}
19+
$asset = $release.assets | Where-Object { $_.name -eq $assetName } | Select-Object -First 1
20+
if (-not $asset) {
21+
throw "Unable to find pinned SymCrypt asset '$assetName' in release '$tag'."
22+
}
23+
24+
$downloadPath = Join-Path $env:RUNNER_TEMP $asset.name
25+
$extractRoot = Join-Path $env:RUNNER_TEMP 'symcrypt'
26+
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile $downloadPath
27+
$downloadHash = (Get-FileHash -Path $downloadPath -Algorithm SHA256).Hash
28+
if ($downloadHash -ne $assetSha256) {
29+
throw "SymCrypt digest mismatch. Expected '$assetSha256' but got '$downloadHash'."
30+
}
31+
if (Test-Path $extractRoot) {
32+
Remove-Item -Recurse -Force $extractRoot
33+
}
34+
Expand-Archive -Path $downloadPath -DestinationPath $extractRoot -Force
35+
36+
$dllDir = Get-ChildItem -Path $extractRoot -Directory -Recurse |
37+
Where-Object { $_.Name -eq 'dll' } |
38+
Select-Object -First 1 -ExpandProperty FullName
39+
if (-not $dllDir) {
40+
throw 'Unable to locate the extracted SymCrypt dll directory.'
41+
}
42+
43+
"SYMCRYPT_LIB_PATH=$dllDir" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
44+
$dllDir | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
45+

.github/codecov.yaml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ coverage:
22
status:
33
project: # Overall repo coverage
44
default:
5-
target: auto # Increase
6-
threshold: 0.1% # Allow small fluctuation
5+
target: 85%
6+
patch: # Changed lines in PR
7+
default:
8+
target: 70%
79

810
ignore:
911
- "rust/otap-dataflow/crates/quiver-e2e/**" # Test tool, not production code
@@ -25,10 +27,6 @@ component_management:
2527
name: "query_engine"
2628
paths:
2729
- "rust/experimental/query_engine/"
28-
- component_id: "syslog_cef_receivers"
29-
name: "syslog_cef_receivers"
30-
paths:
31-
- "rust/experimental/syslog-cef-receivers/"
3230
- component_id: "otel_arrow_go"
3331
name: "otel-arrow-go"
3432
paths:

.github/workflows/dataflow-engine-binary-size.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: ${{ matrix.platform.runner }}
2626
steps:
2727
- name: Harden the runner (Audit all outbound calls)
28-
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
28+
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
2929
with:
3030
egress-policy: audit
3131

@@ -34,7 +34,7 @@ jobs:
3434
submodules: true
3535

3636
- name: Set up Docker Buildx
37-
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
37+
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
3838

3939
- name: Build dataflow_engine for ${{ matrix.platform.name }}
4040
run: |
@@ -88,7 +88,7 @@ jobs:
8888
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
8989

9090
- name: Download all size reports
91-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
91+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
9292
with:
9393
pattern: size-report-*
9494
merge-multiple: true
@@ -104,13 +104,12 @@ jobs:
104104
echo "|----------|------|"
105105
for json in all-reports/*.json; do
106106
PLATFORM=$(jq -r '.[0].name' "$json" | sed 's/-binary-size//')
107-
SIZE_BYTES=$(jq -r '.[0].value' "$json")
108-
SIZE_HR=$(numfmt --to=iec-i --suffix=B $SIZE_BYTES)
109-
echo "| $PLATFORM | $SIZE_HR |"
107+
SIZE_MB=$(jq -r '.[0].value' "$json")
108+
echo "| $PLATFORM | ${SIZE_MB} MB |"
110109
done
111110
112111
- name: Update binary size benchmarks
113-
uses: benchmark-action/github-action-benchmark@4bdcce38c94cec68da58d012ac24b7b1155efe8b # v1.20.7
112+
uses: benchmark-action/github-action-benchmark@a60cea5bc7b49e15c1f58f411161f99e0df48372 # v1.22.0
114113
with:
115114
tool: "customSmallerIsBetter"
116115
output-file-path: consolidated-sizes.json
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Docker Build Check
2+
permissions:
3+
contents: read
4+
5+
on:
6+
pull_request:
7+
branches:
8+
- main
9+
paths:
10+
- 'rust/otap-dataflow/Dockerfile'
11+
- 'rust/otap-dataflow/cross-arch-build.sh'
12+
- 'rust/otap-dataflow/Cargo.toml'
13+
- 'rust/otap-dataflow/Cargo.lock'
14+
- 'rust/otap-dataflow/src/**'
15+
- 'rust/otap-dataflow/crates/**'
16+
- 'THIRD_PARTY_NOTICES.txt'
17+
merge_group:
18+
19+
concurrency:
20+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
21+
cancel-in-progress: true
22+
23+
jobs:
24+
docker-build:
25+
runs-on: ubuntu-24.04
26+
steps:
27+
- name: Harden the runner (Audit all outbound calls)
28+
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
29+
with:
30+
egress-policy: audit
31+
32+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
33+
with:
34+
submodules: true
35+
36+
- name: Set up Docker Buildx
37+
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
38+
39+
- name: Build Docker image
40+
run: |
41+
cd rust/otap-dataflow
42+
docker buildx build \
43+
--build-context otel-arrow=../../ \
44+
-f Dockerfile \
45+
-t df_engine:check \
46+
--load \
47+
.
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
name: Flaky Test Tracker
2+
3+
# Runs daily and on-demand to detect flaky tests from recent CI runs.
4+
# Parses JUnit XML artifacts from Rust-CI workflow runs, identifies tests
5+
# marked as flaky (failed then passed on retry), and creates/updates a
6+
# tracking issue with a summary table.
7+
8+
permissions:
9+
contents: read
10+
issues: write
11+
actions: read
12+
13+
on:
14+
schedule:
15+
# Run daily at 06:00 UTC
16+
- cron: "0 6 * * *"
17+
workflow_dispatch:
18+
19+
env:
20+
# The label applied to the flaky test tracking issue.
21+
FLAKY_ISSUE_LABEL: "flaky-test"
22+
# How many recent Rust-CI workflow runs to scan.
23+
LOOKBACK_RUNS: 20
24+
25+
jobs:
26+
detect-flaky-tests:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
30+
31+
- name: Ensure flaky-test label exists
32+
env:
33+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34+
run: |
35+
gh label create "$FLAKY_ISSUE_LABEL" \
36+
--description "Automatically detected flaky tests" \
37+
--color "FBCA04" \
38+
--force
39+
40+
- name: Download JUnit XML from recent Rust-CI runs
41+
env:
42+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43+
run: |
44+
set -euo pipefail
45+
mkdir -p junit-artifacts
46+
47+
# Get the workflow ID for Rust-CI
48+
WORKFLOW_ID=$(gh api "repos/${{ github.repository }}/actions/workflows" \
49+
--jq '.workflows[] | select(.name == "Rust-CI") | .id')
50+
51+
if [[ -z "$WORKFLOW_ID" ]]; then
52+
echo "::warning::Could not find Rust-CI workflow"
53+
exit 0
54+
fi
55+
56+
echo "Rust-CI workflow ID: $WORKFLOW_ID"
57+
58+
# Get recent completed runs on the default branch
59+
RUN_IDS=$(gh api "repos/${{ github.repository }}/actions/workflows/$WORKFLOW_ID/runs?branch=main&status=completed&per_page=$LOOKBACK_RUNS" \
60+
--jq '.workflow_runs[].id')
61+
62+
echo "Found $(echo "$RUN_IDS" | wc -l) recent runs"
63+
64+
for RUN_ID in $RUN_IDS; do
65+
echo "Checking run $RUN_ID for JUnit artifacts..."
66+
# List artifacts for this run that match our naming pattern
67+
ARTIFACT_INFO=$(gh api "repos/${{ github.repository }}/actions/runs/$RUN_ID/artifacts" \
68+
--jq '.artifacts[] | select(.name | startswith("junit-xml-")) | "\(.id) \(.name)"' || true)
69+
70+
while IFS=' ' read -r ARTIFACT_ID ARTIFACT_NAME; do
71+
[[ -z "$ARTIFACT_ID" ]] && continue
72+
echo " Downloading artifact $ARTIFACT_NAME ($ARTIFACT_ID) from run $RUN_ID"
73+
DEST_DIR="junit-artifacts/run-$RUN_ID/$ARTIFACT_NAME"
74+
mkdir -p "$DEST_DIR"
75+
gh api "repos/${{ github.repository }}/actions/artifacts/$ARTIFACT_ID/zip" \
76+
> "$DEST_DIR/artifact.zip" || true
77+
(cd "$DEST_DIR" && unzip -o -q "artifact.zip" 2>/dev/null && rm -f "artifact.zip") || true
78+
done <<< "$ARTIFACT_INFO"
79+
done
80+
81+
echo "Downloaded artifacts:"
82+
find junit-artifacts -name '*.xml' | head -50 || echo "No XML files found"
83+
84+
- name: Parse JUnit XML and detect flaky tests
85+
id: parse
86+
env:
87+
GITHUB_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
88+
FLAKY_ISSUE_LABEL: ${{ env.FLAKY_ISSUE_LABEL }}
89+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90+
run: python3 .github/workflows/scripts/parse_flaky.py
91+
92+
- name: Create or update tracking issue
93+
env:
94+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
95+
run: |
96+
set -euo pipefail
97+
98+
BODY=$(cat flaky-report.md)
99+
TITLE="Flaky Test Report (automated)"
100+
101+
# Find existing open issue with the flaky-test label and our title
102+
EXISTING_ISSUE=$(gh issue list \
103+
--label "$FLAKY_ISSUE_LABEL" \
104+
--state open \
105+
--search "$TITLE" \
106+
--json number,title \
107+
--jq '.[] | select(.title == "'"$TITLE"'") | .number' \
108+
| head -1)
109+
110+
if [[ -n "$EXISTING_ISSUE" ]]; then
111+
echo "Updating existing issue #$EXISTING_ISSUE"
112+
gh issue edit "$EXISTING_ISSUE" --body "$BODY"
113+
else
114+
echo "Creating new tracking issue"
115+
gh issue create \
116+
--title "$TITLE" \
117+
--body "$BODY" \
118+
--label "$FLAKY_ISSUE_LABEL"
119+
fi
120+
121+
- name: Post summary
122+
if: always()
123+
run: |
124+
if [[ -f flaky-report.md ]]; then
125+
cat flaky-report.md >> "$GITHUB_STEP_SUMMARY"
126+
fi

.github/workflows/fossa.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1616

17-
- uses: fossas/fossa-action@c414b9ad82eaad041e47a7cf62a4f02411f427a0 # v1.8.0
17+
- uses: fossas/fossa-action@ff70fe9fe17cbd2040648f1c45e8ec4e4884dcf3 # v1.9.0
1818
with:
1919
api-key: ${{secrets.FOSSA_API_KEY}}
2020
team: OpenTelemetry

.github/workflows/go-ci.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ jobs:
2929
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3030
with:
3131
submodules: true
32-
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
32+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
3333
with:
34-
go-version: "1.26.0"
34+
go-version: "1.26.1"
3535
- name: Run tests with coverage
3636
run: go test -cover -coverprofile=coverage.txt -covermode=atomic -coverpkg=./... ./...
3737
working-directory: ./go/${{ matrix.folder }}
3838
- name: Upload to codecov.io
39-
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
39+
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
4040
env:
4141
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
4242
with:
@@ -48,9 +48,9 @@ jobs:
4848
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4949
with:
5050
submodules: true
51-
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
51+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
5252
with:
53-
go-version: "1.26.0"
53+
go-version: "1.26.1"
5454
- name: Build the test collector
5555
run: make otelarrowcol
5656

@@ -61,13 +61,13 @@ jobs:
6161
runs-on: ubuntu-latest
6262
steps:
6363
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
64-
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
64+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
6565
with:
66-
go-version: "1.26.0"
67-
- uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
66+
go-version: "1.26.1"
67+
- uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
6868
with:
6969
languages: go
70-
- uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
70+
- uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
7171
timeout-minutes: 60
7272

7373
# Aggregated status check for all Go CI jobs

.github/workflows/issue_triage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
issues: write
1717
steps:
1818
- name: Harden the runner (Audit all outbound calls)
19-
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
19+
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
2020
with:
2121
egress-policy: audit
2222

.github/workflows/ossf-scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ jobs:
4242
# Upload the results to GitHub's code scanning dashboard (optional).
4343
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
4444
- name: "Upload to code-scanning"
45-
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
45+
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
4646
with:
4747
sarif_file: results.sarif

0 commit comments

Comments
 (0)