Commit Pragmas
Commit Pragmas are read from the current (which I suppose could also be called most recent) commit. Pragmas in any prior commit messages are ignored.
in some cases where distro is specified and the distribution is CentOS 7 distro may be "el7" whereas in some other cases it may be "centos7". There are some TODOs noted in the table below that seem to have a goal to align on a single string for this distribution. Similarly, "ubuntu" below may actually require "ubuntu20". Refer to the latest daos master branch Jenkinsfile for additional hints.
Here are some additional commit pragmas that you might find useful:
Pragma | Explanation |
---|---|
| Skips the checkpatch stage for the PR. |
| Run Functional testing in GitHub Actions instead of Jenkins. This is optional for anyone who can see Jenkins results but given that external contributors cannot access our Jenkins instance, using this pragma will give them test results they can view in GHA instead of Jenkins. |
| Speeds up the build by:
Note: This option is deprecated and may no longer work, do not use. Note: as this commit pragma skips Pre-build steps, PRs using this pragma will not be able to land. Note: This does not actually speed up the build process either. See also |
| Speeds up the build by running compile in parallel. |
| Skips all stages except build and Functional testing. This is a good way to iterate on CI code changes, or a change that is verified by (a) functional test(s). Note: To speed up functional test code change testing it is recommended to use the |
| Skips building of the PR. This is useful in conjunction with |
| Skip building a specific distro and compiler combination. Distros used currently are Compilers used currently are Buildtype is currently |
| Skip building a package on a distribution. Distros used currently are |
| Skips all of the Test and Test Hardware stages. Note that the UT stages still runs. See |
| Skips all of the Unit Tests stages. |
| Skip the node local test stage. |
| Skips the Unit Test on <distro> stage. |
| Skips running Unit Test with memcheck on <distro> stage. |
| Skips the Coverity instrumented build. |
| Skips all Functional Test stages. |
| Skips all the Functional VM test stages (el7, leap15) TODO: rename this to |
| Skips the Functional VM test for the distro (el7, leap15) TODO: rename this to |
| Unskips the VM Functional on EL 8 with Valgrind stage |
| Skips all the Test Hardware stages (Functional Hardware {Medium*|Large}) (not needed if you use |
| Skips the Functional Hardware Medium test stage (not needed if you use |
| Skips the Functional Hardware Medium Verbs Provider test stage (not needed if you use |
| Skips the Functional Hardware Medium UCX Provider test stage (not needed if you use |
| Skips the Functional Hardware Large test stage (not needed if you use |
| Unskips the Functional Hardware Medium MD on SSD test stage. |
| Unskips the Functional Hardware Large MD on SSD test stage. |
| Skip the malware scans of RPMs. |
| Skip the malware scan of the RPMs for a distro. Some distro examples: leap15, el7, el8. |
| Skip the basic sanity test of the CentOS 7 RPMs. |
| Skip the Fault injection testing stage. |
| Adds the artefact repository of Jenkins build of project 's lastSuccessfulBuild or build_num to the repository list for the build/test run. project is replaced with the name of the repository underneath https://github.com/daos-stack . Some project examples: mpich, hdf5, testmpio, romio, ior-hpc, MACSio, hdf5-vol-daos. When using multiple projects, the specified list of repos must be space-separated. |
| Same as above but only uses such PRs as repos for the named distribution. Useful when your the PR you want to use as a repo does not build on all distributions. Some distro examples: leap15, el7, el8, ubuntu20. |
| Whether Functional tests should be done with RPMs. Defaults to true but can be set to false to force testing of the non-RPM build. |
| The version-release of the RPMs to test with. This is useful with |
| To force the "documentation only" handling (skipping build and test) state for a PR. This should usually be determined automatically. |
| Skip the Python Bandit check. |
| Enable the Bullseye instrumented testing. Current default is not to run the Bullseye stages. |
| Uses |
A rollup of the | |
| Controls which test tags to run in all of the Functional VM test stages only. In this example, it will run |
| Controls which test tags to run in the Functional Hardware Medium test stage only. In this example, it will run |
| Controls which test tags to run in the Functional Hardware Medium Verbs Provider test stage only. In this example, it will run |
| Controls which test tags to run in the Functional Hardware Medium UCX Provider test stage only. In this example, it will run |
| Controls which test tags to run in the Functional Hardware Large test stage only. In this example, it will run |
| (experimental) Still e-mail about stage failures in the PR, but don't add a comment to GitHub about it. Helps keep PRs clean of noise. |
A space separated list of features your PR is affecting, to add tests covering those features to your PR. List of current Feature tags. Note: When using "Features" tag, the following tags will be appended to your avocado filter (for each feature in your list): | |
| Repeat running all selected tests in each Functional Test stage for the specified number of times. Use with Test-tag: only (and not This can be combined with the other Note: The |
| Repeat running all selected tests in all of the Functional VM test stage for the specified number of times. Use with |
| Repeat running all selected tests in the Functional Hardware Medium test stage for the specified number of times. Use with |
| Repeat running all selected tests in the Functional Hardware Medium Verbs Provider test stage for the specified number of times. Use with |
| Repeat running all selected tests in the Functional Hardware Medium UCX Provider test stage for the specified number of times. Use with |
| Repeat running all selected tests in the Functional HW Large Test stage for the specified number of times. Use with |
The distribution to run hardware tests on. Distros used currently are | |
| Allow tests to continue to HW stage if any tests fail in Functional stage |
| Override the default provider to be used with all functional tests by using the value to specify the |
| Override the default provider to be used with all Functional VM test stages. See |
| Override the default provider to be used with the Functional Hardware Medium test stage. See |
| Override the default provider to be used with the Functional HW Large test stage. See |
| Override the |
Specify a test tag (could be a specific test name) that should be skipped on testing as it’s a known failing test. This MUST include the ticket number or it will be flagged as an error and the job will fail. Branch could be i.e. | |
| Specify additional tickets that a PR fixes. Can either be space separates on a single |
An example of when to use these would be for documentation-only PRs, you should add:
Skip-build: true
Skip-test: true
To avoid wasting time and resources running a build and test when they are not needed.
You could also use combinations of Quick-build: true
, Test-tag*:
to only run tests your patch is making changes to while you iterate towards your final patch.
A more effective way to achieve the above, while iterating is to use Quick-Functional: true
and Test-tag: <tag(s)>
.
But note that your final run, before you request landing must include pr,hw
and pr,-hw
for the non-hardware and hardware test tags (respectively) if you want to add any additional tests to your landing run. If your patch includes changes to tests that don't already have the pr
tag on them, you should add your changed tests' tags to the respective test-tag pragma to ensure that all changed tests are being run in the testing on the PR.