{"id":49325606,"url":"https://github.com/janhybs/ci-hpc","last_synced_at":"2026-04-26T20:00:46.479Z","repository":{"id":62562185,"uuid":"128672668","full_name":"janhybs/ci-hpc","owner":"janhybs","description":"A framework combining CI and HPC together with a minimalistic set of Python scripts to monitor scalability and performance of the software package.","archived":false,"fork":false,"pushed_at":"2019-07-25T08:36:39.000Z","size":69366,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-05T07:21:50.335Z","etag":null,"topics":["ci","hpc","jenkins","jupyter-notebook","mongodb","performance","python","scalability","yaml"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janhybs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-08T19:01:27.000Z","updated_at":"2023-09-24T00:19:02.000Z","dependencies_parsed_at":"2022-11-03T15:30:30.289Z","dependency_job_id":null,"html_url":"https://github.com/janhybs/ci-hpc","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/janhybs/ci-hpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janhybs%2Fci-hpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janhybs%2Fci-hpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janhybs%2Fci-hpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janhybs%2Fci-hpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janhybs","download_url":"https://codeload.github.com/janhybs/ci-hpc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janhybs%2Fci-hpc/sbom","scorecard":{"id":505112,"data":{"date":"2025-08-11","repo":{"name":"github.com/janhybs/ci-hpc","commit":"293740c7af62ecada5744ff663266de2e3d37445"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: cfg/flow123d/scripts/download-mesh.sh:0","Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: cfg/flow123d/scripts/flow.sh:0","Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: cfg/flow123d/scripts/init-shell.sh:0","Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: cfg/flow123d/scripts/run-test.sh:0","Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: cfg/hello-world/sh/test.sh:0","Warn: pipCommand not pinned by hash: cfg/flow123d/qsub/charon-excl-12h.sh:48","Warn: pipCommand not pinned by hash: cfg/flow123d/qsub/charon-excl-2h.sh:48","Warn: pipCommand not pinned by hash: share/install.sh:6","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"32 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-4 / GHSA-2mqj-m65w-jghx","Warn: Project is vulnerable to: PYSEC-2023-165 / GHSA-cwvm-v4w8-q58c","Warn: Project is vulnerable to: PYSEC-2022-42992 / GHSA-hcpj-qp55-gfph","Warn: Project is vulnerable to: PYSEC-2023-137 / GHSA-pr76-5cm5-w9cj","Warn: Project is vulnerable to: PYSEC-2023-161 / GHSA-wfm5-v35h-vwf4","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: GHSA-m87m-mmvp-v9qm","Warn: Project is vulnerable to: PYSEC-2013-30 / GHSA-x33v-f3gp-gw2c","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2017-74","Warn: Project is vulnerable to: PYSEC-2018-66 / GHSA-562c-5r94-xh97","Warn: Project is vulnerable to: PYSEC-2019-179 / GHSA-5wv5-4vpf-pj6m","Warn: Project is vulnerable to: PYSEC-2023-62 / GHSA-m2qf-hxjv-5gpq","Warn: Project is vulnerable to: PYSEC-2018-54 / GHSA-894g-6j7q-2hx6","Warn: Project is vulnerable to: GHSA-43qf-4rqw-9q2g","Warn: Project is vulnerable to: GHSA-7rxf-gvfg-47g4","Warn: Project is vulnerable to: GHSA-84pr-m4jr-85g5","Warn: Project is vulnerable to: GHSA-8vgw-p6qm-5gr7","Warn: Project is vulnerable to: PYSEC-2024-71 / GHSA-hxwh-jpp2-84pm","Warn: Project is vulnerable to: PYSEC-2020-43 / GHSA-xc3p-ff3m-f46v","Warn: Project is vulnerable to: PYSEC-2022-14 / GHSA-39ph-wr67-j4xq"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T23:06:30.641Z","repository_id":62562185,"created_at":"2025-08-19T23:06:30.642Z","updated_at":"2025-08-19T23:06:30.642Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32310804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","hpc","jenkins","jupyter-notebook","mongodb","performance","python","scalability","yaml"],"created_at":"2026-04-26T20:00:35.615Z","updated_at":"2026-04-26T20:00:46.468Z","avatar_url":"https://github.com/janhybs.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CI \u0026 HPC \u0026middot; [![Travis (.org) branch](https://img.shields.io/travis/janhybs/ci-hpc/dev.svg?style=flat-square)](https://travis-ci.org/janhybs/ci-hpc) [![Read the Docs](https://img.shields.io/readthedocs/ci-hpc/dev.svg?style=flat-square)](https://ci-hpc.readthedocs.io/en/dev) [![download the PDF Docs](https://img.shields.io/badge/docs-PDF-d3231c.svg?style=flat-square\u0026logo=adobe\u0026logoColor=white)](https://readthedocs.org/projects/ci-hpc/downloads/pdf/dev/) [![PyPI](https://img.shields.io/pypi/v/cihpc.svg?style=flat-square)](https://pypi.org/project/cihpc/) [![GitHub](https://img.shields.io/github/license/janhybs/ci-hpc.svg?style=flat-square)](https://github.com/janhybs/ci-hpc/blob/master/LICENSE) [![Coveralls github branch](https://img.shields.io/coveralls/github/janhybs/ci-hpc/dev.svg?style=flat-square)](https://coveralls.io/github/janhybs/ci-hpc)\n\nA *simple* framework which can monitor the performance and scalability of software packages.\nThe framework presented here combines *Continuous Integation* \u0026 *High Performance Computing*\ntogether with a minimalistic set of Python scripts.\nThe results can be visualised in form of static Jupyter notebook or in an interactive web page.\n\n\n## Features\n - automatically run benchmarks of your project\n - inspect performance and scalability of your project\n - create complex configurations with travis-like syntax build matrix capabilities (`YAML` format)\n \n## How to use ci-hpc?\n 1) First install the framework by executing:\n    ```sh\n    pip3 install --user ci-hpc\n    ```\n 1) Create a configuration (file `config.yaml`) for your repository.\n    In this cofiguration, you should specify several options.\n    \n    - `ci-hpc` needs to know, which repositories are part of your project.\n      You can specify one or more repositories. Each repository will be \n      cloned and checked out when installing.\n      \n    - You also need to tell the `ci-hpc` how to install your project.  \n      It can be as simple as\n    \n      `./configure; make; make install`  \n      or  `pip install ./foo/`\n      \n      But it can be also quite complex, you can even simplify\n      entire process with usage of install file:  \n      with something like this`!sh install.sh`\n      (`install.sh` in this case is a shell script, which contains\n      your installation process)\n      \n    - Next thing is testing section. Here, `ci-hpc` needs to know, \n      what benchmarks you want to run under what configuration.\n      You can create complex build matrices so your configuration\n      can be kept simple and transparent.\n    \n 2) When you are done with the configuration. You should probably verify,\n    it is working. Assuming the following structure:\n    ```\n    .\n    └── hello-world\n       └── config.yaml\n    ```\n    Execute `ci-hpc` with\n    ```\n    cihpc --project hello-world\n    ```\n  \n 3) If everything works, setup a mongoDB server and add collection \n    section (once again file `config.yaml`):\n   \n    - `ci-hpc` needs to know, what results you want to store.\n      Is it a some `json` profiler or `yaml` results?\n      or are the timings save in a `xml` format? In the `ci-hpc` there\n      is some general support for the `json` and `yaml`\n      formats, but you can write your own `artifact` module and simply\n      put it in the correct folder.\n      \n    - The most of the heavy lifting is already done in a parent class\n      so adding a new collection module should be relatively easy.\n\n 4) Now to display the results, setup a visualization server.\n\n## What's new?\n - now supporting multiple repositories within single project\n - speed up testing process by using multiple cores on a computing node\n - easily run ci-hpc on a previous commits by using `commit-browser` module\n - automatically determine which tests to run based on the previous results\n - webhook support, automatically start `ci-chp` upon new commit\n\n## What's to come?\n - run extra tests when suspecting significant performance change\n - create web visualisation configuration from analyzing records in database\n\n## CI-HPC showcase\n\n### Interactive website\n\n- ![Demo site 1](docs/imgs/demo/demo-01.png)\n- ![Demo site 2](docs/imgs/demo/demo-03.png)\n- ![Demo site 2](docs/imgs/demo/demo-05.png)\n- ![Demo site gif](docs/imgs/ci-hpc-demo-dev.gif)\n\n\n## Documentation \u0026 Installation\nRead the docs at [ci-hpc.readthedocs.io](https://ci-hpc.readthedocs.io/en/dev/) to know more about installation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanhybs%2Fci-hpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanhybs%2Fci-hpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanhybs%2Fci-hpc/lists"}