Skip to content

Commit 5c95533

Browse files
Add script to update OTel components (#7159) (#7410)
* Add script to update OTel components * fix: make sed command work on both Linux and macOS * docs: update usage wording, add links to releases * feat: add checks for current versions (cherry picked from commit a439f4e) Co-authored-by: Andrzej Stencel <[email protected]>
1 parent ac30ad6 commit 5c95533

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

.ci/scripts/otel-update.sh

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
usage() {
6+
echo "Usage: $0 <next-beta-core> <next-stable-core> [<next-contrib>]"
7+
echo " <next-beta-core>: Next version of the unstable core components (e.g. v0.120.0). Get it from https://github.com/open-telemetry/opentelemetry-collector/releases."
8+
echo " <next-stable-core>: Next stable version of the stable core components (e.g. v1.26.0). Get it from https://github.com/open-telemetry/opentelemetry-collector/releases."
9+
echo " <next-contrib>: Next version of the contrib components (e.g. v0.120.1). Get it from https://github.com/open-telemetry/opentelemetry-collector-contrib/releases. If not specified, <next-beta-core> is used."
10+
echo
11+
exit 1
12+
}
13+
next_beta_core=${1:-}
14+
[[ -n "$next_beta_core" ]] || (echo "Error: missing <next-beta-core>" && echo && usage)
15+
16+
next_stable_core=${2:-}
17+
[[ -n "$next_stable_core" ]] || (echo "Error: missing <next-stable-core>" && echo && usage)
18+
19+
next_contrib=${3:-$next_beta_core}
20+
21+
# Get current versions from go.mod
22+
current_beta_core=$(grep 'go\.opentelemetry\.io/collector/receiver/otlpreceiver ' go.mod | cut -d' ' -f 2 || true)
23+
current_stable_core=$(grep 'go\.opentelemetry\.io/collector/confmap/provider/fileprovider ' go.mod | cut -d' ' -f 2 || true)
24+
current_contrib=$(grep 'github\.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver ' go.mod | cut -d' ' -f 2 || true)
25+
26+
[[ -n "$current_beta_core" ]] || (echo "Error: couldn't find current beta core version." && exit 2)
27+
[[ -n "$current_stable_core" ]] || (echo "Error: couldn't find current stable core version" && exit 3)
28+
[[ -n "$current_contrib" ]] || (echo "Error: couldn't find current contrib version" && exit 4)
29+
30+
echo "=> Updating core from $current_beta_core/$current_stable_core to $next_beta_core/$next_stable_core"
31+
echo "=> Updating contrib from $current_contrib to $next_contrib"
32+
33+
sed -i.bak "s/\(go\.opentelemetry\.io\/collector.*\) $current_beta_core/\1 $next_beta_core/" go.mod
34+
sed -i.bak "s/\(go\.opentelemetry\.io\/collector.*\) $current_stable_core/\1 $next_stable_core/" go.mod
35+
sed -i.bak "s/\(github\.com\/open-telemetry\/opentelemetry\-collector\-contrib\/.*\) $current_contrib/\1 $next_contrib/" go.mod
36+
rm go.mod.bak
37+
38+
echo "=> Running go mod tidy"
39+
go mod tidy
40+
echo "=> Running mage notice"
41+
mage notice
42+
echo "=> Running mage otel:readme"
43+
mage otel:readme
44+
45+
echo "=> Creating changelog fragment"
46+
changelog_fragment_name="update-otel-components-to-$next_contrib"
47+
elastic-agent-changelog-tool new "$changelog_fragment_name"
48+
sed -i.bak "s/^kind:.*$/kind: enhancement/" ./changelog/fragments/*-"${changelog_fragment_name}".yaml
49+
sed -i.bak "s/^summary:.*$/summary: Update OTel components to ${next_contrib}/" ./changelog/fragments/*-"${changelog_fragment_name}".yaml
50+
sed -i.bak "s/^component:.*$/component: elastic-agent/" ./changelog/fragments/*-"${changelog_fragment_name}".yaml
51+
rm ./changelog/fragments/*-"${changelog_fragment_name}".yaml.bak

0 commit comments

Comments
 (0)