Git and continuous integration tools for PyBEL to assist in curating BEL.
If you've found pybel-git
useful in your work, please consider citing [1]:
[1] | Hoyt, C. T., et al. (2019). Re-curation and rational enrichment of knowledge graphs in Biological Expression Language. Database, 2019, baz068. |
Below are examples on using pybel-git
within the configuration
of several continuous integration services. Additonaly, the -r
option can be used to specify required annotations. For example,
-r Confidence
can be used during re-curation.
To configure Travis-CI to evaluate the
BEL files that have changed in the latest commit to a in a GitHub
repository on each commit, the following travis.yml
file can
be used:
sudo: false
cache: pip
language: python
python:
- '3.7'
install:
- pip install pybel-git
script:
- pybel-git ci
Currently, the build doesn't use a cached resource file, so this job
might take a long time. The travis_wait command can be used so the script reads
travis_wait 30 pybel-git ci
and the job will be allowed to run for
thirty (30) minutes.
An example repository can be found at https://github.com/bel-curation/pybel-git-test. An example build for this repository can be found at https://travis-ci.com/bel-curation/pybel-git-test/builds/87612373.
To configure GitLab CI/CD to
evaluate the BEL files that have changed in the latest commit to
a GitLab repository, the following .gitlab-ci.yml
can be used:
test:
image: python:3.7
script:
- pip install pybel-git
- pybel-git ci
As with GitHub/Travis-CI, this configuration does not use a cached resource file. GitLab CI/CD doesn't seem to offer a wait time, but it might also not have an issue with timing out, either.
An example repository can be found at https://gitlab.com/cthoyt/pybel-gitlab-example. An example build for this repository can be found at https://gitlab.com/cthoyt/pybel-gitlab-example/-/jobs/113454179
To configure a BitBucket Pipelines to evaluate BEL files that have
been changed in the latest commit to a BitBucket repository, the
following bitbucket-pipelines.yml
ca be used:
image: python:3.7
pipelines:
default:
- step:
caches:
- pip
script:
- pip install pybel-git
- pybel-git ci
An example repository can be found at https://bitbucket.org/pybel/pybel-bitbucket-example. An example build for this repository can be found at https://bitbucket.org/pybel/pybel-bitbucket-example/addon/pipelines/home#!/results/2.
PyBEL-Git contains extra scripts to assist in automatic checking and feedback for projects residing in GitLab that are using the Git Flow workflow of branching and making merge requests.
This script checks each branch, compiles the BEL documents that have changed compared to master, and puts comments on the merge request with the warnings and feedback on the syntactic and semantic correctness of the BEL files.
It can be run with:
pybel-git ci_gitlab \
--url "https://gitlab.scai.fraunhofer.de" # the url of the desired gitlab instance \
--project-id 449 # the gitlab project id, shown at the top of the page for the repository \
This script uses EasyConfig and can also be configured
via the environment variables GITLAB_URL
, GITLAB_PROJECT_ID
, and GITLAB_TOKEN
.