Skip to content

Commit e3e7bdb

Browse files
authored
chore: Script to update versions.txt to latest (googleapis#8432)
1 parent 9931ad2 commit e3e7bdb

124 files changed

Lines changed: 632 additions & 530 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

generation/update_versions.sh

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
function retry_with_backoff {
6+
attempts_left=$1
7+
sleep_seconds=$2
8+
shift 2
9+
command=$@
10+
11+
# store current flag state
12+
flags=$-
13+
14+
# allow a failures to continue
15+
set +e
16+
${command}
17+
exit_code=$?
18+
19+
# restore "e" flag
20+
if [[ ${flags} =~ e ]]
21+
then set -e
22+
else set +e
23+
fi
24+
25+
if [[ $exit_code == 0 ]]
26+
then
27+
return 0
28+
fi
29+
30+
# failure
31+
if [[ ${attempts_left} -gt 0 ]]
32+
then
33+
echo "failure (${exit_code}), sleeping ${sleep_seconds}..."
34+
sleep ${sleep_seconds}
35+
new_attempts=$((${attempts_left} - 1))
36+
new_sleep=$((${sleep_seconds} * 2))
37+
retry_with_backoff ${new_attempts} ${new_sleep} ${command}
38+
fi
39+
40+
return $exit_code
41+
}
42+
43+
count=0
44+
missing_artifacts=()
45+
46+
for path in $(find . -mindepth 2 -maxdepth 2 -name pom.xml | sort | xargs dirname); do
47+
# As of 9/21/22: BeyondCorp repos do not have artifacts released to maven central
48+
if [[ "${path}" =~ google-cloud-gapic-bom ]] || [[ "${path}" =~ CoverageAggregator ]] || [[ "${path}" =~ .*samples.* ]] || [[ "${path}" =~ .*beyondcorp.* ]]; then
49+
continue
50+
fi
51+
52+
versions_array=($(grep -E "^.*:[0-9]+\.[0-9]+\.[0-9]+.*:[0-9]+\.[0-9]+\.[0-9]+.*$" "${path}/versions.txt"))
53+
54+
for line in "${versions_array[@]}"; do
55+
artifactId=$(echo "${line}" | cut -d ":" -f1)
56+
57+
if [[ "${artifactId}" =~ .*grafeas.* ]]; then
58+
maven_url="https://repo1.maven.org/maven2/io/grafeas/${artifactId}/maven-metadata.xml"
59+
elif [[ "${artifactId}" =~ .*area120.* ]] && [[ "${artifactId}" =~ ^google- ]]; then
60+
maven_url="https://repo1.maven.org/maven2/com/google/area120/${artifactId}/maven-metadata.xml"
61+
elif [[ "${artifactId}" =~ .*analytics.* ]] && [[ "${artifactId}" =~ ^google- ]]; then
62+
maven_url="https://repo1.maven.org/maven2/com/google/analytics/${artifactId}/maven-metadata.xml"
63+
elif [[ "${artifactId}" =~ ^google- ]]; then
64+
maven_url="https://repo1.maven.org/maven2/com/google/cloud/${artifactId}/maven-metadata.xml"
65+
else
66+
maven_url="https://repo1.maven.org/maven2/com/google/api/grpc/${artifactId}/maven-metadata.xml"
67+
fi
68+
69+
count=$((count + 1))
70+
echo "Module #${count} -- Downloading ${artifactId} from ${maven_url}"
71+
# Check if the artifact exists in Maven Central, otherwise add to missing_artifacts
72+
if wget --spider "${maven_url}" 2>/dev/null; then
73+
metadata_file=$(retry_with_backoff 3 10 curl -s "${maven_url}" -H "Accept:application/xml" --limit-rate 200k)
74+
75+
# Versioning of artifacts in Maven Central follow SemVer (Major.Minor.Patch-{alpha|beta})
76+
# This keeps track of the additional versioning after the PATCH value (alpha/beta)
77+
# `cut` normally returns the entire string if the delimiter DNE. The `-s` makes cut return nothing
78+
# maven_latest_version stores Major.Minor.Patch or the entire version
79+
# maven_latest_trailing stores alpha/beta/etc. or nothing
80+
maven_metadata_version=$(echo "${metadata_file}" | grep 'latest' | cut -d '>' -f 2 | cut -d '<' -f 1)
81+
maven_latest_version=$(echo "${maven_metadata_version}" | cut -d "-" -f1)
82+
maven_latest_trailing=$(echo "${maven_metadata_version}" | cut -s -d "-" -f2-)
83+
84+
major_version=$(echo "${maven_latest_version}" | cut -d "." -f1)
85+
minor_version=$(echo "${maven_latest_version}" | cut -d "." -f2)
86+
patch_version=$(echo "${maven_latest_version}" | cut -d "." -f3)
87+
patch_version_bump=$((patch_version + 1))
88+
if [[ -z "${maven_latest_trailing}" ]]; then
89+
maven_version_bump="${major_version}.${minor_version}.${patch_version_bump}"
90+
else
91+
maven_version_bump="${major_version}.${minor_version}.${patch_version_bump}-${maven_latest_trailing}"
92+
fi
93+
new_version="${artifactId}:${maven_metadata_version}:${maven_version_bump}-SNAPSHOT"
94+
95+
sed -i "s/${line}/${new_version}/g" "${path}/versions.txt"
96+
else
97+
missing_artifacts+=("${artifactId}")
98+
fi
99+
done
100+
done
101+
102+
echo "These artifacts don't exist: ${missing_artifacts[*]}"

java-accessapproval/versions.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-cloud-accessapproval:2.4.4:2.4.5-SNAPSHOT
5-
grpc-google-cloud-accessapproval-v1:2.4.4:2.4.5-SNAPSHOT
6-
proto-google-cloud-accessapproval-v1:2.4.4:2.4.5-SNAPSHOT
4+
google-cloud-accessapproval:2.4.8:2.4.9-SNAPSHOT
5+
grpc-google-cloud-accessapproval-v1:2.4.8:2.4.9-SNAPSHOT
6+
proto-google-cloud-accessapproval-v1:2.4.8:2.4.9-SNAPSHOT
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-identity-accesscontextmanager:1.4.1:1.4.2-SNAPSHOT
5-
grpc-google-identity-accesscontextmanager-v1:1.4.1:1.4.2-SNAPSHOT
6-
proto-google-identity-accesscontextmanager-v1:1.4.1:1.4.2-SNAPSHOT
7-
proto-google-identity-accesscontextmanager-type:1.4.1:1.4.2-SNAPSHOT
4+
google-identity-accesscontextmanager:1.4.3:1.4.4-SNAPSHOT
5+
grpc-google-identity-accesscontextmanager-v1:1.4.3:1.4.4-SNAPSHOT
6+
proto-google-identity-accesscontextmanager-v1:1.4.3:1.4.4-SNAPSHOT
7+
proto-google-identity-accesscontextmanager-type:1.4.3:1.4.4-SNAPSHOT

java-aiplatform/versions.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-cloud-aiplatform:3.2.0:3.2.1-SNAPSHOT
5-
grpc-google-cloud-aiplatform-v1:3.2.0:3.2.1-SNAPSHOT
6-
grpc-google-cloud-aiplatform-v1beta1:0.18.0:0.18.1-SNAPSHOT
7-
proto-google-cloud-aiplatform-v1:3.2.0:3.2.1-SNAPSHOT
8-
proto-google-cloud-aiplatform-v1beta1:0.18.0:0.18.1-SNAPSHOT
4+
google-cloud-aiplatform:3.3.0:3.3.1-SNAPSHOT
5+
grpc-google-cloud-aiplatform-v1:3.3.0:3.3.1-SNAPSHOT
6+
grpc-google-cloud-aiplatform-v1beta1:0.19.0:0.19.1-SNAPSHOT
7+
proto-google-cloud-aiplatform-v1:3.3.0:3.3.1-SNAPSHOT
8+
proto-google-cloud-aiplatform-v1beta1:0.19.0:0.19.1-SNAPSHOT

java-analytics-admin/versions.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-analytics-admin:0.13.0:0.13.1-SNAPSHOT
5-
grpc-google-analytics-admin-v1alpha:0.13.0:0.13.1-SNAPSHOT
6-
proto-google-analytics-admin-v1alpha:0.13.0:0.13.1-SNAPSHOT
7-
proto-google-analytics-admin-v1beta:0.13.0:0.13.1-SNAPSHOT
8-
grpc-google-analytics-admin-v1beta:0.13.0:0.13.1-SNAPSHOT
4+
google-analytics-admin:0.13.2:0.13.3-SNAPSHOT
5+
grpc-google-analytics-admin-v1alpha:0.13.2:0.13.3-SNAPSHOT
6+
proto-google-analytics-admin-v1alpha:0.13.2:0.13.3-SNAPSHOT
7+
proto-google-analytics-admin-v1beta:0.13.2:0.13.3-SNAPSHOT
8+
grpc-google-analytics-admin-v1beta:0.13.2:0.13.3-SNAPSHOT

java-analytics-data/versions.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-analytics-data:0.14.3:0.14.4-SNAPSHOT
5-
grpc-google-analytics-data-v1beta:0.14.3:0.14.4-SNAPSHOT
6-
proto-google-analytics-data-v1beta:0.14.3:0.14.4-SNAPSHOT
7-
proto-google-analytics-data-v1alpha:0.14.3:0.14.4-SNAPSHOT
8-
grpc-google-analytics-data-v1alpha:0.14.3:0.14.4-SNAPSHOT
4+
google-analytics-data:0.14.6:0.14.7-SNAPSHOT
5+
grpc-google-analytics-data-v1beta:0.14.6:0.14.7-SNAPSHOT
6+
proto-google-analytics-data-v1beta:0.14.6:0.14.7-SNAPSHOT
7+
proto-google-analytics-data-v1alpha:0.14.6:0.14.7-SNAPSHOT
8+
grpc-google-analytics-data-v1alpha:0.14.6:0.14.7-SNAPSHOT

java-api-gateway/versions.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-cloud-api-gateway:2.3.2:2.3.3-SNAPSHOT
5-
grpc-google-cloud-api-gateway-v1:2.3.2:2.3.3-SNAPSHOT
6-
proto-google-cloud-api-gateway-v1:2.3.2:2.3.3-SNAPSHOT
4+
google-cloud-api-gateway:2.3.4:2.3.5-SNAPSHOT
5+
grpc-google-cloud-api-gateway-v1:2.3.4:2.3.5-SNAPSHOT
6+
proto-google-cloud-api-gateway-v1:2.3.4:2.3.5-SNAPSHOT

java-apigee-connect/versions.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-cloud-apigee-connect:2.3.2:2.3.3-SNAPSHOT
5-
grpc-google-cloud-apigee-connect-v1:2.3.2:2.3.3-SNAPSHOT
6-
proto-google-cloud-apigee-connect-v1:2.3.2:2.3.3-SNAPSHOT
4+
google-cloud-apigee-connect:2.3.4:2.3.5-SNAPSHOT
5+
grpc-google-cloud-apigee-connect-v1:2.3.4:2.3.5-SNAPSHOT
6+
proto-google-cloud-apigee-connect-v1:2.3.4:2.3.5-SNAPSHOT

java-apigee-registry/versions.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-cloud-apigee-registry:0.2.2:0.2.3-SNAPSHOT
5-
proto-google-cloud-apigee-registry-v1:0.2.2:0.2.3-SNAPSHOT
6-
grpc-google-cloud-apigee-registry-v1:0.2.2:0.2.3-SNAPSHOT
4+
google-cloud-apigee-registry:0.3.0:0.3.1-SNAPSHOT
5+
proto-google-cloud-apigee-registry-v1:0.3.0:0.3.1-SNAPSHOT
6+
grpc-google-cloud-apigee-registry-v1:0.3.0:0.3.1-SNAPSHOT

java-area120-tables/versions.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Format:
22
# module:released-version:current-version
33

4-
google-area120-tables:0.7.2:0.7.3-SNAPSHOT
5-
grpc-google-area120-tables-v1alpha1:0.7.2:0.7.3-SNAPSHOT
6-
proto-google-area120-tables-v1alpha1:0.7.2:0.7.3-SNAPSHOT
4+
google-area120-tables:0.7.4:0.7.5-SNAPSHOT
5+
grpc-google-area120-tables-v1alpha1:0.7.4:0.7.5-SNAPSHOT
6+
proto-google-area120-tables-v1alpha1:0.7.4:0.7.5-SNAPSHOT

0 commit comments

Comments
 (0)