ci: Replace JDK 17 with JDK 21 in pipelines #3891
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: CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
merge_group: | |
workflow_dispatch: | |
jobs: | |
test_junit_springboot: | |
name: Spring Boot | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: zulu | |
java-version: 17 | |
- name: Run Spring Boot example | |
# The Spring Boot example project is built with Maven. The shell script builds the project | |
# against the local version of Jazzer and runs its unit and fuzz tests. | |
# Spring version 6 requires JDK 17. | |
run: | | |
cd examples/junit-spring-web | |
./build-and-run-tests.sh | |
shell: bash | |
build_and_test: | |
runs-on: ${{ matrix.os }} | |
name: Build & Test | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, macos-12, windows-2019] | |
jdk: [8, 21] | |
include: | |
- jdk: 21 | |
# Workaround for https://github.com/bazelbuild/bazel/issues/14502 | |
extra_bazel_args: "--jvmopt=-Djava.security.manager=allow" | |
- os: ubuntu-20.04 | |
arch: "linux" | |
bazel_args: "//launcher/android:jazzer_android" | |
cache: "/home/runner/.cache/bazel-disk" | |
- os: macos-12 | |
arch: "macos-x86_64" | |
bazel_args: "--xcode_version_config=//.github:host_xcodes //launcher/android:jazzer_android" | |
cache: "/private/var/tmp/bazel-disk" | |
- os: windows-2019 | |
arch: "windows" | |
cache: "%HOME%/bazel-disk" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: zulu | |
java-version: ${{ matrix.jdk }} | |
# The java binary has the necessary entitlements to allow tests to pass, but that requires | |
# user interaction (clicking through Gatekeeper warnings) that we can't simulate in CI. | |
- name: Remove codesign signature on java binary | |
if: contains(matrix.os, 'mac') | |
run: codesign --remove-signature "$JAVA_HOME"/bin/java | |
- name: Mount Bazel disk cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ matrix.cache }} | |
key: bazel-disk-cache-${{ matrix.arch }}-${{ matrix.jdk }} | |
- name: Set Build Buddy config | |
run: .github/scripts/echoBuildBuddyConfig.sh ${{ secrets.BUILDBUDDY_API_KEY }} >> $GITHUB_ENV | |
shell: bash | |
- name: Build & Test | |
run: bazelisk test ${{env.BUILD_BUDDY_CONFIG}} --java_runtime_version=local_jdk_${{ matrix.jdk }} --disk_cache=${{ matrix.cache }} ${{ matrix.bazel_args }} ${{ matrix.extra_bazel_args }} --build_tag_filters="-no-${{ matrix.arch }}-jdk${{ matrix.jdk }},-no-jdk${{ matrix.jdk }}" --test_tag_filters="-no-${{ matrix.arch }}-jdk${{ matrix.jdk }},-no-jdk${{ matrix.jdk }}" //... | |
- name: Copy Bazel log | |
if: always() | |
shell: bash | |
run: cp "$(readlink bazel-out)"/../../../java.log* . | |
- name: Upload test logs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: testlogs-${{ matrix.arch }}-${{ matrix.jdk }} | |
# https://github.com/actions/upload-artifact/issues/92#issuecomment-711107236 | |
path: | | |
bazel-testlogs*/**/test.log | |
java.log* |