Commit Graph

42 Commits

Author SHA1 Message Date
Kenneth Moreland
e1557f080b Fix issue with nested script strings in CI reproduce script
The `reproduce_ci_env.py` script reads in the yaml for the GitLab
runners and replicates the runs using Docker. Through a quirk of the
implemenation of MR !3191, some of the scripts, which are expected to be
a list of command strings, get defined as a list of lists. This is fixed
by flattening this list of commands.
2024-02-21 16:43:59 -05:00
Vicente Adolfo Bolea Sanchez
fc90853673 cmake: only set lfs.url when using ssh URL 2023-05-24 19:51:51 -04:00
Vicente Adolfo Bolea Sanchez
19f10b9a0b compare.py: add normal and t-student utest 2022-10-03 13:19:40 -04:00
Vicente Adolfo Bolea Sanchez
706bd8d2b7 compare.py: disable color when not in a term 2022-10-03 13:19:40 -04:00
Kenneth Moreland
475261370d Fix newline issue in reproduce_ci_env.py
MR !2598 introduced some fixes to `reproduce_ci_env.py`. One of
them handled newlines in command lists by separating the command
lists by newlines in the Dockerfile (which generated a script).
Although this worked for some of the docker containers, I found
others, like rhel8, where the newlines were not escaped correctly.

Correct this problem by moving back to separating commands with
`&&`. This requires replacing newlines in commands with `&&`.
That in itself is no problem except that if you have a blank
line, you get `&& &&`, which is a syntax error for the shell.
So, avoid this by stripping newlines from commands.
2021-10-14 10:15:02 -06:00
Kenneth Moreland
ecacc89b7d Make reproduce_ci_env.py more tolerant of scripts
When `reproduce_ci_env.py` makes its docker container, it creates a pair
of scripts, `setup-gitlab-env.sh` and `run-gitlab-stage.sh`, inside the
container. These scripts came from the `before_script` and `script` CI
configuration parameters, respectively.

These two scripts were created by joining each item in the CI
configuration lists with `&&` onto a single line. However, this meant
that each list item had to be on its own line or it didn't work. A
recent configuration change meant that one of the configurations
contained multiple shell commands separated by newlines. This change
builds the script with multiple lines (which have to be carefully
escaped in the generated dockerfile).

Also modified these strings to escape quotes (`"`). This is important as
the dockerfile generates these scripts using an `echo` command that
needs to quote all of the arguments together.
2021-10-05 14:18:25 -06:00
Kenneth Moreland
28b800d21d Merge dictionaries when extending CI builds
When one CI build YAML spec extended another, the `reproduce_ci_env.py`
script was overwritting local configuration with the configuration being
extended. This change merges all configuration together (which appears
to be how the GitLab CI works).
2021-10-05 13:11:44 -06:00
Vicente Adolfo Bolea Sanchez
7ea282734a LFS: Set default url to the current origin url
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-07-16 16:18:10 -04:00
Vicente Adolfo Bolea Sanchez
dd2aa335e8 LFS: Set lfs.url upon the origin url
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-06-24 13:26:40 -04:00
Robert Maynard
88b207d74f reproduce_ci_env doesn't try to do any form of EOL normalization
This means that we no longer do `git reset --hard` allowing
local changes to copied into the docker container
2020-12-15 14:36:36 -05:00
Kenneth Moreland
186ee49583 Change CI script hash-bang from /bin/env to /usr/bin/env
Historically, the `/bin` directory on Unix has a reduced set of
commands used for small mounts while booting the system. As such,
it is common for `/bin` to be missing the `env` command.

For the same historical reasons, `/usr/bin` tends to have most if
not all commands provided to the user environment. Thus,
`/usr/bin/env` is more likely to exist than `/bin/env`. This is
in fact the case for Mac OSX, which is a very widely used version
of *nix.

Thus, it is better to use `#!/usr/bin/env` as the hash-bang in
scripts.
2020-06-29 06:58:51 -06:00
Robert Maynard
930c3d2fb0 reproduce_ci_env better detects which stage a job is for
Previously stages like `doxygen` wouldn't be detected by
reproduce_ci_env as they didn't start with `build:` or `test:`.
Now we properly look for the `stage` key.
2020-06-03 09:55:21 -04:00
Vicente Adolfo Bolea Sanchez
b05bd33d3c benchmarks: pass unparsed args to Google benchmark
- It also adds Google's benchmarch compare.py script
  - It is installed to the build directory.

- It add a wrapper script called compare-benchmarks.py which:
  - Let you run each of the benchmarks with different devices

- It adds a README.md explaining how to run the benchmarks

- BenchmarkDeviceAdapter input size range parametrized at compile time

Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2020-04-21 10:52:31 -04:00
Robert Maynard
b3924ef302 Add an asan to our gitlab ci suite 2020-04-20 11:26:26 -04:00
Robert Maynard
24a264fce8 Add scripts to allow developers to replicate CI environments
To simplify reproducing docker based CI workers locally, VTK-m has python program that handles all the
work automatically for you.

The program is located in `[Utilities/CI/reproduce_ci_env.py ]` and requires python3 and pyyaml.

To use the program is really easy! The following two commands will create the `build:rhel8` gitlab-ci
worker as a docker image and setup a container just as how gitlab-ci would be before the actual
compilation of VTK-m. Instead of doing the compilation, instead you will be given an interactive shell.

```
./reproduce_ci_env.py create rhel8
./reproduce_ci_env.py run rhel8
```

To compile VTK-m from the the interactive shell you would do the following:
```
> src]# cd build/
> build]# cmake --build .
```
2020-04-09 13:54:20 -04:00
Ben Boeckel
bea0a7e38e hooks: add hook chains for development checks and LFS 2020-04-02 12:51:43 -04:00
Ben Boeckel
867f0a069f SetupForDevelopment: setup lfs hooks 2020-04-02 12:50:43 -04:00
Ben Boeckel
4da3a3dc38 Merge branch 'upstream-GitSetup' into lfs-setup-fixups
# By GitSetup Upstream
* upstream-GitSetup:
  GitSetup 2018-06-26 (1ed3dc31)
2020-04-02 12:46:57 -04:00
Ben Boeckel
8b3fa1d616 gitsetup: get the lfs setup script 2020-04-02 12:46:37 -04:00
Allison Vacanti
41894a97b3 Unroll reduction loops for non-integral types on OpenMP. 2019-07-16 14:47:41 -04:00
Robert Maynard
cec9af64b1 Update the lsan suppression to capture tbb leaks.
Additionally document that we only want to suppress the known
leak in loguru::set_thread_name.
2019-04-29 17:04:15 -04:00
Robert Maynard
2a697b5263 benchCompare now handles the new Benchmark syntax 2019-03-08 13:46:54 -05:00
Haocheng LIU
18ba2baf36 Suppress system lib memory leak warnings found by asan 2019-02-13 13:49:24 -05:00
Haocheng LIU
4165866567 Suppress loguru memory leak
Due to a bug in pthread, loguru would leak 12 bytes memory from the main
thread when `loguru::init` is in use. Since GCC does not support
blacklist file, the suppression logic is added to
ctest_memcheck_supp_file file.

See details in loguru github issue #59.
2019-02-12 10:38:48 -05:00
Kenneth Moreland
871d3360f1 Add status update to update script
The script can take a while, so it is good to give some output so
that users know that it is still running.
2019-01-11 12:23:19 -07:00
Kenneth Moreland
16c2dfd8be Add script to update control signature tags
Removes template parameters from tags that no longer use them.
2019-01-11 12:15:16 -07:00
Haocheng LIU
b5e618c980 DynamicAnalysis: Blacklist third party modules and libraries
For use with sanitizer builds.
2018-11-30 13:46:01 -05:00
Allison Vacanti
f16e1011ed Cleanup / expand the benchmark parser scripts. 2018-08-29 14:42:17 -07:00
Allison Vacanti
6b08f4e6c4 Handle NaNs gracefully in benchmark compare script. 2018-08-23 16:40:25 -04:00
Kenneth Moreland
37bf9fadd7 Add some instructions for fixing common git problems
This includes updated to the latest master. To help with that,
I added an alias to SetupForDevelopment.sh to update the
master branch regardless of what branch you are on.
2018-07-27 11:23:00 -06:00
Kenneth Moreland
394369368c Revert spelling correction in GitSetup script
A recent merge request corrected several spelling errors in VTK-m.
One such correction was in the git-gitlab-sync script in the
Utilities/GitSetup directory. This commit reverts the change in
this specific file for two reasons.

1. The changed introduced a \' inside a single quote string (to
correct cant to can't). However, single quotes in shell scripts
do not allow you to escape characters like that, and thus this
causes an error when running the script.

2. This script actually comes from a separate repository
(https://gitlab.kitware.com/utils/gitsetup) that we occasionally
syncronize with. To prevent confusion, we should minimize the
divergence between this repository and that one. If someone wants
to make this change, it should really be made in the GitSetup
repository.
2018-01-31 15:59:57 -07:00
luz.paz
45239449a6 More typos
these need a little  more review.
2018-01-30 06:51:47 -05:00
Kenneth Moreland
54b543c92e Merge branch 'upstream-GitSetup'
* upstream-GitSetup:
  GitSetup 2017-10-23 (34f17af6)
2017-10-23 15:35:29 -06:00
Allison Vacanti
e22a410885 Add python script that diffs VTKM benchmarks. 2017-09-26 16:49:25 -04:00
Kenneth Moreland
7d6c99b8ce Update git-gitlab-push to recent changes in GitSetup repo
The changes silence git rev-parse and support
Windows lease detection.
2017-09-21 09:19:12 -06:00
Kenneth Moreland
a0ba2765f7 Fix errors with variable names with hyphen in git setup scripts
Specifically, several of the git setup scripts defined a function
named "egrep-q". This almost always works, but I happened to have
an install of git on windows/cygwin that gave the error:

    `egrep-q': not a valid identifier

I always thought hyphens were allowed in script identifiers (and
usually they are), but apparently sometimes they are not. (See
for example
https://stackoverflow.com/questions/2821043/allowed-characters-in-linux-environment-variable-names).
This provides an easy fix by replacing egrep-q with egrep_q.
2017-09-19 10:40:51 -06:00
Robert Maynard
e91401ac0f Enable SetupForDevelopment in VTK-m 2017-06-07 10:02:38 -04:00
Robert Maynard
569655c454 Add autostash command flag to git-gitlab-sync 2017-06-07 10:02:38 -04:00
Robert Maynard
0f171de1c5 Add gitlab-sync command to ease updating local branches after reformats 2017-06-07 10:01:12 -04:00
Robert Maynard
c5d20ef7ba Merge branch 'upstream-GitSetup' into add_setup_for_development
* upstream-GitSetup:
  GitSetup 2016-12-13 (cd5ada6d)
2017-06-07 09:58:36 -04:00
Robert Maynard
7736f95050 Add the update scripts needed to import GitSetup 2017-06-07 09:43:50 -04:00
Kenneth Moreland
3ffd16a8a6 Add ability to get VTK-m version from git
In addition to keeping the version number accurate, this will help us
differentiate between-the-numbers commits.
2017-01-26 10:02:04 -07:00