name: 'Bazel test' description: 'Runs Bazel tests.' runs: using: "composite" steps: - name: 'Install Java ${{ env.USE_JAVA_VERSION }}' uses: actions/setup-java@v4 with: distribution: '${{ env.USE_JAVA_DISTRIBUTION }}' java-version: '${{ env.USE_JAVA_VERSION }}' - name: 'Check out repository' uses: actions/checkout@v4 - name: 'Cache local Maven repository' uses: actions/cache@v4 with: path: | ~/.m2/repository !~/.m2/repository/com/google/dagger key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: 'Cache Bazel files' uses: actions/cache@v4 with: path: ~/.cache/bazel # Note: we could use the same key as bazel-build, but we separate them # so that bazel-build's cache is smaller (~200Mb vs ~900Mb) and faster # to load than this cache since it's the bottleneck of all other steps key: ${{ runner.os }}-bazel-test-${{ github.sha }} restore-keys: | ${{ runner.os }}-bazel-test- - name: 'Cache Gradle files' uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - name: 'Run Bazel tests' run: bazel test --test_output=errors //... shell: bash - name: 'Run Bazel examples' run: cd examples/bazel; bazel test --test_output=errors //... shell: bash - name: 'Clean bazel cache' # According to the documentation, we should be able to exclude these via # the actions/cache path, e.g. "!~/.cache/bazel/*/*/external/" but that # doesn't seem to work. run: | rm -rf $(bazel info repository_cache) rm -rf ~/.cache/bazel/*/*/external/ shell: bash