Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 0995a40d authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Update tools scripts

parent 39f21d06
No related branches found
No related tags found
1 merge request!250Update for release 1.1.0
#!/bin/bash
#!/usr/bin/env bash
###
#
# @file analysis.sh
# @copyright 2013-2021 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.1.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2021-01-07
#
###
# Performs an analysis of Chameleon source code:
# - we consider to be in Chameleon's source code root
......@@ -6,10 +18,18 @@
# - we consider having cppcheck, rats, sonar-scanner programs available in the environment
# filter sources:
# - consider generated files in build
# - consider generated files in ${BUILDDIR}
# - exclude base *z* files to avoid duplication
# - exclude cblas.h and lapacke-.h because not really part of chameleon and make cppcheck analysis too long
./tools/find_sources.sh
if [ $# -gt 0 ]
then
BUILDDIR=$1
fi
BUILDDIR=${BUILDDIR:-build}
TOOLSDIR=$(dirname $0)
$TOOLSDIR/find_sources.sh
# Generate coverage xml output
INPUT_FILES=""
......@@ -19,6 +39,7 @@ do
done
lcov $INPUT_FILES -o chameleon.lcov
lcov --summary chameleon.lcov
python3 /usr/local/lib/python3.8/dist-packages/lcov_cobertura.py chameleon.lcov --output chameleon_coverage.xml
# Undefine this because not relevant in our configuration
......@@ -32,6 +53,9 @@ cppcheck $CPPCHECK_OPT -DPRECISION_d -UPRECISION_s -UPRECISION_c -UPRECISION_z -
cppcheck $CPPCHECK_OPT -DPRECISION_c -UPRECISION_s -UPRECISION_d -UPRECISION_z --file-list=./filelist_c.txt 2>> chameleon_cppcheck.xml
cppcheck $CPPCHECK_OPT -DPRECISION_z -UPRECISION_s -UPRECISION_d -UPRECISION_c --file-list=./filelist_z.txt 2>> chameleon_cppcheck.xml
# Set the default for the project key
SONARQUBE_PROJECTKEY=${SONARQUBE_PROJECTKEY:-hiepacs:chameleon:gitlab:$CI_PROJECT_NAMESPACE:$CI_COMMIT_REF_NAME}
# create the sonarqube config file
cat > sonar-project.properties << EOF
sonar.host.url=https://sonarqube.inria.fr/sonarqube
......@@ -42,11 +66,10 @@ sonar.links.scm=$CI_REPOSITORY_URL
sonar.links.ci=$CI_PROJECT_URL/pipelines
sonar.links.issue=$CI_PROJECT_URL/issues
sonar.projectKey=hiepacs:chameleon:gitlab:$CI_PROJECT_NAMESPACE:$CI_COMMIT_REF_NAME
sonar.projectKey=$SONARQUBE_PROJECTKEY
sonar.projectDescription=Dense linear algebra subroutines for heterogeneous and distributed architectures
sonar.projectVersion=0.9
sonar.projectVersion=master
sonar.lang.patterns.c++=**/*.cxx,**/*.cpp,**/*.cc,**/*.hxx,**/*.hpp,**/*.hh
sonar.sources=build-openmp/runtime/openmp, build-parsec/runtime/parsec, build-quark/runtime/quark, build-starpu, compute, control, coreblas, example, include, runtime, testing
sonar.inclusions=`cat filelist.txt | sed ':a;N;$!ba;s/\n/, /g'`
sonar.c.includeDirectories=$(echo | gcc -E -Wp,-v - 2>&1 | grep "^ " | tr '\n' ',').,$(find . -type f -name '*.h' | sed -r 's|/[^/]+$||' |sort |uniq | xargs echo | sed -e 's/ /,/g'),$PARSEC_DIR/include,$QUARK_DIR/include,$STARPU_DIR/include/starpu/1.2,$SIMGRID_DIR/include
......@@ -59,6 +82,9 @@ sonar.c.coverage.reportPath=chameleon_coverage.xml
sonar.c.cppcheck.reportPath=chameleon_cppcheck.xml
sonar.c.clangsa.reportPath=build-openmp/analyzer_reports/*/*.plist, build-parsec/analyzer_reports/*/*.plist, build-quark/analyzer_reports/*/*.plist, build-starpu/analyzer_reports/*/*.plist, build-starpu_simgrid/analyzer_reports/*/*.plist
sonar.c.jsonCompilationDatabase=build-openmp/compile_commands.json, build-parsec/compile_commands.json, build-quark/compile_commands.json, build-starpu/compile_commands.json, build-starpu_simgrid/compile_commands.json
sonar.lang.patterns.c++: **/*.cxx,**/*.cpp,**/*.cc,**/*.hxx,**/*.hpp,**/*.hh
sonar.lang.patterns.c: **/*.c,**/*.h
sonar.lang.patterns.python: **/*.py
EOF
# run sonar analysis + publish on sonarqube-dev
......
#
# @file check_header.sh
#
# @copyright 2016-2020 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2016-2021 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.0.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2020-03-03
#
# This script check that basic informations is present and correct in
# headers of source files.
#
#!/bin/sh
#!/usr/bin/env sh
header=1
print_header()
......@@ -26,18 +27,18 @@ print_header()
check_header_file()
{
filename=$1
basename=`basename $filename .in`
basename=$( basename $filename .in )
if [ "$basename" != "CMakeLists.txt" ]
then
toto=`grep " @file $basename" $filename`
toto=$( grep " @file $basename" $filename )
if [ $? -ne 0 ]
then
toto=`grep " @file .*/$basename" $filename`
toto=$( grep " @file .*/$basename" $filename )
fi
if [ $? -ne 0 ]
then
toto=`grep " @file chameleon_$basename" $filename`
toto=$( grep " @file chameleon_$basename" $filename )
fi
if [ $? -ne 0 ]
......@@ -51,13 +52,10 @@ check_header_file()
check_header_copyright()
{
filename=$1
basename=`basename $filename`
basename=$( basename $filename )
toto=`grep -E " @copyright [0-9]{4}-2020 Bordeaux INP" $filename`
if [ $? -ne 0 ]
then
toto=`grep -E " @copyright 2020 Bordeaux INP" $filename`
fi
year=$( date +%Y )
toto=$( grep -E " @copyright [0-9]{4}-$year Bordeaux INP" $filename )
if [ $? -ne 0 ]
then
......@@ -69,9 +67,9 @@ check_header_copyright()
check_header_version()
{
filename=$1
basename=`basename $filename`
basename=$( basename $filename )
toto=`grep -E " @version [0-9]\.[0-9]\.[0-9]" $filename`
toto=$( grep -E " @version [0-9]\.[0-9]\.[0-9]" $filename )
if [ $? -ne 0 ]
then
print_header $filename
......@@ -82,9 +80,9 @@ check_header_version()
check_header_author()
{
filename=$1
basename=`basename $filename`
basename=$( basename $filename )
toto=`grep -E " @author " $filename`
toto=$( grep -E " @author " $filename )
if [ $? -ne 0 ]
then
print_header $filename
......@@ -95,9 +93,9 @@ check_header_author()
check_header_date()
{
filename=$1
basename=`basename $filename`
basename=$( basename $filename )
toto=`grep -E " @date [0-9]{4}-[01][0-9]-[0-3][0-9]" $filename`
toto=$( grep -E " @date [0-9]{4}-[01][0-9]-[0-3][0-9]" $filename )
if [ $? -ne 0 ]
then
print_header $filename
......@@ -108,28 +106,28 @@ check_header_date()
check_header_define()
{
filename=$1
basename=`basename $filename`
basename=$( basename $filename )
case $basename in
*.h)
n=`basename $basename .h | awk '{print tolower($0)}'`
n=$( basename $basename .h | awk '{print tolower($0)}' )
macro="_${n}_h_"
err=0
toto=`grep "#ifndef .*$macro" $filename`
toto=$( grep "#ifndef .*$macro" $filename )
ret=$?
err=$((err + ret))
if [ $ret -eq 0 ]
then
macro=`grep "#ifndef" $filename | sed 's/#ifndef //'`
macro=$( grep "#ifndef" $filename | sed 's/#ifndef //' )
fi
toto=`grep "#define $macro" $filename`
toto=$( grep "#define $macro" $filename )
ret=$?
err=$((err + ret))
toto=`grep "#endif /\* $macro \*/" $filename`
toto=$( grep "#endif /\* $macro \*/" $filename )
ret=$?
err=$((err + ret))
......@@ -160,16 +158,26 @@ check_header()
check_header_file $1
check_header_copyright $1
check_header_version $1
# check_header_author $1
# check_header_date $1
check_header_author $1
check_header_date $1
check_header_define $1
}
#
# Check headers
#
files=`git ls-files | grep -v "^\." | grep -v ".*\.md" | grep -v LICENSE | grep -v ".*\.cmake" | grep -v "testing/lin" | grep -v doc/ | grep -v CTest | grep -v cblas.h | grep -v lapacke.h | grep -v "simucore/perfmodels/\.starpu" | grep -v "\.org"`
files=$( git ls-files |
grep -v "^\." |
grep -v ".*\.md" |
grep -v LICENSE |
grep -v ".*\.cmake" |
grep -v "testing/lin" |
grep -v doc/ |
grep -v CTest |
grep -v cblas.h |
grep -v lapacke.h |
grep -v "simucore/perfmodels/\.starpu" |
grep -v "\.org" )
if [ $# -gt 0 ]
then
files=$*
......
#!/bin/bash
#!/usr/bin/env bash
###
#
# @file release.sh
# @copyright 2013-2021 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @brief Script to generate the release when pushing a branch and tag of the same name
#
# @version 1.1.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2021-04-07
#
###
#
# Steps to do the release:
# - Update information in the code (see update_release.sh)
# - Update the ChangeLog
# - Push the hash on solverstack as:
# - a tag named vx.x.x
# - a branch named release-x.x.x (will trigger the CI to generate the release)
#
changelog=""
function gen_changelog()
{
......@@ -18,7 +40,7 @@ function gen_changelog()
#echo $line
done
changelog="${changelog}\n__WARNING__: Download the source archive by clicking on the link __Download release__ above, please do not consider the link Source code to get all submodules.\n"
changelog="$changelog\nWARNING: Download the source archive by clicking on the link __Download release__ above, please do not consider the automatic Source code links as they are missing the submodules.\n"
}
release=""
......@@ -39,10 +61,6 @@ then
exit 1
fi
# extract the change log from ChangeLog
gen_changelog
echo $changelog
# generate the archive
wget https://raw.githubusercontent.com/Kentzo/git-archive-all/master/git_archive_all.py
python3 git_archive_all.py --force-submodules chameleon-$RELEASE_NAME.tar.gz
......@@ -51,6 +69,10 @@ python3 git_archive_all.py --force-submodules chameleon-$RELEASE_NAME.tar.gz
GETURL=`echo curl --request POST --header \"PRIVATE-TOKEN: $RELEASE_TOKEN\" --form \"file=\@chameleon-$RELEASE_NAME.tar.gz\" https://gitlab.inria.fr/api/v4/projects/$CI_PROJECT_ID/uploads`
MYURL=`eval $GETURL | jq .url | sed "s#\"##g"`
# extract the change log from ChangeLog
gen_changelog
echo $changelog
# Try to remove the release if it already exists
curl --request DELETE --header "PRIVATE-TOKEN: $RELEASE_TOKEN" https://gitlab.inria.fr/api/v4/projects/$CI_PROJECT_ID/releases/v$RELEASE_NAME
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment