Update Java Contract Tests #1697
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: PR Build | |
on: | |
pull_request: | |
branches: | |
- main | |
- "release/v*" | |
env: | |
TEST_TAG: public.ecr.aws/aws-observability/adot-autoinstrumentation-java:test | |
jobs: | |
testpatch: | |
name: Test patches applied to dependencies | |
runs-on: aws-otel-java-instrumentation_ubuntu-latest_32-core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: temurin | |
# vaadin 14 tests fail with node 18 | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
# vaadin tests use pnpm | |
- name: Cache pnpm modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.pnpm-store | |
key: ${{ runner.os }}-test-cache-pnpm-modules | |
- uses: gradle/wrapper-validation-action@v1 | |
- uses: ./.github/actions/patch-dependencies | |
with: | |
run_tests: "true" | |
build: | |
name: Build on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
exclude: | |
# Skip windows on patch workflow because it is not possible to build opentelemetry-java on windows | |
# when the cache is in a different drive than the source code | |
# Windows is not working for patch workflows, therefore we disable it here | |
# https://github.com/square/wire/issues/2188 | |
# https://github.com/open-telemetry/opentelemetry-java/issues/4560 | |
- os: ${{ startsWith(github.event.pull_request.base.ref, 'release/v') && 'windows-latest' || '' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: temurin | |
- uses: gradle/wrapper-validation-action@v1 | |
# cache local patch outputs | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2/repository/io/opentelemetry/ | |
key: ${{ runner.os }}-maven-local-${{ hashFiles('.github/patches/opentelemetry-java*.patch') }} | |
- name: Publish patched dependencies to maven local | |
uses: ./.github/actions/patch-dependencies | |
if: ${{ matrix.os != 'windows-latest' }} # Skip patch on windows as it is not possible to build opentelemetry-java on windows | |
- name: Build with Gradle with Integration tests | |
uses: gradle/gradle-build-action@v3 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
with: | |
arguments: build integrationTests --stacktrace -PenableCoverage=true -PlocalDocker=true | |
- name: Pull base image of Contract Tests Sample Apps | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: docker pull public.ecr.aws/docker/library/amazoncorretto:17-alpine | |
- name: Run contract tests | |
uses: gradle/gradle-build-action@v3 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
with: | |
arguments: contractTests -PlocalDocker=true -i | |
- name: Get current version | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
shell: bash | |
run: | | |
echo "ADOT_JAVA_VERSION=$(./gradlew printVersion -q )" >> $GITHUB_ENV | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
driver-opts: image=moby/buildkit:v0.15.1 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Build image for testing | |
uses: docker/build-push-action@v5 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
with: | |
push: false | |
build-args: "ADOT_JAVA_VERSION=${{ env.ADOT_JAVA_VERSION }}" | |
context: . | |
platforms: linux/amd64 | |
tags: ${{ env.TEST_TAG }} | |
load: true | |
- name: Perform image scan | |
uses: ./.github/actions/image_scan | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
with: | |
image-ref: ${{ env.TEST_TAG }} | |
severity: 'CRITICAL,HIGH,MEDIUM,LOW,UNKNOWN' | |
- name: Test docker image | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
shell: bash | |
run: .github/scripts/test-adot-javaagent-image.sh "${{ env.TEST_TAG }}" "${{ env.ADOT_JAVA_VERSION }}" | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@v3 | |
if: ${{ matrix.os != 'ubuntu-latest' && (hashFiles('.github/patches/opentelemetry-java*.patch') == '' || matrix.os != 'windows-latest' ) }} # build on windows as well unless a patch exists | |
with: | |
arguments: build --stacktrace -PenableCoverage=true | |
- uses: codecov/codecov-action@v3 | |