@@ -13,25 +13,37 @@ trap cleanup EXIT
1313BUILD_IMG=" ${APP_REGISTRY:- quay.io} /${APP_NAMESPACE:- redhat-java-monitoring} /${APP_NAME:- quarkus-cryostat-agent} "
1414BUILD_TAG=" ${APP_VERSION:- $(mvn -f " ${DIR} /pom.xml" help: evaluate -B -q -DforceStdout -Dexpression=project.version)} "
1515
16- ASYNC_PROFILER=" ${DIR} /src/main/docker/extras/async-profiler"
17- mkdir -p " ${ASYNC_PROFILER} "
18- if [ ! -f " ${ASYNC_PROFILER} /async-profiler.jar" ] || [ ! -f " ${ASYNC_PROFILER} /libasyncProfiler.so" ] || [ " ${CI} " = " true" ]; then
16+ " ${DIR} /mvnw" -B -U -DskipTests -Dio.cryostat.agent.version=" ${CRYOSTAT_AGENT_VERSION} " clean package
17+
18+ podman manifest create " ${BUILD_IMG} :${BUILD_TAG} "
19+
20+ function prepareAsyncProfiler() {
21+ ASYNC_PROFILER=" ${DIR} /src/main/docker/extras/async-profiler"
22+ mkdir -p " ${ASYNC_PROFILER} "
23+ if [ ! -f " ${ASYNC_PROFILER} /async-profiler.jar" ]; then
24+ rm -f " ${ASYNC_PROFILER} /async-profiler.jar"
25+ fi
26+ if [ ! -f " ${ASYNC_PROFILER} /libasyncProfiler.so" ] ; then
27+ rm -f " ${ASYNC_PROFILER} /libasyncProfiler.so"
28+ fi
1929 ASYNC_PROFILER_TAG=" $( gh -R async-profiler/async-profiler release list --exclude-drafts --exclude-pre-releases --limit 1 --json tagName --jq ' .[0].tagName' ) "
2030 ASYNC_PROFILER_VERSION=" ${ASYNC_PROFILER_TAG: 1} "
21- ASYNC_PROFILER_ARCHIVE=" async-profiler-${ASYNC_PROFILER_VERSION} -linux-x64"
31+ ASYNC_PROFILER_ARCH=" x64"
32+ if [ " $1 " = " amd64" ]; then
33+ ASYNC_PROFILER_ARCH=" x64"
34+ else
35+ ASYNC_PROFILER_ARCH=" $1 "
36+ fi
37+ ASYNC_PROFILER_ARCHIVE=" async-profiler-${ASYNC_PROFILER_VERSION} -linux-${ASYNC_PROFILER_ARCH} "
2238 gh -R async-profiler/async-profiler release download --dir " ${ASYNC_PROFILER} " --clobber " ${ASYNC_PROFILER_TAG} " -p async-profiler.jar
23- # TODO download arch-specific archive
2439 gh -R async-profiler/async-profiler release download --clobber " ${ASYNC_PROFILER_TAG} " -p " ${ASYNC_PROFILER_ARCHIVE} .tar.gz"
2540 tar xzvf " ${ASYNC_PROFILER_ARCHIVE} .tar.gz"
2641 mv " ${ASYNC_PROFILER_ARCHIVE} /lib/libasyncProfiler.so" " ${ASYNC_PROFILER} "
2742 rm -rf " ${ASYNC_PROFILER_ARCHIVE} " " ${ASYNC_PROFILER_ARCHIVE} .tar.gz"
28- fi
29-
30- " ${DIR} /mvnw" -B -U -DskipTests -Dio.cryostat.agent.version=" ${CRYOSTAT_AGENT_VERSION} " clean package
31-
32- podman manifest create " ${BUILD_IMG} :${BUILD_TAG} "
43+ }
3344
3445for arch in ${ARCHS:- amd64 arm64} ; do
46+ prepareAsyncProfiler " ${arch} "
3547 echo " Building for ${arch} ..."
3648 podman build --pull=missing --platform=" linux/${arch} " -t " ${BUILD_IMG} :linux-${arch} " -f " ${DIR} /src/main/docker/Dockerfile.jvm" " ${DIR} "
3749 podman manifest add " ${BUILD_IMG} :${BUILD_TAG} " containers-storage:" ${BUILD_IMG} :linux-${arch} "
0 commit comments