@@ -51,45 +51,61 @@ jobs:
51
51
3.8
52
52
3.9
53
53
54
- - name : Install pipenv
55
- run : pip install pipenv
54
+ - name : Install pipenv and pip-versions
55
+ run : pip install pipenv pip-versions
56
56
57
57
- name : Update Pipfiles in accordance with Codeflare-SDK latest release
58
58
run : |
59
- # list all Pipfile paths having Codeflare-SDK listed
60
- paths+=($(grep -rl 'codeflare-sdk = "~=.*"'))
61
- # Extracting only directories from file paths, excluding a `.gitworkflow` directory
62
- directories=()
63
- exclude_directories=(
64
- ".git/objects/pack"
65
- ".github/workflows/",
66
- )
67
- for path in "${paths[@]}"; do
68
- current_dir=$(dirname "$path")
69
- #Check if current_dir is not in exclude_directories list
70
- if [[ ! "${exclude_directories[@]}" =~ "$current_dir" ]]; then
71
- #Check if Pipfile exists in current_dir
72
- if [ -f "$current_dir/Pipfile" ];then
73
- directories+=("$current_dir")
59
+ package_name=codeflare-sdk
60
+ # Get the list of available versions for the package
61
+ if ! versions=$(pipenv run pip-versions list $package_name);then
62
+ echo "Failed to retrieve versions for $package_name"
63
+ exit 1
64
+ fi
65
+ # Check if the desired version exists in the list
66
+ if echo "$versions" | grep -q "${CODEFLARE_RELEASE_VERSION}"; then
67
+ echo "Version ${CODEFLARE_RELEASE_VERSION} is available for $package_name"
68
+ # list all Pipfile paths having Codeflare-SDK listed
69
+ paths+=($(grep -rl "${package_name} = \"~=.*\""))
70
+ # Extracting only directories from file paths, excluding a `.gitworkflow` directory
71
+ directories=()
72
+ exclude_directories=(
73
+ ".git/objects/pack"
74
+ ".github/workflows/",
75
+ )
76
+ for path in "${paths[@]}"; do
77
+ current_dir=$(dirname "$path")
78
+ #Check if current_dir is not in exclude_directories list
79
+ if [[ ! "${exclude_directories[@]}" =~ "$current_dir" ]]; then
80
+ #Check if Pipfile exists in current_dir
81
+ if [ -f "$current_dir/Pipfile" ];then
82
+ directories+=("$current_dir")
83
+ fi
74
84
fi
75
- fi
76
- done
77
- # Remove duplicates
78
- directories=($(echo "${directories[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
79
- # Print the directories for verification
80
- echo "Directories (Start updating Pipfile in these below directories in accordance with Codeflare-SDK latest release):"
81
- for dir in "${directories[@]}"; do
82
- echo "- $dir"
83
- done
84
- # iterate over the directories and update Pipfile
85
- counter=0
86
- total=${#directories[@]}
87
- for dir in "${directories[@]}"; do
88
- counter=$((counter+1))
89
- echo "--Processing directory $counter '$dir' of total $total"
90
- cd "$dir" && pipenv install codeflare-sdk~="${CODEFLARE_RELEASE_VERSION}" && pipenv --rm && cd -
91
- echo "$((total-counter)) directories remaining.."
92
- done
85
+ done
86
+ # Remove duplicates
87
+ directories=($(echo "${directories[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
88
+ # Print the directories for verification
89
+ echo "Directories (Start updating Pipfile in these below directories in accordance with Codeflare-SDK latest release):"
90
+ for dir in "${directories[@]}"; do
91
+ echo "- $dir"
92
+ done
93
+ # iterate over the directories and update Pipfile
94
+ counter=0
95
+ total=${#directories[@]}
96
+ for dir in "${directories[@]}"; do
97
+ counter=$((counter+1))
98
+ echo "--Processing directory $counter '$dir' of total $total"
99
+ cd "$dir" && pipenv install ${package_name}~="${CODEFLARE_RELEASE_VERSION}" && pipenv --rm && cd -
100
+ echo "$((total-counter)) directories remaining.."
101
+ done
102
+ else
103
+ versions_list=$(echo "$versions" | tr '\n' ' ' | sed 's/, $//')
104
+ versions="${versions_list%,}"
105
+ echo "Version '${CODEFLARE_RELEASE_VERSION}' is not available for $package_name"
106
+ echo "Available versions for $package_name: $versions"
107
+ exit 1
108
+ fi
93
109
94
110
- name : Push changes
95
111
run : |
0 commit comments