Skip to content

Commit f725ceb

Browse files
committed
incorporate feedback from code review
1 parent 496bf43 commit f725ceb

File tree

3 files changed

+26
-67
lines changed

3 files changed

+26
-67
lines changed

.github/workflows/scripts/bump-versions.sh

+25-44
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
#!/bin/bash
2-
2+
set -e
33
# This script takes either current beta version, current stable version, or both,
44
# and optionally next beta version and next stable version, and updates the version
55
# in the specified files. If next version is not provided, it will infer the next
66
# semantic version (e.g. v0.110.0 -> v0.111.0 or v1.16.0 -> v1.17.0) based on the
77
# current version(s) passed.
88

9+
# List of files to update
10+
files=(
11+
"distributions/otelcol-contrib/manifest.yaml"
12+
"distributions/otelcol/manifest.yaml"
13+
"distributions/otelcol-k8s/manifest.yaml"
14+
"distributions/otelcol-otlp/manifest.yaml"
15+
"Makefile"
16+
)
17+
918
# Function to display usage
1019
usage() {
11-
echo "Usage: $0 [--commit] [--pull-request] --current-beta-core <current-beta-core> [--current-beta-contrib <current-beta-contrib>] [--current-stable <current-stable>] [--next-beta-core <next-beta-core>] [--next-beta-contrib <next-beta-contrib>] [--next-stable <next-stable>]"
12-
echo " --current-beta-core: Current beta version of the core component (e.g., v0.110.0)"
13-
echo " --current-beta-contrib: Current beta version of the contrib component (e.g., v0.110.0)"
14-
echo " --current-stable: Current stable version of the core component (e.g., v1.16.0)"
15-
echo " at least one of the above three arguments is required, or there is no version to update."
16-
echo
20+
echo "Usage: $0 [--commit] [--pull-request] [--next-beta-core <next-beta-core>] [--next-beta-contrib <next-beta-contrib>] [--next-stable <next-stable>]"
1721
echo " --next-beta-core: Next beta version of the core component (e.g., v0.111.0)"
1822
echo " --next-beta-contrib: Next beta version of the contrib component (e.g., v0.111.0)"
1923
echo " --next-stable: Next stable version of the core component (e.g., v1.17.0)"
@@ -38,11 +42,11 @@ validate_and_strip_version() {
3842
commit_changes=false
3943
create_pr=false
4044
# Parse named arguments
45+
current_beta_core=$(awk '/^.*go\.opentelemetry\.io\/collector\/.* v0/ {print $4; exit}' distributions/otelcol/manifest.yaml)
46+
current_beta_contrib=$(awk '/^.*github\.com\/open-telemetry\/opentelemetry-collector-contrib\/.* v0/ {print $4; exit}' distributions/otelcol-contrib/manifest.yaml)
47+
current_stable=$(awk '/^.*go\.opentelemetry\.io\/collector\/.* v1/ {print $4; exit}' distributions/otelcol/manifest.yaml)
4148
while [[ "$#" -gt 0 ]]; do
4249
case $1 in
43-
--current-beta-core) current_beta_core="$2"; shift ;;
44-
--current-beta-contrib) current_beta_contrib="$2"; shift ;;
45-
--current-stable) current_stable="$2"; shift ;;
4650
--next-beta-core) next_beta_core="$2"; shift ;;
4751
--next-beta-contrib) next_beta_contrib="$2"; shift ;;
4852
--next-stable) next_stable="$2"; shift ;;
@@ -59,11 +63,6 @@ if [ "$create_pr" = true ] && [ "$commit_changes" = false ]; then
5963
usage
6064
fi
6165

62-
# Check if at least one of the required arguments is provided
63-
if [ -z "$current_beta_core" ] && [ -z "$current_beta_contrib" ] && [ -z "$current_stable" ]; then
64-
usage
65-
fi
66-
6766
# Validate and strip versions
6867
if [ -n "$current_beta_core" ]; then
6968
validate_and_strip_version current_beta_core
@@ -109,45 +108,27 @@ if [ -n "$current_stable" ] && [ -z "$next_stable" ]; then
109108
next_stable=$(bump_version "$current_stable")
110109
fi
111110

112-
# List of files to update
113-
files=(
114-
"distributions/otelcol-contrib/manifest.yaml"
115-
"distributions/otelcol/manifest.yaml"
116-
"distributions/otelcol-k8s/manifest.yaml"
117-
"distributions/otelcol-otlp/manifest.yaml"
118-
"Makefile"
119-
)
120-
111+
# add escape characters to the current versions to work with sed
112+
escaped_current_beta_core=${current_beta_core//./\\.}
113+
escaped_current_beta_contrib=${current_beta_contrib//./\\.}
114+
escaped_current_stable=${current_stable//./\\.}
121115
# Update versions in each file
122116
for file in "${files[@]}"; do
123117
if [ -f "$file" ]; then
124-
temp_file=$(mktemp)
125-
cp "$file" "$temp_file"
126-
line_number=1
127-
while IFS= read -r line; do
128-
if [[ "$line" == *"github.com/open-telemetry/opentelemetry-collector-contrib"* ]]; then
129-
if [ -n "$current_beta_contrib" ]; then
130-
sed -i.bak "${line_number}s/$current_beta_contrib/$next_beta_contrib/" "$temp_file"
131-
fi
132-
elif [[ "$line" == *"go.opentelemetry.io/collector"* ]]; then
133-
if [ -n "$current_beta_core" ]; then
134-
sed -i.bak "${line_number}s/$current_beta_core/$next_beta_core/" "$temp_file"
135-
fi
136-
if [ -n "$current_stable" ]; then
137-
sed -i.bak "${line_number}s/$current_stable/$next_stable/" "$temp_file"
138-
fi
139-
fi
140-
line_number=$((line_number + 1))
141-
done < "$file"
142-
mv "$temp_file" "$file"
143-
rm "${temp_file}.bak"
118+
sed -i '' "s/\(^.*go\.opentelemetry\.io\/collector\/.*\) v$escaped_current_beta_core/\1 v$next_beta_core/" "$file"
119+
sed -i '' "s/\(^.*github\.com\/open-telemetry\/opentelemetry-collector-contrib\/.*\) v$escaped_current_beta_contrib/\1 v$next_beta_contrib/" "$file"
120+
sed -i '' "s/\(^.*go\.opentelemetry\.io\/collector\/.*\) v$escaped_current_stable/\1 v$next_stable/" "$file"
121+
sed -i '' "s/version: $escaped_current_beta_core/version: $next_beta_core/" "$file"
122+
sed -i '' "s/OTELCOL_BUILDER_VERSION ?= $escaped_current_beta_core/OTELCOL_BUILDER_VERSION ?= $next_beta_core/" Makefile
144123
else
145124
echo "File $file does not exist"
146125
fi
147126
done
148127

149128
echo "Version update completed."
150129

130+
make chlog-update VERSION="v$next_beta_core"
131+
151132
# Commit changes and draft PR
152133
if [ "$commit_changes" = false ] && [ "$create_pr" = false ]; then
153134
echo "Changes not committed and PR not created."

.github/workflows/update-version.yaml

-22
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@ name: Update Version in Distributions and Prepare PR
22
on:
33
workflow_dispatch:
44
inputs:
5-
current_beta_core:
6-
description: 'Current collector core beta version, e.g. v0.111.0 or 0.111.0'
7-
required: false
8-
default: ''
9-
current_beta_contrib:
10-
description: 'Current collector contrib beta version, e.g. v0.111.0 or 0.111.0'
11-
required: false
12-
default: ''
13-
current_stable:
14-
description: 'Current stable version, e.g. v1.16.0 or 1.16.0'
15-
required: false
16-
default: ''
175
next_beta_core:
186
description: 'Next collector core beta version (optional)'
197
required: false
@@ -38,13 +26,6 @@ jobs:
3826
env:
3927
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4028
steps:
41-
- name: Validate inputs
42-
run: |
43-
if [ -z "${{ github.event.inputs.current_beta_core }}" ] && [ -z "${{ github.event.inputs.current_beta_contrib }}" ] && [ -z "${{ github.event.inputs.current_stable }}" ]; then
44-
echo "Error: At least one of 'current_beta_core', 'current_beta_contrib', or 'current_stable' must be provided."
45-
exit 1
46-
fi
47-
4829
- name: Checkout repository
4930
uses: actions/checkout@v2
5031

@@ -57,9 +38,6 @@ jobs:
5738
fi
5839
.github/workflows/scripts/bump-versions.sh $args
5940
env:
60-
current_beta_core: ${{ github.event.inputs.current_beta_core }}
61-
current_beta_contrib: ${{ github.event.inputs.current_beta_contrib }}
62-
current_stable: ${{ github.event.inputs.current_stable }}
6341
next_beta_core: ${{ github.event.inputs.next_beta_core }}
6442
next_beta_contrib: ${{ github.event.inputs.next_beta_contrib }}
6543
next_stable: ${{ github.event.inputs.next_stable }}

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ GORELEASER ?= goreleaser
33

44
# SRC_ROOT is the top of the source tree.
55
SRC_ROOT := $(shell git rev-parse --show-toplevel)
6-
OTELCOL_BUILDER_VERSION ?= 0.115.0
6+
OTELCOL_BUILDER_VERSION ?= 0.116.0
77
OTELCOL_BUILDER_DIR ?= ${HOME}/bin
88
OTELCOL_BUILDER ?= ${OTELCOL_BUILDER_DIR}/ocb
99

0 commit comments

Comments
 (0)