Skip to content

Commit

Permalink
Fix Quarkus correlation (#4883)
Browse files Browse the repository at this point in the history
* Fix Quarkus correlation

* Add Quarkus smoke test image

* Add Quarkus smoke test

* Fix permission on gradlew

* Update to gradle 7.3.1

* Fix Jib build

* Bump compilation to Java 11

* Better comment

* Fix comment placement

* Fix
  • Loading branch information
trask authored Dec 13, 2021
1 parent 6d254b3 commit d930971
Show file tree
Hide file tree
Showing 14 changed files with 579 additions and 12 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/pr-smoke-test-quarkus-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: PR build Quarkus images for smoke tests

on:
pull_request:
paths:
- 'smoke-tests/images/quarkus/**'
- '.github/workflows/pr-smoke-test-quarkus-images.yml'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0

- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11

- name: Cache gradle dependencies
uses: burrunan/[email protected]
with:
job-id: quarkus-smoke
read-only: true

- name: Cache Gradle Wrapper
uses: actions/cache@v2
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('smoke-tests/images/quarkus/gradle/wrapper/gradle-wrapper.properties') }}

- name: Build Docker Image
# Quarkus 2.0+ does not support Java 8
run: |
./gradlew jibDockerBuild -PtargetJDK=11 -Djib.httpTimeout=120000 -Djib.console=plain
./gradlew jibDockerBuild -PtargetJDK=17 -Djib.httpTimeout=120000 -Djib.console=plain
working-directory: smoke-tests/images/quarkus
73 changes: 73 additions & 0 deletions .github/workflows/publish-smoke-test-quarkus-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Publish Quarkus images for smoke tests

on:
push:
paths:
- 'smoke-tests/images/quarkus/**'
- '.github/workflows/publish-smoke-test-quarkus-images.yml'
branches:
- main
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0

- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11

- name: Cache gradle dependencies
uses: burrunan/[email protected]
with:
job-id: quarkus-smoke
read-only: true

- name: Cache Gradle Wrapper
uses: actions/cache@v2
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('smoke-tests/images/quarkus/gradle/wrapper/gradle-wrapper.properties') }}

- name: Login to GitHub Package Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Docker Image
# Quarkus 2.0+ does not support Java 8
run: |
TAG="$(date '+%Y%m%d').$GITHUB_RUN_ID"
echo "Pushing to tag $TAG"
./gradlew jib -PtargetJDK=11 -Djib.httpTimeout=120000 -Djib.console=plain -Ptag=$TAG
./gradlew jib -PtargetJDK=17 -Djib.httpTimeout=120000 -Djib.console=plain -Ptag=$TAG
working-directory: smoke-tests/images/quarkus

issue:
name: Open issue on failure
needs: publish
runs-on: ubuntu-latest
if: always()
steps:
# run this action to get workflow conclusion
# You can get conclusion by env (env.WORKFLOW_CONCLUSION)
- uses: technote-space/[email protected]

- uses: actions/[email protected]
with:
fetch-depth: 0

- uses: JasonEtco/[email protected]
if: env.WORKFLOW_CONCLUSION == 'failure' # notify only if failure
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: .github/templates/workflow-failed.md
4 changes: 3 additions & 1 deletion docs/contributing/upgrading-gradle-wrappers.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

Set `GRADLE_VERSION` to the version of gradle.

Set `GRADLE_VERSION_CHECKSUM` to the "Binary-only (-bin) ZIP Checksum" for that version from https://gradle.org/release-checksums/.
Set `GRADLE_VERSION_CHECKSUM` to the "Binary-only (-bin) ZIP Checksum" for that version
from https://gradle.org/release-checksums/.

Then run:

Expand All @@ -13,6 +14,7 @@ for dir in . \
examples/extension \
smoke-tests/images/fake-backend \
smoke-tests/images/grpc \
smoke-tests/images/quarkus \
smoke-tests/images/servlet \
smoke-tests/images/play \
smoke-tests/images/spring-boot
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,10 @@ protected AbstractExecutorInstrumentation() {
"java.util.concurrent.ScheduledThreadPoolExecutor",
"java.util.concurrent.ThreadPoolExecutor",
"org.apache.tomcat.util.threads.ThreadPoolExecutor",
"org.eclipse.jetty.util.thread.QueuedThreadPool", // dispatch() is covered in the jetty
// module
"org.eclipse.jetty.util.thread.QueuedThreadPool", // dispatch() covered in the jetty module
"org.eclipse.jetty.util.thread.ReservedThreadExecutor",
"org.glassfish.grizzly.threadpool.GrizzlyExecutorService",
"org.jboss.threads.EnhancedQueueExecutor",
"play.api.libs.streams.Execution$trampoline$",
"play.shaded.ahc.io.netty.util.concurrent.ThreadPerTaskExecutor",
"scala.concurrent.forkjoin.ForkJoinPool",
Expand Down
9 changes: 0 additions & 9 deletions smoke-tests/images/grpc/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1 @@
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/6.6/userguide/multi_project_builds.html
*/

rootProject.name = 'smoke-test-grpc-images'
48 changes: 48 additions & 0 deletions smoke-tests/images/quarkus/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
buildscript {
dependencies {
classpath("com.google.cloud.tools:jib-quarkus-extension-gradle:0.1.1")
}
}

plugins {
id "java"
id "io.quarkus"
id "com.google.cloud.tools.jib" version "3.1.4"
}

group = "io.opentelemetry"
version = "0.0.1-SNAPSHOT"

repositories {
mavenCentral()
mavenLocal()
}

dependencies {
implementation enforcedPlatform("io.quarkus.platform:quarkus-bom:2.5.0.Final")
implementation "io.quarkus:quarkus-resteasy"
}

compileJava {
// Quarkus 2.0+ does not support Java 8
options.release = 11
}

def targetJDK = project.hasProperty("targetJDK") ? project.targetJDK : 11

def tag = findProperty("tag") ?: new Date().format("yyyyMMdd.HHmmSS")

jib {
from.image = "bellsoft/liberica-openjdk-alpine:$targetJDK"
to.image = "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-quarkus:jdk$targetJDK-$tag"
container {
mainClass = 'bogus' // to suppress Jib warning about missing main class
}
pluginExtensions {
pluginExtension {
implementation = 'com.google.cloud.tools.jib.gradle.extension.quarkus.JibQuarkusExtension'
}
}
}

tasks.jibDockerBuild.dependsOn quarkusBuild
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=9afb3ca688fc12c761a0e9e4321e4d24e977a4a8916c8a768b1fe05ddb4d6b66
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit d930971

Please sign in to comment.