Update to Bazel 7, Kotlin 1.9, and JDK 21 #3977
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 //tests/benchmarks" | |
- os: macos-12 | |
arch: "macos-x86_64" | |
bazel_args: "--xcode_version_config=//.github:host_xcodes //launcher/android:jazzer_android" | |
- os: windows-2019 | |
arch: "windows" | |
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: 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 }} ${{ 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* |