Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
Signed-off-by: Derek Su <derek.su@suse.com>
  • Loading branch information
derekbit committed Jan 8, 2025
1 parent 51b06e1 commit 4964790
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 1 deletion.
4 changes: 3 additions & 1 deletion .github/workflows/update-branch-image-versions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}

- name: Update repo branch image tags
run: bash ./.github/workflows/update-repo-branch-image-tags.sh ${{ inputs.branch }} ${{ inputs.tag }}
run: bash ./.github/workflows/update-repo-image-tags.sh ${{ inputs.tag }}

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/update-repo-image-tags.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/usr/bin/env bash

set -o errexit
set -o xtrace

if [ "$#" -ne 1 ]; then
echo "Illegal number of arguments. tag is required." >/dev/stderr
exit 1
fi

tag=$1

repos_dir=.repos

images=(
longhornio/backing-image-manager
longhornio/longhorn-engine
longhornio/longhorn-instance-manager
longhornio/longhorn-manager
longhornio/longhorn-share-manager
longhornio/longhorn-ui
longhornio/longhorn-cli
)

function replace_images_tags_in_longhorn_images_txt() {
local input_file="$1"
local tag="$2"

local output_file="${input_file}.new"

if [ -z "$input_file" ] || [ -z "$tag" ]; then
echo "Usage: replace_longhorn_images <input_file> <tag>"
return 1
fi

while IFS= read -r line; do
modified=false
for img in "${images[@]}"; do
if [[ "$line" == *"$img"* ]]; then
if [[ "$line" =~ $img(:[^ ]*)? ]]; then
line=$(echo "$line" | sed -E "s|$img(:[^ ]*)?|$img:$tag|")
modified=true
break
fi
fi
done
echo "$line" >> "$output_file"
done < "$input_file"

if [ $? -eq 0 ]; then
mv "$output_file" "$input_file"
echo "Successfully replaced Longhorn image tags in '$input_file'."
else
rm -f "$output_file"
echo "Error: Failed to replace Longhorn image tags."
return 1
fi
}

function teardown() {
rm -rf $repos_dir
}
trap teardown EXIT

mkdir -p $repos_dir

pushd $repos_dir

replace_images_tags_in_longhorn_images_txt "deploy/longhorn-images.txt" "${tag}"

popd

0 comments on commit 4964790

Please sign in to comment.