Skip to content

Commit 3f9119d

Browse files
[CI] Enhance backport_branch.sh to handle the case when package name and path are not identical (#14814)
1 parent c91f68e commit 3f9119d

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

.buildkite/pipeline.backport.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,14 @@ steps:
3131
key: "BASE_COMMIT"
3232
required: true
3333
default: ""
34-
- text: "Enter package name"
34+
- text: "Enter package name (as defined in manifest.yml)"
3535
key: "PACKAGE_NAME"
3636
required: true
3737
default: ""
38+
- text: "Enter name of the folder for the package (in most cases coincides with PACKAGE_NAME)"
39+
key: "PACKAGE_FOLDER_NAME"
40+
required: true
41+
default: ""
3842
- text: "Enter package version (examples: 1.5.7, 1.0.0-beta1)"
3943
key: "PACKAGE_VERSION"
4044
required: true

.buildkite/scripts/backport_branch.sh

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ trap cleanup_gh EXIT
1616
DRY_RUN="$(buildkite-agent meta-data get DRY_RUN --default ${DRY_RUN:-"true"})"
1717
BASE_COMMIT="$(buildkite-agent meta-data get BASE_COMMIT --default ${BASE_COMMIT:-""})"
1818
PACKAGE_NAME="$(buildkite-agent meta-data get PACKAGE_NAME --default ${PACKAGE_NAME:-""})"
19+
PACKAGE_FOLDER_NAME="$(buildkite-agent meta-data get PACKAGE_FOLDER_NAME --default ${PACKAGE_FOLDER_NAME:-""})"
1920
PACKAGE_VERSION="$(buildkite-agent meta-data get PACKAGE_VERSION --default ${PACKAGE_VERSION:-""})"
2021
REMOVE_OTHER_PACKAGES="$(buildkite-agent meta-data get REMOVE_OTHER_PACKAGES --default ${REMOVE_OTHER_PACKAGES:-"false"})"
2122

22-
if [[ -z "$PACKAGE_NAME" ]] || [[ -z "$PACKAGE_VERSION" ]]; then
23-
buildkite-agent annotate "The variables **PACKAGE_NAME** or **PACKAGE_VERSION** aren't defined, please try again" --style "warning"
23+
if [[ -z "$PACKAGE_NAME" ]] || [[ -z "$PACKAGE_FOLDER_NAME" ]] || [[ -z "$PACKAGE_VERSION" ]]; then
24+
buildkite-agent annotate "The variables **PACKAGE_NAME**, **PACKAGE_FOLDER_NAME** or **PACKAGE_VERSION** aren't defined, please try again" --style "warning"
2425
exit 1
2526
fi
2627

@@ -29,6 +30,7 @@ PARAMETERS=(
2930
"**DRY_RUN**=$DRY_RUN"
3031
"**BASE_COMMIT**=$BASE_COMMIT"
3132
"**PACKAGE_NAME**=$PACKAGE_NAME"
33+
"**PACKAGE_FOLDER_NAME**=$PACKAGE_FOLDER_NAME"
3234
"**PACKAGE_VERSION**=$PACKAGE_VERSION"
3335
"**REMOVE_OTHER_PACKAGES**=$REMOVE_OTHER_PACKAGES"
3436
)
@@ -98,7 +100,7 @@ removeOtherPackages() {
98100
local sourceFolder=$1
99101
local currentPackage=""
100102
for dir in "$sourceFolder"/*; do
101-
if [[ -d "$dir" ]] && [[ "$(basename "$dir")" != "$PACKAGE_NAME" ]]; then
103+
if [[ -d "$dir" ]] && [[ "$(basename "$dir")" != "$PACKAGE_FOLDER_NAME" ]]; then
102104
echo "Removing directory: $dir"
103105
rm -rf "$dir"
104106

@@ -212,7 +214,7 @@ updateBackportBranchContents() {
212214
if [ "$DRY_RUN" == "true" ];then
213215
echo "DRY_RUN mode, nothing will be pushed."
214216
# Show just the relevant files diff (go.mod, go.sum, .buildkite, dev, .go-version, .github/CODEOWNERS and package to be backported)
215-
git --no-pager diff $SOURCE_BRANCH...$BACKPORT_BRANCH_NAME .buildkite/ dev/ go.sum go.mod .go-version .github/CODEOWNERS "packages/${PACKAGE_NAME}"
217+
git --no-pager diff $SOURCE_BRANCH...$BACKPORT_BRANCH_NAME .buildkite/ dev/ go.sum go.mod .go-version .github/CODEOWNERS "packages/${PACKAGE_FOLDER_NAME}"
216218
else
217219
echo "Pushing..."
218220
git push origin $BACKPORT_BRANCH_NAME
@@ -252,15 +254,15 @@ if branchExist "$BACKPORT_BRANCH_NAME"; then
252254
fi
253255

254256
# backport branch does not exist, running checks and create branch
255-
version="$(git show "${BASE_COMMIT}":"packages/${PACKAGE_NAME}/manifest.yml" | yq -r .version)"
257+
version="$(git show "${BASE_COMMIT}":"packages/${PACKAGE_FOLDER_NAME}/manifest.yml" | yq -r .version)"
256258
echo "Check if version from ${BASE_COMMIT} (${version}) matches with version from input step ${PACKAGE_VERSION}"
257259
if [[ "${version}" != "${PACKAGE_VERSION}" ]]; then
258-
buildkite-agent annotate "Unexpected version found in packages/${PACKAGE_NAME}/manifest.yml" --style "error"
260+
buildkite-agent annotate "Unexpected version found in packages/${PACKAGE_FOLDER_NAME}/manifest.yml" --style "error"
259261
exit 1
260262
fi
261263

262264
echo "Check that this changeset is the one creating the version $PACKAGE_NAME"
263-
if ! git show -p ${BASE_COMMIT} packages/${PACKAGE_NAME}/manifest.yml | grep -E "^\+version: \"{0,1}${PACKAGE_VERSION}" ; then
265+
if ! git show -p ${BASE_COMMIT} packages/${PACKAGE_FOLDER_NAME}/manifest.yml | grep -E "^\+version: \"{0,1}${PACKAGE_VERSION}" ; then
264266
buildkite-agent annotate "This changeset does not creates the version ${PACKAGE_VERSION}" --style "error"
265267
exit 1
266268
fi

docs/extend/developer-workflow-support-old-package.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ Follow these detailed steps to release a fix for a given package version:
7373
If DRY_RUN is defined as "false", in addition to written above it will create a commit and push the local branch to the upstream repository [https://github.com/elastic/integrations.git](https://github.com/elastic/integrations.git). In this case, the name of the branch will be `+backport-${PACKAGE_NAME}-${TRIMMED_PACKAGE_VERSION}+`, for example, `backport-aws-1.19`.
7474
7575
* **BASE_COMMIT** (default: "") - enter the commit from the previous step (8cb321075afb9b77ea965e1373a03a603d9c9796)
76-
* **PACKAGE_NAME** (default: "") - enter the package name, for example aws
76+
* **PACKAGE_NAME** (default: "") - enter the package name, as defined in manifest.yml, for example aws
77+
* **PACKAGE_FOLDER_NAME** (default: "") - enter the package folder name, in most cases coincides with package name, for example "sql_input" (but package name is "sql")
7778
* **PACKAGE_VERSION** (default: "") - enter the package version, for example: 1.19.7, 1.0.0-beta1
7879
* **REMOVE_OTHER_PACKAGES** (default: "false") If **REMOVE_OTHER_PACKAGES** is defined as "true" all packages from the **packages** folder, except the defined package, will be removed from the created branch.
7980

0 commit comments

Comments
 (0)