From: Michael Jeanson Date: Tue, 9 Aug 2016 19:21:56 +0000 (-0400) Subject: jjb: Make scan-build a common script X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=69f05d5914f8c90efd4af992a309255b22f3c30f;p=lttng-ci.git jjb: Make scan-build a common script Signed-off-by: Michael Jeanson --- diff --git a/jobs/babeltrace.yaml b/jobs/babeltrace.yaml index 8e526d5..fb164ea 100644 --- a/jobs/babeltrace.yaml +++ b/jobs/babeltrace.yaml @@ -35,6 +35,9 @@ cron: "@hourly" properties: + - inject: + properties-content: | + PROJECT_NAME=babeltrace - build-discarder: num-to-keep: 2 - github: @@ -147,7 +150,7 @@ builders: - shell: - !include-raw-escape: scripts/babeltrace/scan-build.sh + !include-raw-escape: scripts/common/scan-build.sh publishers: - html-publisher: diff --git a/jobs/liburcu.yaml b/jobs/liburcu.yaml index e9c5667..02df230 100644 --- a/jobs/liburcu.yaml +++ b/jobs/liburcu.yaml @@ -48,6 +48,9 @@ cron: "@hourly" properties: + - inject: + properties-content: | + PROJECT_NAME=liburcu - build-discarder: num-to-keep: 2 - github: @@ -137,7 +140,7 @@ builders: - shell: - !include-raw-escape: scripts/liburcu/scan-build.sh + !include-raw-escape: scripts/common/scan-build.sh publishers: - html-publisher: diff --git a/jobs/lttng-tools.yaml b/jobs/lttng-tools.yaml index b5d5f09..0423117 100644 --- a/jobs/lttng-tools.yaml +++ b/jobs/lttng-tools.yaml @@ -29,6 +29,9 @@ cron: "@hourly" properties: + - inject: + properties-content: | + PROJECT_NAME=lttng-tools - github: url: https://github.com/{github_user}/{github_name} - build-discarder: @@ -295,7 +298,7 @@ target: 'deps/lttng-ust' do-not-fingerprint: true - shell: - !include-raw-escape: scripts/lttng-tools/scan-build.sh + !include-raw-escape: scripts/common/scan-build.sh publishers: - html-publisher: diff --git a/jobs/lttng-ust.yaml b/jobs/lttng-ust.yaml index 3f8971d..dab22cf 100644 --- a/jobs/lttng-ust.yaml +++ b/jobs/lttng-ust.yaml @@ -30,6 +30,9 @@ cron: "@hourly" properties: + - inject: + properties-content: | + PROJECT_NAME=lttng-ust - build-discarder: num-to-keep: 2 - github: @@ -282,7 +285,7 @@ target: 'deps/liburcu' do-not-fingerprint: true - shell: - !include-raw-escape: scripts/lttng-ust/scan-build.sh + !include-raw-escape: scripts/common/scan-build.sh publishers: - html-publisher: diff --git a/scripts/babeltrace/scan-build.sh b/scripts/babeltrace/scan-build.sh deleted file mode 100755 index 117d5f9..0000000 --- a/scripts/babeltrace/scan-build.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2015 - Jonathan Rajotte-Julien -# 2016 - Michael Jeanson -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# do not exit immediately if any command fails -set +e - -SRCDIR="$WORKSPACE/src/babeltrace" -TMPDIR="$WORKSPACE/tmp" -PREFIX="$WORKSPACE/build" -# Directory to archive the scan-build report -SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" - -# Create build and tmp directories -rm -rf "$PREFIX" "$TMPDIR" -mkdir -p "$PREFIX" "$TMPDIR" - -export TMPDIR - -# temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d ) - -export CFLAGS="-O0 -g -DDEBUG" - -# Enter the source directory -cd "$SRCDIR" - -# Run bootstrap in the source directory prior to configure -./bootstrap - - -./configure --prefix="$PREFIX" - -# generate the scan-build report -scan-build -k -o "${SCAN_BUILD_TMPDIR}" make - -# get the directory name of the report created by scan-build -SCAN_BUILD_REPORT=$( find "${SCAN_BUILD_TMPDIR}" -maxdepth 1 -not -empty -not -name "`basename ${SCAN_BUILD_TMPDIR}`" ) -rc=$? - -if [ -z "${SCAN_BUILD_REPORT}" ]; then - echo ">>> No new bugs identified." - echo ">>> No scan-build report has been generated" -else - echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" - - if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then - echo ">>> Creating scan-build archive directory" - mkdir "${SCAN_BUILD_ARCHIVE}" - else - echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" - rm -f "${SCAN_BUILD_ARCHIVE}/*" - fi - - echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" - mv "${SCAN_BUILD_REPORT}/*" "${SCAN_BUILD_ARCHIVE}/" - - echo ">>> Removing any temporary files and directories" - rm -rf "${SCAN_BUILD_TMPDIR}" -fi - -exit ${rc} diff --git a/scripts/common/scan-build.sh b/scripts/common/scan-build.sh new file mode 100755 index 0000000..8ff8304 --- /dev/null +++ b/scripts/common/scan-build.sh @@ -0,0 +1,90 @@ +#!/bin/sh -exu +# +# Copyright (C) 2015 - Jonathan Rajotte-Julien +# 2016 - Michael Jeanson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# do not exit immediately if any command fails +set +e + +SRCDIR="$WORKSPACE/src/$PROJECT_NAME" +TMPDIR="$WORKSPACE/tmp" +PREFIX="$WORKSPACE/build" + +# Directory to archive the scan-build report +SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" + +# Create build and tmp directories +rm -rf "$PREFIX" "$TMPDIR" +mkdir -p "$PREFIX" "$TMPDIR" + +export TMPDIR + +# temp directory to store the scan-build report +SCAN_BUILD_TMPDIR=$( mktemp -d ) + +# liburcu +URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" +URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" + +# lttng-ust +UST_INCS="$WORKSPACE/deps/lttng-ust/build/include/" +UST_LIBS="$WORKSPACE/deps/lttng-ust/build/lib/" + +export CFLAGS="-O0 -g -DDEBUG" + +export CPPFLAGS="-I$URCU_INCS -I$UST_INCS" +export LDFLAGS="-L$URCU_LIBS -L$UST_LIBS" +export LD_LIBRARY_PATH="$URCU_LIBS:$UST_LIBS:${LD_LIBRARY_PATH:-}" + +# Enter the source directory +cd "$SRCDIR" + +# Run bootstrap in the source directory prior to configure +./bootstrap + + +./configure --prefix="$PREFIX" + +# generate the scan-build report +scan-build -k -o "${SCAN_BUILD_TMPDIR}" make -j "$(nproc)" + +# get the directory name of the report created by scan-build +SCAN_BUILD_REPORT=$(find "${SCAN_BUILD_TMPDIR}" -maxdepth 1 -not -empty -not -name "$(basename "${SCAN_BUILD_TMPDIR}")") +rc=$? + +if [ -z "${SCAN_BUILD_REPORT}" ]; then + echo ">>> No new bugs identified." + echo ">>> No scan-build report has been generated" +else + echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" + + if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then + echo ">>> Creating scan-build archive directory" + mkdir "${SCAN_BUILD_ARCHIVE}" + else + echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" + rm -f "${SCAN_BUILD_ARCHIVE}/*" + fi + + echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" + mv "${SCAN_BUILD_REPORT}"/* "${SCAN_BUILD_ARCHIVE}/" + + echo ">>> Removing any temporary files and directories" + rm -rf "${SCAN_BUILD_TMPDIR}" +fi + +exit ${rc} diff --git a/scripts/liburcu/scan-build.sh b/scripts/liburcu/scan-build.sh deleted file mode 100755 index d290a6f..0000000 --- a/scripts/liburcu/scan-build.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2015 - Jonathan Rajotte-Julien -# 2016 - Michael Jeanson -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# do not exit immediately if any command fails -set +e - -SRCDIR="$WORKSPACE/src/liburcu" -TMPDIR="$WORKSPACE/tmp" -PREFIX="$WORKSPACE/build" - -# Directory to archive the scan-build report -SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" - -# Create build and tmp directories -rm -rf "$PREFIX" "$TMPDIR" -mkdir -p "$PREFIX" "$TMPDIR" - -export TMPDIR - -# temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d ) - -export CFLAGS="-O0 -g -DDEBUG" - -# Enter the source directory -cd "$SRCDIR" - -# Run bootstrap in the source directory prior to configure -./bootstrap - - -./configure --prefix="$PREFIX" - -# generate the scan-build report -scan-build -k -o "${SCAN_BUILD_TMPDIR}" make - -# get the directory name of the report created by scan-build -SCAN_BUILD_REPORT=$( find "${SCAN_BUILD_TMPDIR}" -maxdepth 1 -not -empty -not -name "`basename ${SCAN_BUILD_TMPDIR}`") -rc=$? - -if [ -z "${SCAN_BUILD_REPORT}" ]; then - echo ">>> No new bugs identified." - echo ">>> No scan-build report has been generated" -else - echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" - - if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then - echo ">>> Creating scan-build archive directory" - mkdir "${SCAN_BUILD_ARCHIVE}" - else - echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" - rm -f "${SCAN_BUILD_ARCHIVE}/*" - fi - - echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" - mv "${SCAN_BUILD_REPORT}/*" "${SCAN_BUILD_ARCHIVE}/" - - echo ">>> Removing any temporary files and directories" - rm -rf "${SCAN_BUILD_TMPDIR}" -fi - -exit ${rc} diff --git a/scripts/lttng-tools/scan-build.sh b/scripts/lttng-tools/scan-build.sh deleted file mode 100755 index bf3c7fa..0000000 --- a/scripts/lttng-tools/scan-build.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2015 - Jonathan Rajotte-Julien -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d /tmp/scan-build.XXXXXX ) - -# directory to use for archiving the scan-build report -SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" - -# Create build directory -rm -rf $WORKSPACE/build -mkdir -p $WORKSPACE/build - -# liburcu -URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" -URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" - -# lttng-ust -UST_INCS="$WORKSPACE/deps/lttng-ust/build/include/" -UST_LIBS="$WORKSPACE/deps/lttng-ust/build/lib/" - -export CFLAGS="-O0 -g -DDEBUG" -export CPPFLAGS="-I$URCU_INCS -I$UST_INCS" -export LDFLAGS="-L$URCU_LIBS -L$UST_LIBS" -export LD_LIBRARY_PATH="$URCU_LIBS:$UST_LIBS:${LD_LIBRARY_PATH:-}" - -PREFIX="$WORKSPACE/build" - -./bootstrap -./configure --prefix=$PREFIX -make clean -# generate the scan-build report -scan-build -k -o ${SCAN_BUILD_TMPDIR} make - -# get the directory name of the report created by scan-build -set +e -SCAN_BUILD_REPORT=$( find ${SCAN_BUILD_TMPDIR} -maxdepth 1 -not -empty -not -name `basename ${SCAN_BUILD_TMPDIR}` ) -rc=$? -set -e - -if [ -z "${SCAN_BUILD_REPORT}" ]; then - echo ">>> No new bugs identified." - echo ">>> No scan-build report has been generated" -else - echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" - - if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then - echo ">>> Creating scan-build archive directory" - install -d -o jenkins -g jenkins -m 0755 "${SCAN_BUILD_ARCHIVE}" - else - echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" - rm -f ${SCAN_BUILD_ARCHIVE}/* - fi - - echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" - mv ${SCAN_BUILD_REPORT}/* ${SCAN_BUILD_ARCHIVE}/ - - echo ">>> Removing any temporary files and directories" - rm -rf "${SCAN_BUILD_TMPDIR}" -fi - -exit ${rc} diff --git a/scripts/lttng-ust/scan-build.sh b/scripts/lttng-ust/scan-build.sh deleted file mode 100755 index 0eebb7f..0000000 --- a/scripts/lttng-ust/scan-build.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2015 - Jonathan Rajotte-Julien -# 2016 - Michael Jeanson -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# do not exit immediately if any command fails -set +e - -SRCDIR="$WORKSPACE/src/lttng-ust" -TMPDIR="$WORKSPACE/tmp" -PREFIX="$WORKSPACE/build" - -# Directory to archive the scan-build report -SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" - -# Create build and tmp directories -rm -rf "$PREFIX" "$TMPDIR" -mkdir -p "$PREFIX" "$TMPDIR" - -export TMPDIR - -# temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d ) - -# liburcu -URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" -URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" - -export CFLAGS="-O0 -g -DDEBUG" -export CPPFLAGS="-I$URCU_INCS" -export LDFLAGS="-L$URCU_LIBS" -export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}" - -# Enter the source directory -cd "$SRCDIR" - -# Run bootstrap in the source directory prior to configure -./bootstrap - - -./configure --prefix="$PREFIX" - -# generate the scan-build report -scan-build -k -o "${SCAN_BUILD_TMPDIR}" make - -# get the directory name of the report created by scan-build -SCAN_BUILD_REPORT=$( find "${SCAN_BUILD_TMPDIR}" -maxdepth 1 -not -empty -not -name "`basename ${SCAN_BUILD_TMPDIR}`" ) -rc=$? - -if [ -z "${SCAN_BUILD_REPORT}" ]; then - echo ">>> No new bugs identified." - echo ">>> No scan-build report has been generated" -else - echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" - - if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then - echo ">>> Creating scan-build archive directory" - mkdir "${SCAN_BUILD_ARCHIVE}" - else - echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" - rm -f "${SCAN_BUILD_ARCHIVE}/*" - fi - - echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" - mv "${SCAN_BUILD_REPORT}/*" "${SCAN_BUILD_ARCHIVE}/" - - echo ">>> Removing any temporary files and directories" - rm -rf "${SCAN_BUILD_TMPDIR}" -fi - -exit ${rc}