Refactor java maven GHA test to use our generated jars. #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Java Tests | ||
on: | ||
workflow_call: | ||
inputs: | ||
safe-checkout: | ||
required: true | ||
description: "The SHA key for the commit we want to run over" | ||
type: string | ||
permissions: | ||
contents: read | ||
jobs: | ||
linux: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- name: OpenJDK 8 | ||
cache_key: '8' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:8-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
# TODO: b/318555165 - enable the layering check. Currently it does | ||
# not work correctly with the toolchain in this Docker image. | ||
targets: //java/... //java/internal:java_version //compatibility/... --features=-layering_check | ||
- name: OpenJDK 11 | ||
cache_key: '11' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
targets: //java/... //java/internal:java_version //compatibility/... | ||
- name: OpenJDK 17 | ||
cache_key: '17' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:17-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
targets: //java/... //java/internal:java_version //compatibility/... | ||
- name: Bazel7 | ||
cache_key: 'bazel7nobzlmod' | ||
image: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:7.1.2-cf84e92285ca133b9c8104ad7b14d70e953cbb8e | ||
targets: //java/... //java/internal:java_version //compatibility/... | ||
flags: --noenable_bzlmod | ||
- name: Bazel7 with Bzlmod | ||
cache_key: 'bazel7bzlmod' | ||
image: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:7.1.2-cf84e92285ca133b9c8104ad7b14d70e953cbb8e | ||
targets: //java/... //java/internal:java_version //compatibility/... | ||
flags: --enable_bzlmod --enable_workspace | ||
- name: aarch64 | ||
cache_key: 'aarch64' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/emulation:aarch64-63dd26c0c7a808d92673a3e52e848189d4ab0f17 | ||
targets: //java/... //compatibility/... //src/google/protobuf/compiler:protoc_aarch64_test | ||
name: Linux ${{ matrix.name }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout pending changes | ||
uses: protocolbuffers/protobuf-ci/checkout@v3 | ||
with: | ||
ref: ${{ inputs.safe-checkout }} | ||
- name: Run tests | ||
uses: protocolbuffers/protobuf-ci/bazel-docker@v3 | ||
with: | ||
image: ${{ matrix.image }} | ||
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} | ||
bazel-cache: java_linux/${{ matrix.cache_key }} | ||
bazel: test ${{ matrix.targets }} ${{ matrix.flags }} --test_env=KOKORO_JAVA_VERSION | ||
# TODO restore this test (or a better one) when gRPC has rebuilt with 26.x | ||
# linkage-monitor: | ||
# name: Linux Linkage Monitor | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout pending changes | ||
# uses: protocolbuffers/protobuf-ci/checkout@v3 | ||
# with: | ||
# ref: ${{ inputs.safe-checkout }} | ||
# - name: Run Linkage Monitor test | ||
# uses: protocolbuffers/protobuf-ci/bazel-docker@v3 | ||
# with: | ||
# image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:8-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
# credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} | ||
# bazel-cache: java_linux/8 | ||
# # TODO: b/318555165 - enable the layering check. Currently it does | ||
# # not work correctly with the toolchain in this Docker image. | ||
# bazel: test --test_output=all //java:linkage_monitor --spawn_strategy=standalone --features=-layering_check | ||
protobuf-maven: | ||
name: Test Maven | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout pending changes | ||
uses: protocolbuffers/protobuf-ci/checkout@v3 | ||
with: | ||
ref: ${{ inputs.safe-checkout }} | ||
- name: Generate maven artifacts with bazel and install using maven | ||
uses: protocolbuffers/protobuf-ci/bazel-docker@v3 | ||
with: | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} | ||
bazel-cache: java_linux/11 | ||
bash: | | ||
bazel build //java:release | ||
mvn install:install-file -Dfile=bazel-bin/java/core/core_mvn-project.jar -DpomFile=bazel-bin/java/core/core_mvn-pom.xml | ||
mvn install:install-file -Dfile=bazel-bin/java/core/lite_mvn-project.jar -DpomFile=bazel-bin/java/core/lite_mvn-pom.xml | ||
mvn install:install-file -Dfile=bazel-bin/java/kotlin-lite/kotlin-lite_mvn-project.jar -DpomFile=bazel-bin/java/kotlin-lite/kotlin-lite_mvn-pom.xml | ||
mvn install:install-file -Dfile=bazel-bin/java/kotlin/kotlin_mvn-project.jar -DpomFile=bazel-bin/java/kotlin/kotlin_mvn-pom.xml | ||
mvn install:install-file -Dfile=bazel-bin/java/util/util_mvn-project.jar -DpomFile=bazel-bin/java/util/util_mvn-pom.xml | ||
- name: Clean up | ||
run: | | ||
sudo rm -rf _build | ||
- name: Validate Protobuf BOM | ||
uses: googleapis/java-cloud-bom/tests/validate-bom@fd56f04bb0bc581776a74031591f0b3bc5e7920a # v26.13.0 | ||
with: | ||
bom-path: java/bom/pom.xml |