Skip to content

Commit e571d23

Browse files
authored
fix(async-profiler): download arch-specific aysnc-profiler binaries (#124)
1 parent 67ba9b2 commit e571d23

2 files changed

Lines changed: 23 additions & 10 deletions

File tree

quarkus-agent/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
target/*
2+
src/main/docker/extras/async-profiler/*

quarkus-agent/build.bash

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,37 @@ trap cleanup EXIT
1313
BUILD_IMG="${APP_REGISTRY:-quay.io}/${APP_NAMESPACE:-redhat-java-monitoring}/${APP_NAME:-quarkus-cryostat-agent}"
1414
BUILD_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

3445
for 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

Comments
 (0)