diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 085dbcec2565..862add9f8a30 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -321,13 +321,13 @@ jobs: - name: validate generation configuration shell: bash run: | - docker run \ - --rm \ + bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref || 'main' }}" \ + -e GENERATOR_VERSION="${library_generation_image_tag}" \ --quiet \ -u "$(id -u):$(id -g)" \ -v "$(pwd):${workspace_name}" \ --entrypoint python \ - gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \ + -- \ /src/library_generation/cli/entry_point.py validate-generation-config env: library_generation_image_tag: 2.68.0 diff --git a/.github/workflows/generated_files_sync.yaml b/.github/workflows/generated_files_sync.yaml index 3143a317c9e3..bc0a21636d3d 100644 --- a/.github/workflows/generated_files_sync.yaml +++ b/.github/workflows/generated_files_sync.yaml @@ -17,7 +17,7 @@ on: pull_request: name: generation diff env: - library_generation_image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current} + library_generation_image_tag: 9.99.9 # {x-version-update:gapic-generator-java:current} jobs: root-pom: # root pom.xml does not have diff from generated one @@ -27,13 +27,12 @@ jobs: - name: Generate root pom.xml file shell: bash run: | - docker run \ - --rm \ + bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref }}" \ --quiet \ -u "$(id -u):$(id -g)" \ -v "$(pwd):/workspace" \ --entrypoint python \ - gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \ + -- \ /src/library_generation/cli/generate_monorepo_root_pom.py \ generate \ --repository-path=/workspace @@ -48,13 +47,12 @@ jobs: - name: Generate gapic-libraries-bom/pom.xml shell: bash run: | - docker run \ - --rm \ + bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref }}" \ --quiet \ -u "$(id -u):$(id -g)" \ -v "$(pwd):/workspace" \ --entrypoint python \ - gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \ + -- \ /src/library_generation/cli/generate_monorepo_gapic_bom.py \ generate \ --repository-path=/workspace \ diff --git a/.github/workflows/hermetic_library_generation.yaml b/.github/workflows/hermetic_library_generation.yaml index 74fec93e13d8..42dcd405eeb4 100644 --- a/.github/workflows/hermetic_library_generation.yaml +++ b/.github/workflows/hermetic_library_generation.yaml @@ -20,6 +20,9 @@ on: env: REPO_FULL_NAME: ${{ github.event.pull_request.head.repo.full_name }} GITHUB_REPOSITORY: ${{ github.repository }} + # {x-version-update-start:gapic-generator-java:current} + GENERATOR_VERSION: 2.71.0 + # {x-version-update-end} jobs: library_generation: runs-on: ubuntu-latest @@ -44,4 +47,4 @@ jobs: head_ref: ${{ github.head_ref }} token: ${{ secrets.CLOUD_JAVA_BOT_GITHUB_TOKEN }} force_regenerate_all: ${{ github.event.pull_request.head.ref == 'generate-libraries-main' }} - image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current} + image_tag: ${{ env.GENERATOR_VERSION }} diff --git a/.kokoro/common.sh b/.kokoro/common.sh index cf6b8e47ff7e..5b182bc48c5b 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -236,6 +236,7 @@ function generate_modified_modules_list() { # grep returns 1 (error code) and exits the pipeline if there is no match # If there is no match, it will return true so the rest of the commands can run git config --global --add safe.directory $(realpath .) + git fetch origin "${KOKORO_GITHUB_PULL_REQUEST_TARGET_BRANCH}" || true modified_files=$(git diff --name-only "${KOKORO_GITHUB_PULL_REQUEST_TARGET_BRANCH}...${KOKORO_GITHUB_PULL_REQUEST_COMMIT}") printf "Modified files:\n%s\n" "${modified_files}" diff --git a/WORKSPACE b/WORKSPACE index 91d2cb646fa0..475aadca8742 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -67,7 +67,7 @@ load("@rules_jvm_external//:defs.bzl", "maven_install") load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS") load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS") -_gapic_generator_java_version = "2.71.0" # {x-version-update:gapic-generator-java:current} +_gapic_generator_java_version = "9.99.9" # {x-version-update:gapic-generator-java:current} maven_install( artifacts = [ diff --git a/generation/run_generator_docker.sh b/generation/run_generator_docker.sh new file mode 100755 index 000000000000..4255747319da --- /dev/null +++ b/generation/run_generator_docker.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -exo pipefail + +REQUESTED_TAG="$1" +TARGET_BRANCH="$2" +shift 2 + +# Parse arguments using '--' as delimiter +DOCKER_OPTS=() +CONTAINER_CMD=() +found_delimiter=false + +for arg in "$@"; do + if [ "$arg" == "--" ]; then + found_delimiter=true + continue + fi + if $found_delimiter; then + CONTAINER_CMD+=("$arg") + else + DOCKER_OPTS+=("$arg") + fi +done + +IMAGE_NAME="gcr.io/cloud-devrel-public-resources/java-library-generation" +# Support both local git and GitHub Actions environment variables +CURRENT_BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME:-$(git branch --show-current)}}" +IMAGE_TAG="$REQUESTED_TAG" + +# Fallback logic on Release PR branches +if [[ "$CURRENT_BRANCH" =~ ^release-please-- ]]; then + echo "Detected release PR branch: $CURRENT_BRANCH" + if ! docker pull "${IMAGE_NAME}:${IMAGE_TAG}"; then + echo "Image not found for version ${IMAGE_TAG}. Falling back to previous version from ${TARGET_BRANCH}." + # Extract tag from target branch's versions.txt using explicit fetch + git fetch origin "${TARGET_BRANCH}" --depth=1 || true + PREVIOUS_TAG=$(git show FETCH_HEAD:versions.txt | grep "^gapic-generator-java:" | cut -d ':' -f 2 || true) + if [ -n "$PREVIOUS_TAG" ]; then + echo "Using previous image version: $PREVIOUS_TAG" + IMAGE_TAG="$PREVIOUS_TAG" + else + echo "Failed to extract fallback tag. Proceeding with requested tag." + fi + fi +fi + +# Execute Docker run with proper ordering +docker run --rm "${DOCKER_OPTS[@]}" "${IMAGE_NAME}:${IMAGE_TAG}" "${CONTAINER_CMD[@]}" diff --git a/generation_config.yaml b/generation_config.yaml index d10cf1c50168..add660b31a8b 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,4 +1,3 @@ -gapic_generator_version: 2.70.0 googleapis_commitish: 62e4ecb2f4390728990514fea14aad0431881a52 libraries_bom_version: 26.79.0 libraries: diff --git a/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile b/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile index dd805ecfc362..72a15ec555d9 100644 --- a/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile +++ b/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile @@ -22,7 +22,7 @@ WORKDIR /google-cloud-java COPY . . # {x-version-update-start:gapic-generator-java:current} -ENV DOCKER_GAPIC_GENERATOR_VERSION="2.71.0" +ENV DOCKER_GAPIC_GENERATOR_VERSION="9.99.9" # {x-version-update-end} # Download the java formatter @@ -43,6 +43,10 @@ ARG GRPC_VERSION=1.80.0 ENV HOME=/home ENV OS_ARCHITECTURE="linux-x86_64" +# {x-version-update-start:gapic-generator-java:current} +ENV GENERATOR_VERSION="9.99.9" +# {x-version-update-end} + # install OS tools RUN apt update && apt install -y curl unzip rsync jq nodejs npm git openjdk-17-jdk diff --git a/sdk-platform-java/.github/scripts/hermetic_library_generation.sh b/sdk-platform-java/.github/scripts/hermetic_library_generation.sh index fc991aa3e94d..c254aae64b3a 100755 --- a/sdk-platform-java/.github/scripts/hermetic_library_generation.sh +++ b/sdk-platform-java/.github/scripts/hermetic_library_generation.sh @@ -27,6 +27,7 @@ set -exo pipefail # the default value is generation_config.yaml in the repository root. # 5. [optional] showcase_mode, true if we wish to download the showcase api # definitions, which are necessary for generating the showcase library. +IMAGE_NAME="gcr.io/cloud-devrel-public-resources/java-library-generation" while [[ $# -gt 0 ]]; do key="$1" case "${key}" in @@ -123,13 +124,12 @@ changed_libraries="$(cat "${changed_libraries_file}")" echo "Changed libraries are: ${changed_libraries:-"No changed library"}." # run hermetic code generation docker image. -docker run \ - --rm \ +bash generation/run_generator_docker.sh "${image_tag}" "${target_branch}" \ -u "$(id -u):$(id -g)" \ -v "$(pwd):${workspace_name}" \ -v "${api_def_dir}:${workspace_name}/googleapis" \ -e GENERATOR_VERSION="${image_tag}" \ - gcr.io/cloud-devrel-public-resources/java-library-generation:"${image_tag}" \ + -- \ --generation-config-path="${workspace_name}/${generation_config}" \ --library-names="${changed_libraries}" \ --api-definitions-path="${workspace_name}/googleapis" diff --git a/sdk-platform-java/api-common-java/pom.xml b/sdk-platform-java/api-common-java/pom.xml index 881eac206666..ce9b9c96c6e7 100644 --- a/sdk-platform-java/api-common-java/pom.xml +++ b/sdk-platform-java/api-common-java/pom.xml @@ -12,7 +12,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/gapic-generator-java-bom/pom.xml b/sdk-platform-java/gapic-generator-java-bom/pom.xml index f9ef334121d8..edd5042280e7 100644 --- a/sdk-platform-java/gapic-generator-java-bom/pom.xml +++ b/sdk-platform-java/gapic-generator-java-bom/pom.xml @@ -4,7 +4,7 @@ com.google.api gapic-generator-java-bom pom - 2.71.0 + 9.99.9 GAPIC Generator Java BOM BOM for the libraries in gapic-generator-java repository. Users should not @@ -15,7 +15,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent @@ -100,7 +100,7 @@ com.google.api gapic-generator-java - 2.71.0 + 9.99.9 com.google.api.grpc diff --git a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml index 3b7f133acc76..f8ff47b18361 100644 --- a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml +++ b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 pom GAPIC Generator Java POM Parent https://github.com/googleapis/sdk-platform-java diff --git a/sdk-platform-java/gapic-generator-java/pom.xml b/sdk-platform-java/gapic-generator-java/pom.xml index da49819c86bb..f3785c09b42d 100644 --- a/sdk-platform-java/gapic-generator-java/pom.xml +++ b/sdk-platform-java/gapic-generator-java/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api gapic-generator-java - 2.71.0 + 9.99.9 GAPIC Generator Java GAPIC generator Java @@ -23,7 +23,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent @@ -32,7 +32,7 @@ com.google.api gapic-generator-java-bom - 2.71.0 + 9.99.9 pom import diff --git a/sdk-platform-java/gax-java/pom.xml b/sdk-platform-java/gax-java/pom.xml index 558194b4f78d..3836613bad36 100644 --- a/sdk-platform-java/gax-java/pom.xml +++ b/sdk-platform-java/gax-java/pom.xml @@ -11,7 +11,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE b/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE index 60b3036d9daf..96c71225aced 100644 --- a/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE +++ b/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE @@ -62,7 +62,7 @@ maven_install( repositories = ["https://repo.maven.apache.org/maven2/"], ) -_gapic_generator_java_version = "2.25.1-SNAPSHOT" # {x-version-update:gapic-generator-java:current} +_gapic_generator_java_version = "9.99.9" # {x-version-update:gapic-generator-java:current} maven_install( artifacts = [ diff --git a/sdk-platform-java/java-common-protos/pom.xml b/sdk-platform-java/java-common-protos/pom.xml index 9dca49783ba9..4bdf4ccdc658 100644 --- a/sdk-platform-java/java-common-protos/pom.xml +++ b/sdk-platform-java/java-common-protos/pom.xml @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml b/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml index 4857efd40145..2483c1c240e9 100644 --- a/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml +++ b/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml @@ -9,7 +9,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/java-core/pom.xml b/sdk-platform-java/java-core/pom.xml index 254b6d2c10c3..2cc105cb321c 100644 --- a/sdk-platform-java/java-core/pom.xml +++ b/sdk-platform-java/java-core/pom.xml @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/java-iam/pom.xml b/sdk-platform-java/java-iam/pom.xml index 339a16102230..99080cd98216 100644 --- a/sdk-platform-java/java-iam/pom.xml +++ b/sdk-platform-java/java-iam/pom.xml @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml index 3283683e9886..652f7c922ddd 100644 --- a/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml +++ b/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml @@ -32,7 +32,7 @@ com.google.api gapic-generator-java-bom - 2.71.0 + 9.99.9 pom import diff --git a/sdk-platform-java/java-shared-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/pom.xml index 6eea01d40b57..4b2123efc7c8 100644 --- a/sdk-platform-java/java-shared-dependencies/pom.xml +++ b/sdk-platform-java/java-shared-dependencies/pom.xml @@ -17,7 +17,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../gapic-generator-java-pom-parent diff --git a/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml index b372ed8aa93d..dd443f9dab29 100644 --- a/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml +++ b/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml @@ -15,7 +15,7 @@ com.google.api gapic-generator-java-pom-parent - 2.71.0 + 9.99.9 ../../gapic-generator-java-pom-parent