From 5c4b50773113eeb776edfe2517cceeceeba71783 Mon Sep 17 00:00:00 2001 From: "Sun, Xuehao" Date: Fri, 16 Aug 2024 16:18:51 +0800 Subject: [PATCH] replace tag Signed-off-by: Sun, Xuehao --- .github/workflows/manual-freeze-images.yml | 38 ++++++++++++++++++++++ .github/workflows/scripts/freeze_images.sh | 37 +++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .github/workflows/manual-freeze-images.yml create mode 100644 .github/workflows/scripts/freeze_images.sh diff --git a/.github/workflows/manual-freeze-images.yml b/.github/workflows/manual-freeze-images.yml new file mode 100644 index 0000000000..fd2d979913 --- /dev/null +++ b/.github/workflows/manual-freeze-images.yml @@ -0,0 +1,38 @@ +# Copyright (C) 2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +name: Freeze-requirements + +on: + workflow_dispatch: + +jobs: + freeze-requirements: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.ref }} + + - uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Set up Git + run: | + git config --global user.name "NeuralChatBot" + git config --global user.email "grp_neural_chat_bot@intel.com" + git remote set-url origin https://NeuralChatBot:"${{ secrets.ACTION_TOKEN }}"@github.com/opea-project/GenAIComps.git + + - name: Run script + run: | + bash .github/workflows/scripts/freeze_images.sh + + - name: Commit changes + run: | + git add . + git commit -s -m "Freeze images tag" + git push diff --git a/.github/workflows/scripts/freeze_images.sh b/.github/workflows/scripts/freeze_images.sh new file mode 100644 index 0000000000..c6bb2faf2e --- /dev/null +++ b/.github/workflows/scripts/freeze_images.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +function get_latest_version() { + repo_image=$1 + versions=$(curl -s "https://registry.hub.docker.com/v2/repositories/$repo_image/tags/" | jq '."results"[]["name"]' | tr -d '"') + echo "version list: $versions" + latest_version=$(printf "%s\n" "${versions[@]}" | grep -v "latest" | sort -V | tail -n 1) + echo "latest version: $latest_version" + replace_image_version $repo_image $latest_version +} + +function replace_image_version() { + repo_image=$1 + version=$2 + find . -name "Dockerfile*" | xargs sed -i "s|$repo_image:latest|$repo_image:$version|g" +} + +function check_branch_name() { + if [[ "$GITHUB_REF_NAME" == "main" ]]; then + echo "$GITHUB_REF_NAME is protected branch" + exit 0 + else + echo "branch name is $GITHUB_REF_NAME" + fi +} + +function main() { + check_branch_name + repo_image_list="langchain/langchain" + for repo_image in $repo_image_list; do + echo "::group::check $repo_image" + get_latest_version $repo_image + echo "::endgroup::" + done +} + +main