Skip to content

Commit

Permalink
chore: Update generation configuration at Thu Dec 12 22:48:29 UTC 2024 (
Browse files Browse the repository at this point in the history
#2791)

* chore: Update generation configuration at Fri Dec  6 02:29:18 UTC 2024

* chore: generate libraries at Fri Dec  6 02:29:56 UTC 2024

* chore: Update generation configuration at Sat Dec  7 02:28:35 UTC 2024

* chore: Update generation configuration at Tue Dec 10 02:30:17 UTC 2024

* chore: Update generation configuration at Wed Dec 11 02:29:28 UTC 2024

* chore: Update generation configuration at Thu Dec 12 02:29:27 UTC 2024

* chore: Update generation configuration at Thu Dec 12 22:48:29 UTC 2024

* update workflow script

* update generation config

* update renovate

* chore: generate libraries at Thu Dec 12 23:00:01 UTC 2024

---------

Co-authored-by: Joe Wang <[email protected]>
  • Loading branch information
cloud-java-bot and JoeWang1127 authored Dec 12, 2024
1 parent cd0e62e commit 4936ac9
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 32 deletions.
63 changes: 55 additions & 8 deletions .github/scripts/update_generation_config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,23 @@ function update_config() {
sed -i -e "s/^${key_word}.*$/${key_word}: ${new_value}/" "${file}"
}

# Update an action to a new version in GitHub action.
function update_action() {
local key_word=$1
local new_value=$2
local file=$3
echo "Update ${key_word} to ${new_value} in ${file}"
# use a different delimiter because the key_word contains "/".
sed -i -e "s|${key_word}@v.*$|${key_word}@v${new_value}|" "${file}"
}

# The parameters of this script is:
# 1. base_branch, the base branch of the result pull request.
# 2. repo, organization/repo-name, e.g., googleapis/google-cloud-java
# 3. [optional] generation_config, the path to the generation configuration,
# the default value is generation_config.yaml in the repository root.
# 4. [optional] workflow, the library generation workflow file,
# the default value is .github/workflows/hermetic_library_generation.yaml.
while [[ $# -gt 0 ]]; do
key="$1"
case "${key}" in
Expand All @@ -48,6 +60,10 @@ case "${key}" in
generation_config="$2"
shift
;;
--workflow)
workflow="$2"
shift
;;
*)
echo "Invalid option: [$1]"
exit 1
Expand All @@ -71,21 +87,34 @@ if [ -z "${generation_config}" ]; then
echo "Use default generation config: ${generation_config}"
fi

if [ -z "${workflow}" ]; then
workflow=".github/workflows/hermetic_library_generation.yaml"
echo "Use default library generation workflow file: ${workflow}"
fi

current_branch="generate-libraries-${base_branch}"
title="chore: Update generation configuration at $(date)"

# try to find a open pull request associated with the branch
git checkout "${base_branch}"
# Try to find a open pull request associated with the branch
pr_num=$(gh pr list -s open -H "${current_branch}" -q . --json number | jq ".[] | .number")
# create a branch if there's no open pull request associated with the
# Create a branch if there's no open pull request associated with the
# branch; otherwise checkout the pull request.
if [ -z "${pr_num}" ]; then
git checkout -b "${current_branch}"
# Push the current branch to remote so that we can
# compare the commits later.
git push -u origin "${current_branch}"
else
gh pr checkout "${pr_num}"
fi

# Only allow fast-forward merging; exit with non-zero result if there's merging
# conflict.
git merge -m "chore: merge ${base_branch} into ${current_branch}" "${base_branch}"

mkdir tmp-googleapis
# use partial clone because only commit history is needed.
# Use partial clone because only commit history is needed.
git clone --filter=blob:none https://github.com/googleapis/googleapis.git tmp-googleapis
pushd tmp-googleapis
git pull
Expand All @@ -94,25 +123,43 @@ popd
rm -rf tmp-googleapis
update_config "googleapis_commitish" "${latest_commit}" "${generation_config}"

# update gapic-generator-java version to the latest
# Update gapic-generator-java version to the latest
latest_version=$(get_latest_released_version "com.google.api" "gapic-generator-java")
update_config "gapic_generator_version" "${latest_version}" "${generation_config}"

# update libraries-bom version to the latest
# Update composite action version to latest gapic-generator-java version
update_action "googleapis/sdk-platform-java/.github/scripts" \
"${latest_version}" \
"${workflow}"

# Update libraries-bom version to the latest
latest_version=$(get_latest_released_version "com.google.cloud" "libraries-bom")
update_config "libraries_bom_version" "${latest_version}" "${generation_config}"

git add "${generation_config}"
git add "${generation_config}" "${workflow}"
changed_files=$(git diff --cached --name-only)
if [[ "${changed_files}" == "" ]]; then
echo "The latest generation config is not changed."
echo "Skip committing to the pull request."
else
git commit -m "${title}"
fi

# There are potentially at most two commits: merge commit and change commit.
# We want to exit the script if no commit happens (otherwise this will be an
# infinite loop).
# `git cherry` is a way to find whether the local branch has commits that are
# not in the remote branch.
# If we find any such commit, push them to remote branch.
unpushed_commit=$(git cherry -v "origin/${current_branch}" | wc -l)
if [[ "${unpushed_commit}" -eq 0 ]]; then
echo "No unpushed commits, exit"
exit 0
fi
git commit -m "${title}"

if [ -z "${pr_num}" ]; then
git remote add remote_repo https://cloud-java-bot:"${GH_TOKEN}@github.com/${repo}.git"
git fetch -q --unshallow remote_repo
git fetch -q remote_repo
git push -f remote_repo "${current_branch}"
gh pr create --title "${title}" --head "${current_branch}" --body "${title}" --base "${base_branch}"
else
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>26.50.0</version>
<version>26.51.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
<version>1.44.1</version>
<version>1.45.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -56,7 +56,7 @@ If you are using Maven without the BOM, add this to your dependencies:
If you are using Gradle 5.x or later, add this to your dependencies:

```Groovy
implementation platform('com.google.cloud:libraries-bom:26.50.0')
implementation platform('com.google.cloud:libraries-bom:26.51.0')
implementation 'com.google.cloud:google-cloud-bigquerystorage'
```
Expand Down
6 changes: 3 additions & 3 deletions generation_config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
gapic_generator_version: 2.50.0
googleapis_commitish: 9ea2c56cb70d70f10fd2bef310ac9febe8d42d30
libraries_bom_version: 26.50.0
gapic_generator_version: 2.51.0
googleapis_commitish: 7d0c6bee2517d77635beb2a1dd6d6e7d4d943512
libraries_bom_version: 26.51.0
libraries:
- api_shortname: bigquerystorage
name_pretty: BigQuery Storage
Expand Down
18 changes: 0 additions & 18 deletions renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,6 @@
"matchStrings": ["uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?<currentValue>.+?)\\n"],
"depNameTemplate": "com.google.cloud:sdk-platform-java-config",
"datasourceTemplate": "maven"
},
{
"fileMatch": [
".github/workflows/hermetic_library_generation.yaml"
],
"matchStrings": [
"uses: googleapis/sdk-platform-java/.github/scripts@v(?<currentValue>.+?)\\n"
],
"depNameTemplate": "com.google.api:gapic-generator-java",
"datasourceTemplate": "maven"
}
],
"packageRules": [
Expand Down Expand Up @@ -99,14 +89,6 @@
"^com.google.cloud:google-cloud-"
],
"ignoreUnstable": false
},
{
"packagePatterns": [
"^com.google.api:gapic-generator-java",
"^com.google.cloud:sdk-platform-java-config",
"^com.google.cloud:gapic-libraries-bom"
],
"groupName": "sdk-platform-java dependencies"
}
],
"semanticCommits": true,
Expand Down

0 comments on commit 4936ac9

Please sign in to comment.