Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions .github/scripts/enhance-release-notes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

set -euo pipefail

# Get the repository from environment or default
REPO="${GITHUB_REPOSITORY:-open-telemetry/opentelemetry-helm-charts}"

# Function to update release notes for a chart
update_release_notes() {
local chart_name="$1"
Expand All @@ -16,7 +19,7 @@ update_release_notes() {
enhanced_notes=$(.github/scripts/generate-release-notes.sh "$chart_name" "$chart_version" "$app_version" "charts/$chart_name/")

# Get the current release notes
current_notes=$(gh release view "$release_tag" --json body --jq '.body' 2>/dev/null || echo "")
current_notes=$(gh release view "$release_tag" --repo "$REPO" --json body --jq '.body' 2>/dev/null || echo "")

if [[ -z "$current_notes" ]]; then
echo "ERROR: No existing release notes found for ${release_tag}. This indicates a problem with the chart-releaser process."
Expand All @@ -32,7 +35,7 @@ update_release_notes() {
$enhanced_notes"

# Update the release notes
gh release edit "$release_tag" --notes "$combined_notes"
gh release edit "$release_tag" --repo "$REPO" --notes "$combined_notes"
}

# Main function to enhance release notes for recent releases
Expand All @@ -46,16 +49,16 @@ enhance_release_notes() {
release_tag="${chart_name}-${chart_version}"

# Check if this release was just created (within the last 5 minutes)
if gh release view "$release_tag" >/dev/null 2>&1; then
release_date=$(gh release view "$release_tag" --json publishedAt --jq '.publishedAt')
if gh release view "$release_tag" --repo "$REPO" >/dev/null 2>&1; then
release_date=$(gh release view "$release_tag" --repo "$REPO" --json publishedAt --jq '.publishedAt')
release_timestamp=$(date -d "$release_date" +%s)
current_timestamp=$(date +%s)
time_diff=$((current_timestamp - release_timestamp))

# If release was created within the last 5 minutes (300 seconds), check if appVersion changed
if [[ $time_diff -lt 300 ]]; then
# Check if appVersion changed compared to the previous chart version
previous_chart_version=$(git tag -l "${chart_name}-*" --sort=-version:refname | grep -v "^${release_tag}$" | head -1)
previous_chart_version=$(git tag -l "${chart_name}-*" --sort=-version:refname | grep -v "^${release_tag}$" | head -1 || echo "")

if [[ -n "$previous_chart_version" ]]; then
# Get the previous appVersion from git
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,30 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Helm OCI Registry
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ghcr.io \
--username ${{ github.actor }} \
--password-stdin

- name: Push charts to GHCR
run: |
shopt -s nullglob
for pkg in .cr-release-packages/*; do
if [ -z "${pkg:-}" ]; then
break
fi
echo "Pushing ${pkg} to oci://ghcr.io/${GITHUB_REPOSITORY}"
helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY}"
done

- name: Fetch newly created tags
run: |
git config --global url."https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/".insteadOf "https://github.com/"
git fetch --tags origin

- name: Enhance release notes with OpenTelemetry links
run: .github/scripts/enhance-release-notes.sh
env:
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
GITHUB_REPOSITORY: "${{ github.repository }}"
Loading