Skip to content

Commit f13c540

Browse files
CLOUDP-311383: add a cleanup step after in the changelog release process
1 parent dfa08df commit f13c540

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

.github/scripts/get_list_files_to_delete.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ if [ -z "${upcoming_api_versions}" ]; then
1818
fi
1919

2020
files_to_delete=()
21+
changelog_files_to_delete=()
2122
# Populate upcoming_array line by line from the multi-line upcoming_api_versions string
2223
while IFS= read -r line; do
2324
# Add to array only if line is not empty
@@ -38,15 +39,40 @@ for upcoming_version_item in "${upcoming_array[@]}"; do
3839
# to the files_to_delete array.
3940
files_to_delete+=("openapi-${upcoming_version_item}.json")
4041
files_to_delete+=("openapi-${upcoming_version_item}.yaml")
42+
add_changelog_files_to_delete "${upcoming_version_item}"
4143
fi
4244
done
4345

46+
add_changelog_files_to_delete() {
47+
pushd ../../changelog/version-diff
48+
49+
upcoming_version_item="$1"
50+
changelog_files=(./*)
51+
52+
for file in "${changelog_files[@]}"; do
53+
filename=$(basename "$file")
54+
if [[ "${filename}" == *"${upcoming_version_item}"* ]]; then
55+
changelog_files_to_delete+=("${filename}")
56+
fi
57+
done
58+
59+
popd
60+
}
61+
4462
# Display the files marked for deletion
4563
if [ ${#files_to_delete[@]} -gt 0 ]; then
4664
echo "V2_OPEN_API_FILES_TO_DELETE=${files_to_delete[*]}" >> "${GITHUB_OUTPUT:?}"
65+
echo "V2_CHANGELOG_FILES_TO_DELETE=${changelog_files_to_delete[*]}" >> "${GITHUB_OUTPUT:?}"
66+
67+
echo "Files to delete:"
4768
for file_to_del in "${files_to_delete[@]}"; do
4869
echo "${file_to_del}"
4970
done
71+
72+
echo "Changelog files to delete:"
73+
for api_to_del in "${changelog_files_to_delete[@]}"; do
74+
echo "${api_to_del}"
75+
done
5076
else
5177
echo "No files marked for deletion."
5278
fi

.github/workflows/release-cleanup.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@ jobs:
4141
- name: Delete files
4242
env:
4343
V2_OPEN_API_FILES_TO_DELETE: ${{ steps.list_files_to_delete.outputs.V2_OPEN_API_FILES_TO_DELETE }}
44+
V2_CHANGELOG_FILES_TO_DELETE: ${{ steps.list_files_to_delete.outputs.V2_CHANGELOG_FILES_TO_DELETE }}
4445
run: |
46+
# Delete OpenAPI specs files
4547
pushd openapi/v2
46-
4748
FILES_CHANGED=false
4849
if [ -z "${V2_OPEN_API_FILES_TO_DELETE}" ]; then
4950
echo "V2_OPEN_API_FILES_TO_DELETE is empty. No files to delete."
@@ -58,8 +59,26 @@ jobs:
5859
fi
5960
done
6061
echo "FILES_CHANGED=${FILES_CHANGED}" >> "$GITHUB_ENV"
62+
popd
63+
64+
# Delete Changelog files
65+
pushd changelog/version-diff
66+
if [ -z "${V2_CHANGELOG_FILES_TO_DELETE}" ]; then
67+
echo "V2_CHANGELOG_FILES_TO_DELETE is empty. No changelog files to delete."
68+
echo "FILES_CHANGED=${FILES_CHANGED}" >> "$GITHUB_ENV"
69+
exit 0
70+
fi
71+
for file_to_delete in ${V2_CHANGELOG_FILES_TO_DELETE}; do
72+
if [ -f "${file_to_delete}" ]; then
73+
echo "Deleting file: ${file_to_delete}"
74+
FILES_CHANGED=true
75+
rm -f "${file_to_delete}"
76+
fi
77+
done
78+
echo "FILES_CHANGED=${FILES_CHANGED}" >> "$GITHUB_ENV"
6179
6280
popd
81+
6382
- name: Create PR
6483
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
6584
if: env.FILES_CHANGED == 'true'
@@ -71,6 +90,7 @@ jobs:
7190
branch: release-cleanup-${{ github.run_id }}
7291
add-paths: |
7392
openapi/v2/*
93+
changelog/version-diff/*
7494
body: |
7595
> NOTE: This PR is autogenerated.
7696
> DO NOT MERGE THE PR IF YOU ARE UNSURE ABOUT THE CHANGE.

0 commit comments

Comments
 (0)