diff --git a/.github/workflows/downstream.yaml b/.github/workflows/downstream.yaml
new file mode 100644
index 0000000000..a675b7ec74
--- /dev/null
+++ b/.github/workflows/downstream.yaml
@@ -0,0 +1,157 @@
+# Copyright 2022 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.
+# Github action job to test core java library features on
+# downstream client libraries before they are released.
+on:
+ pull_request:
+ types: [ labeled ]
+ branches:
+ - main
+name: downstream
+jobs:
+ dependencies:
+ if: ${{ github.event.label.name == 'downstream-check:run' }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [17]
+ repo:
+ # This list needs to be updated manually until an automated solution is in place.
+ - accessapproval
+ - accesscontextmanager
+ - aiplatform
+ - analytics-admin
+ - analytics-data
+ - api-gateway
+ - apigee-connect
+ - appengine-admin
+ - area120-tables
+ - artifact-registry
+ - asset
+ - assured-workloads
+ - automl
+ - bigquery
+ - bigqueryconnection
+ - bigquerydatatransfer
+ - bigquerymigration
+ - bigqueryreservation
+ - bigtable
+ - billing
+ - billingbudgets
+ - binary-authorization
+ - channel
+ - cloudbuild
+ - compute
+ - contact-center-insights
+ - container
+ - containeranalysis
+ - data-fusion
+ - datacatalog
+ - dataflow
+ - datalabeling
+ - dataproc
+ - dataproc-metastore
+ - datastore
+ - datastream
+ - debugger-client
+ - deploy
+ - dialogflow
+ - dialogflow-cx
+ - dlp
+ - dms
+ - dns
+ - document-ai
+ - domains
+ - errorreporting
+ - essential-contacts
+ - eventarc
+ - filestore
+ - firestore
+ - functions
+ - game-servers
+ - gke-connect-gateway
+ - gkehub
+ - gsuite-addons
+ - iam-admin
+ - iamcredentials
+ - iot
+ - kms
+ - language
+ - life-sciences
+ - logging
+ - logging-logback
+ - managed-identities
+ - mediatranslation
+ - memcache
+ - monitoring
+ - monitoring-dashboards
+ - network-management
+ - network-security
+ - networkconnectivity
+ - notebooks
+ - orchestration-airflow
+ - orgpolicy
+ - os-config
+ - os-login
+ - phishingprotection
+ - policy-troubleshooter
+ - private-catalog
+ - profiler
+ - pubsublite
+ - recaptchaenterprise
+ - recommendations-ai
+ - recommender
+ - redis
+ - resource-settings
+ - resourcemanager
+ - retail
+ - scheduler
+ - secretmanager
+ - security-private-ca
+ - securitycenter
+ - securitycenter-settings
+ - service-control
+ - service-management
+ - service-usage
+ - servicedirectory
+ - shell
+ - spanner
+ - spanner-jdbc
+ - speech
+ - storage
+ - storage-nio
+ - storage-transfer
+ - talent
+ - tasks
+ - texttospeech
+ - tpu
+ - trace
+ - translate
+ - video-intelligence
+ - video-transcoder
+ - vision
+ - vpcaccess
+ - webrisk
+ - websecurityscanner
+ - workflow-executions
+ - workflows
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-java@v1
+ with:
+ java-version: ${{matrix.java}}
+ - run: java -version
+ - run: sudo apt-get install libxml2-utils
+ - run: .kokoro/downstream-client-library-check.sh google-cloud-core-bom ${{matrix.repo}}
diff --git a/.kokoro/downstream-client-library-check.sh b/.kokoro/downstream-client-library-check.sh
new file mode 100755
index 0000000000..c1e13911b5
--- /dev/null
+++ b/.kokoro/downstream-client-library-check.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+# Copyright 2022 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 -eo pipefail
+# Display commands being run.
+set -x
+
+CORE_LIBRARY_ARTIFACT=$1
+CLIENT_LIBRARY=$2
+## Get the directory of the build script
+scriptDir="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
+## cd to the parent directory, i.e. the root of the git repo
+cd "${scriptDir}"/..
+
+# Make java core library artifacts available for 'mvn install' at the bottom
+mvn verify install -B -V -ntp -fae \
+-DskipTests=true \
+-Dmaven.javadoc.skip=true \
+-Dgcloud.download.skip=true \
+-Denforcer.skip=true
+
+# Namespace (xmlns) prevents xmllint from specifying tag names in XPath
+CORE_VERSION=$(sed -e 's/xmlns=".*"//' pom.xml | xmllint --xpath '/project/version/text()' -)
+
+if [ -z "${CORE_VERSION}" ]; then
+ echo "Version is not found in ${CORE_VERSION_POM}"
+ exit 1
+fi
+echo "Version: ${CORE_VERSION}"
+
+# Round 1
+# Check this java core library against HEAD of java-shared dependencies
+
+git clone "https://github.com/googleapis/java-shared-dependencies.git" --depth=1
+pushd java-shared-dependencies/first-party-dependencies
+
+# replace version
+xmllint --shell pom.xml << EOF
+setns x=http://maven.apache.org/POM/4.0.0
+cd .//x:artifactId[text()="${CORE_LIBRARY_ARTIFACT}"]
+cd ../x:version
+set ${CORE_VERSION}
+save pom.xml
+EOF
+
+# run dependencies script
+cd ..
+
+mvn verify install -B -V -ntp -fae \
+-DskipTests=true \
+-Dmaven.javadoc.skip=true \
+-Dgcloud.download.skip=true \
+-Denforcer.skip=true
+
+# Namespace (xmlns) prevents xmllint from specifying tag names in XPath
+SHARED_DEPS_VERSION=$(sed -e 's/xmlns=".*"//' pom.xml | xmllint --xpath '/project/version/text()' -)
+
+if [ -z "${SHARED_DEPS_VERSION}" ]; then
+ echo "Version is not found in ${SHARED_DEPS_VERSION_POM}"
+ exit 1
+fi
+
+# Round 2
+
+# Check this BOM against java client libraries
+git clone "https://github.com/googleapis/java-${CLIENT_LIBRARY}.git" --depth=1
+pushd java-"${CLIENT_LIBRARY}"
+
+if [[ $CLIENT_LIBRARY == "bigtable" ]]; then
+ pushd google-cloud-bigtable-deps-bom
+fi
+
+# replace version
+xmllint --shell pom.xml << EOF
+setns x=http://maven.apache.org/POM/4.0.0
+cd .//x:artifactId[text()="google-cloud-shared-dependencies"]
+cd ../x:version
+set ${SHARED_DEPS_VERSION}
+save pom.xml
+EOF
+
+if [[ $CLIENT_LIBRARY == "bigtable" ]]; then
+ popd
+fi
+
+mvn verify install -B -V -ntp -fae \
+-Dmaven.javadoc.skip=true \
+-Dgcloud.download.skip=true \
+-Denforcer.skip=true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d114fd1c2a..1ab847f0c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+### [2.5.4](https://github.com/googleapis/java-core/compare/v2.5.3...v2.5.4) (2022-02-11)
+
+
+### Dependencies
+
+* update actions/github-script action to v6 ([#724](https://github.com/googleapis/java-core/issues/724)) ([b8673d3](https://github.com/googleapis/java-core/commit/b8673d3b3ae08cbfed135cd7ff9d891c04e90611))
+
### [2.5.3](https://github.com/googleapis/java-core/compare/v2.5.2...v2.5.3) (2022-02-10)
diff --git a/google-cloud-core-bom/pom.xml b/google-cloud-core-bom/pom.xml
index eb78344163..40f7a10d43 100644
--- a/google-cloud-core-bom/pom.xml
+++ b/google-cloud-core-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core-bom
- 2.5.3
+ 2.5.4
pom
com.google.cloud
@@ -63,22 +63,22 @@
com.google.cloud
google-cloud-core
- 2.5.3
+ 2.5.4
com.google.cloud
google-cloud-core-grpc
- 2.5.3
+ 2.5.4
com.google.cloud
google-cloud-core-http
- 2.5.3
+ 2.5.4
com.google.cloud
native-image-support
- 0.12.3
+ 0.12.4
diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml
index 1262e6e0bc..ea9a5b742e 100644
--- a/google-cloud-core-grpc/pom.xml
+++ b/google-cloud-core-grpc/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core-grpc
- 2.5.3
+ 2.5.4
jar
Google Cloud Core gRPC
https://github.com/googleapis/java-core
@@ -13,7 +13,7 @@
com.google.cloud
google-cloud-core-parent
- 2.5.3
+ 2.5.4
google-cloud-core-grpc
diff --git a/google-cloud-core-http/pom.xml b/google-cloud-core-http/pom.xml
index 35711dfdc1..83acd443e7 100644
--- a/google-cloud-core-http/pom.xml
+++ b/google-cloud-core-http/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core-http
- 2.5.3
+ 2.5.4
jar
Google Cloud Core HTTP
https://github.com/googleapis/java-core
@@ -13,7 +13,7 @@
com.google.cloud
google-cloud-core-parent
- 2.5.3
+ 2.5.4
google-cloud-core-http
diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml
index 3feadea21f..637fd84d5a 100644
--- a/google-cloud-core/pom.xml
+++ b/google-cloud-core/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core
- 2.5.3
+ 2.5.4
jar
Google Cloud Core
https://github.com/googleapis/java-core
@@ -13,7 +13,7 @@
com.google.cloud
google-cloud-core-parent
- 2.5.3
+ 2.5.4
google-cloud-core
diff --git a/native-image-support/pom.xml b/native-image-support/pom.xml
index 1f8d950b23..93aca9597f 100644
--- a/native-image-support/pom.xml
+++ b/native-image-support/pom.xml
@@ -7,13 +7,13 @@
Google Cloud Native Image Support
com.google.cloud
native-image-support
- 0.12.3
+ 0.12.4
jar
google-cloud-core-parent
com.google.cloud
- 2.5.3
+ 2.5.4
diff --git a/pom.xml b/pom.xml
index a0d246dfbe..6f6a1c1a89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-core-parent
pom
- 2.5.3
+ 2.5.4
Google Cloud Core Parent
https://github.com/googleapis/java-core
@@ -373,7 +373,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.3.1
+ 3.3.2
html
diff --git a/versions.txt b/versions.txt
index 7a376e1a81..2e56949fe1 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,5 +1,5 @@
# Format:
# module:released-version:current-version
-google-cloud-core:2.5.3:2.5.3
-native-image-support:0.12.3:0.12.3
\ No newline at end of file
+google-cloud-core:2.5.4:2.5.4
+native-image-support:0.12.4:0.12.4
\ No newline at end of file