Skip to content

Update Longhorn Repository Branch Image Tags #6

Update Longhorn Repository Branch Image Tags

Update Longhorn Repository Branch Image Tags #6

name: Update Longhorn Repository Branch Image Tags
on:
workflow_dispatch:
inputs:
branch:
description: "Branch, ex: v1.7.x"
required: true
tag:
description: "Tag, ex: v1.7.x-head"
required: true
defaults:
run:
shell: bash
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: Update repo branch image tags
run: |
set -o errexit
set -o xtrace
tag=${{ inputs.tag }}
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
}
replace_images_tags_in_longhorn_images_txt "deploy/longhorn-images.txt" "$tag"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
branch: "update-image-tags-${{ inputs.branch }}"
commit-message: "chore: update image tags in deploy/longhorn-images.txt"
title: "Update image tags for branch ${{ inputs.branch }}"
body: |
This PR updates the image tags in `deploy/longhorn-images.txt` to use the tag `${{ inputs.tag }}`.