mirror of https://github.com/rancher/kubectl.git
32 lines
1.2 KiB
Bash
Executable File
32 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
RELEASES=$(gh api graphql -F owner='kubernetes' -F name='kubernetes' -f query='query($name: String!, $owner: String!) {repository(owner: $owner, name: $name) {releases(first: 100) {nodes { tagName, isPrerelease }} }}' | jq -r '.data.repository.releases.nodes[] | select(.isPrerelease != true) | .tagName' | sort -V)
|
|
# Including v1.20 to v1.39
|
|
INCLUDE_VERSIONS="v1\.[2-3][0-9]\.[0-9]+"
|
|
VERSIONS_FILE="versions.txt"
|
|
|
|
ADDED_VERSIONS=()
|
|
|
|
for RELEASE in $RELEASES; do
|
|
if [[ $RELEASE =~ $INCLUDE_VERSIONS ]]; then
|
|
echo "Version ${RELEASE} matched include versions, checking if already present"
|
|
if ! grep -q "^${RELEASE}$" "${VERSIONS_FILE}"; then
|
|
echo "Version ${RELEASE} not present in versions file ${VERSIONS_FILE}, adding"
|
|
ADDED_VERSIONS+=( "${RELEASE}" )
|
|
echo "${RELEASE}" >> "${VERSIONS_FILE}"
|
|
else
|
|
echo "Version ${RELEASE} already present in versions file ${VERSIONS_FILE}, skipping"
|
|
fi
|
|
else
|
|
echo "Version ${RELEASE} does not match include versions, skipping"
|
|
fi
|
|
done
|
|
|
|
if [ "${#ADDED_VERSIONS[@]}" -gt 0 ]; then
|
|
echo "Added [${#ADDED_VERSIONS[@]}] versions: (${ADDED_VERSIONS[@]})"
|
|
sort -rV -o "${VERSIONS_FILE}" "${VERSIONS_FILE}"
|
|
else
|
|
echo "No new versions added"
|
|
fi
|
|
|