Rebase to retest #4
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: | ||
test-type: | ||
required: true | ||
description: "The type of test this is run from -- presubmit or continuous" | ||
type: string | ||
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 | ||
version: '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 --features=-layering_check | ||
run-on-presubmit: false | ||
- name: OpenJDK 11 | ||
version: '11' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
targets: //java/... //java/internal:java_version | ||
run-on-presubmit: false | ||
- name: OpenJDK 17 | ||
version: '17' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:17-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 | ||
targets: //java/... //java/internal:java_version | ||
run-on-presubmit: true | ||
- name: aarch64 | ||
version: 'aarch64' | ||
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/emulation:aarch64-63dd26c0c7a808d92673a3e52e848189d4ab0f17 | ||
targets: //java/... //src/google/protobuf/compiler:protoc_aarch64_test | ||
run-on-presubmit: true | ||
name: if: ${{ matrix.run-on-presubmit || inputs.test-type == 'continuous' }} Linux ${{ matrix.name }} ${{ !matrix.run-on-presubmit && '(Continuous)' || '' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout pending changes | ||
uses: protocolbuffers/protobuf-ci/checkout@v3 | ||
if: ${{ matrix.run-on-presubmit || inputs.test-type == 'continuous' }} | ||
with: | ||
ref: ${{ inputs.safe-checkout }} | ||
- name: Run tests | ||
uses: protocolbuffers/protobuf-ci/bazel-docker@v3 | ||
if: ${{ matrix.run-on-presubmit || inputs.test-type == 'continuous' }} | ||
with: | ||
image: ${{ matrix.image }} | ||
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} | ||
bazel-cache: java_linux/${{ matrix.version }} | ||
bazel: test ${{ matrix.targets }} --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-bom: | ||
name: Protobuf Maven BOM | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout pending changes | ||
uses: protocolbuffers/protobuf-ci/checkout@v3 | ||
with: | ||
ref: ${{ inputs.safe-checkout }} | ||
- name: Build protoc | ||
id: build-protoc | ||
uses: protocolbuffers/protobuf-ci/cross-compile-protoc@v3 | ||
with: | ||
image: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:6.3.0-91a0ac83e968068672bc6001a4d474cfd9a50f1d | ||
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} | ||
architecture: linux-x86_64 | ||
- name: Move protoc into place and clean up | ||
run: | | ||
mv ${{ steps.build-protoc.outputs.protoc }} protoc | ||
sudo rm -rf _build | ||
- name: Install snapshot version locally (not using generated pom.xml) | ||
run: | | ||
mvn -e -B -Dhttps.protocols=TLSv1.2 install -Dmaven.test.skip=true | ||
working-directory: java | ||
- name: Generate pom.xml files from the template | ||
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 | ||
# protobuf-java and protobuf-java-util are the member of the BOM | ||
bash: | | ||
bazel build //java/core:core_mvn-pom //java/util:util_mvn-pom | ||
cp bazel-bin/java/core/core_mvn-pom.xml . | ||
cp bazel-bin/java/util/util_mvn-pom.xml . | ||
- name: Copy the generated pom.xml files to the local Maven repository | ||
shell: bash | ||
run: | | ||
LOCAL_MAVEN_GROUP_DIR="${HOME}/.m2/repository/com/google/protobuf" | ||
VERSION=$(grep "<version>" core_mvn-pom.xml | sed "s/<version>\(.*\)<\/version>/\1/" | xargs) | ||
cp core_mvn-pom.xml ${LOCAL_MAVEN_GROUP_DIR}/protobuf-java/${VERSION}/protobuf-java-${VERSION}.pom | ||
cp util_mvn-pom.xml ${LOCAL_MAVEN_GROUP_DIR}/protobuf-java-util/${VERSION}/protobuf-java-util-${VERSION}.pom | ||
- 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 |