Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ci
Path: blob/main/jobs/FreeBSD-main-scan_build/backtrace-submit.sh
1130 views
1
#!/bin/sh
2
#
3
# Usage: ./submit.sh <input directory> <output directory> <URL>
4
5
INPUT="$1"
6
BUILD="$2"
7
URL="$3"
8
9
TOKEN=${BACKTRACE_TOKEN}
10
if [ -z "${TOKEN}" ]; then
11
echo "BACKTRACE_TOKEN is not defined"
12
exit 1
13
fi
14
15
if test -z "${URL}"; then
16
URL="https://freebsd.sp.backtrace.io:6098/post?format=json&token=${TOKEN}"
17
fi
18
19
if test -z "${BUILD}"; then
20
BUILD=tmp.backtrace
21
fi
22
23
# The default number of reports to include in every chunk.
24
CHUNK_SIZE=200
25
26
mkdir -p "${BUILD}/archives"
27
28
SIZE_LIMIT="1000000c"
29
30
REPORTS_COUNT=`find ${INPUT} -name '*.html' -size -${SIZE_LIMIT} | wc -l`
31
echo "Found ${REPORTS_COUNT} reports meeting size criteria..."
32
33
# We limit individual report size for now, this will be removed in the future.
34
find ${INPUT} -name '*.html' -size -${SIZE_LIMIT} | split -l ${CHUNK_SIZE} - ${BUILD}/chunk.
35
36
CHUNK_COUNT=`find ${BUILD} -maxdepth 1 -type f -name "chunk.*" | wc -l`
37
38
echo "Generating ${CHUNK_COUNT} chunks..."
39
40
counter=1
41
for i in `find ${BUILD}/ -maxdepth 1 -type f -name "chunk.*"`; do
42
CHUNK=`basename $i`
43
44
echo " + $counter [${CHUNK}]"
45
counter=`expr $counter + 1`
46
47
tar cTfz "$i" "${BUILD}/archives/${CHUNK}.tar.gz"
48
done
49
50
rm -f ${BUILD}/chunk.*
51
52
echo "Submitting ${CHUNK_COUNT} chunks..."
53
54
counter=1
55
56
QUERY_STRING="author=${CHANGE_AUTHOR}&build_id=${BUILD_ID}&build_number=${BUILD_NUMBER}&job_name=${JOB_NAME}&build_url=${BUILD_URL}&git_commit=${GIT_COMMIT}"
57
58
for i in `find ${BUILD}/archives -type f -name '*.tar.gz'`; do
59
CHUNK=`basename $i`
60
61
echo " + ${counter} [${CHUNK}]"
62
counter=`expr ${counter} + 1`
63
64
env ALL_PROXY=http://proxy.nyi.freebsd.org:3128 \
65
curl -v -X POST https://sca.backtrace.io/api/sca/submit/clang-analyzer?${QUERY_STRING} \
66
-H 'Content-Type: multipart/form-data' \
67
-F report="@${i}" \
68
-F "submitUrl=${URL}"
69
done
70
71
rm -rf ${BUILD}
72
73