diff --git a/.jenkins/staticanalysis.groovy b/.jenkins/staticanalysis.groovy new file mode 100644 index 0000000000..adc9491910 --- /dev/null +++ b/.jenkins/staticanalysis.groovy @@ -0,0 +1,68 @@ +#!/usr/bin/env groovy +// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ +@Library('rocJenkins@pong') _ + +// This is file for internal AMD use. +// If you are interested in running your own Jenkins, please raise a github issue for assistance. + +import com.amd.project.* +import com.amd.docker.* +import java.nio.file.Path + +def runCompileCommand(platform, project, jobName, boolean debug=false) +{ + project.paths.construct_build_prefix() + + def command = """#!/usr/bin/env bash + set -x + ${project.paths.project_build_prefix}/docs/run_doc.sh + """ + + try + { + platform.runCommand(this, command) + } + catch(e) + { + throw e + } + + publishHTML([allowMissing: false, + alwaysLinkToLastBuild: false, + keepAll: false, + reportDir: "${project.paths.project_build_prefix}/docs/source/_build/html", + reportFiles: "index.html", + reportName: "Documentation", + reportTitles: "Documentation"]) +} + +def runCI = +{ + nodeDetails, jobName-> + + def prj = new rocProject('rccl-internal', 'StaticAnalysis') + + // Define test architectures, optional rocm version argument is available + def nodes = new dockerNodes(nodeDetails, jobName, prj) + + boolean formatCheck = false + boolean staticAnalysis = true + + def compileCommand = + { + platform, project-> + + runCompileCommand(platform, project, jobName, false) + } + + buildProject(prj , formatCheck, nodes.dockerArray, compileCommand, null, null, staticAnalysis) +} + +ci: { + String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) + + properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * 6')])])) + stage(urlJobName) { + runCI([ubuntu18:['any']], urlJobName) + } +} diff --git a/README.md b/README.md index 433387fe85..86ee8501a2 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,8 @@ There are unit tests implemented with the Googletest framework in RCCL, which ar To invoke the unit tests, go to the build folder, then the test subfolder, and execute the appropriate unit test executable(s). Unit test names are now of the format: -[CollectiveCall]CorrectnessSweep/[CollectiveCall]CorrectnessTest.[Type of test]/[ncclRedOp_t]_[datatype]_[number of elements]_[number of devices]_[in place/out of place]_[environment variables] + + [CollectiveCall]CorrectnessSweep/[CollectiveCall]CorrectnessTest.[Type of test]/[ncclRedOp_t]_[datatype]_[number of elements]_[number of devices]_[in place/out of place]_[environment variables] This allows filtering of unit tests being run by their parameter values by passing the --gtest_filter command line flag, for example: @@ -82,7 +83,7 @@ See the rccl-tests README for more information on how to build and run those tes ## Library and API Documentation -Please refer to the [Library documentation](http://rccl.readthedocs.io/) for current documentation. +Please refer to the [Library documentation](https://rccl.readthedocs.io/) for current documentation. ## Copyright diff --git a/docs/run_doc.sh b/docs/run_doc.sh index 826b8ea2ec..4de10d87c3 100755 --- a/docs/run_doc.sh +++ b/docs/run_doc.sh @@ -1,17 +1,15 @@ #!/bin/bash -# Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved. +# Copyright (c) 2019-2021 Advanced Micro Devices, Inc. All rights reserved. -if [ -d docBin ]; then - rm -rf docBin -fi +set -eu -sed -e 's/ROCFFT_EXPORT //g' ../library/include/rocfft.h > rocfft.h -doxygen Doxyfile +# Make this directory the PWD +cd "$(dirname "${BASH_SOURCE[0]}")" +# Build doxygen info +./run_doxygen.sh + +# Build sphinx docs cd source make clean make html -cd .. - -rm rocfft.h - diff --git a/docs/run_doxygen.sh b/docs/run_doxygen.sh index 4424e76b82..a3cc4361f5 100755 --- a/docs/run_doxygen.sh +++ b/docs/run_doxygen.sh @@ -1,13 +1,17 @@ #!/bin/bash -# # Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved. +# # Copyright (c) 2019-2021 Advanced Micro Devices, Inc. All rights reserved. -if [ -d docBin ]; then - rm -rf docBin -fi +set -eu -rm nccl.h +# Make this directory the PWD +cd "$(dirname "${BASH_SOURCE[0]}")" -sed -e 's/ROCFFT_EXPORT //g' ../src/nccl.h.in > nccl.h +# Rename our input file +cp ../src/nccl.h.in nccl.h + +# Build the doxygen info +rm -rf docBin doxygen Doxyfile -#rm nccl.h +# Cleanup +rm nccl.h diff --git a/docs/source/conf.py b/docs/source/conf.py index 3ec199e2c8..e1b437dc20 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,8 +56,8 @@ master_doc = 'index' # General information about the project. project = u'RCCL' -copyright = u'2015-2018, NVIDIA CORPORATION; Modifications Copyright 2019-2020 Advanced Mirco Devices' -author = u'Advanced Mirco Devices' +copyright = u'2015-2018, NVIDIA CORPORATION; Modifications Copyright 2019-2020 Advanced Micro Devices' +author = u'Advanced Micro Devices' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -156,7 +156,7 @@ latex_elements = { # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'RCCL.tex', u'RCCL Documentation', - u'Advanced Mirco Devices', 'manual'), + u'Advanced Micro Devices', 'manual'), ]