diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..1c9d381f04f64acc52a22b8d0e2d949e101e6e36 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,41 @@ +default: # Set default + tags: + - docker + image: python:3.10-slim-buster + +stages: # List of stages for jobs, and their order of execution + - build + - test + - deploy + +build-job: # This job runs in the build stage, which runs first. + stage: build + script: + - pip install -r requirements.txt + - pip install -r requirements-dev.txt + - pip install -e . + +unit-test-job: # This job runs in the test stage. + stage: test # It only starts when the job in the build stage completes successfully. + script: + - pip install -r requirements.txt + - pip install -r requirements-dev.txt + - pip install -e . + - coverage run --source readsequencer -m pytest + - coverage report -m + +lint-test-job: # This job also runs in the test stage. + stage: test # It can run at the same time as unit-test-job (in parallel). + script: + - pip install -r requirements.txt + - pip install -r requirements-dev.txt + - pip install -e . + #- flake8 --docstring-convention google readsequencer/ tests/ + #- pylint readsequencer/ tests/ + +deploy-job: # This job runs in the deploy stage. + stage: deploy # It only runs when *both* jobs in the test stage complete successfully. + environment: production + script: + - echo "Deploying application..." + - echo "Application successfully deployed." diff --git a/requirements.txt b/requirements.txt index d2abc8c3e9daa5c6edf8da94b96b1135d3259e78..bb3fee8e048b956725918f8fd8df3a557cffa3e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,2 @@ -argparse -logging -random -collections.abc Bio -Bio.Seq -Bio.SeqRecord \ No newline at end of file +argparse \ No newline at end of file diff --git a/setup.py b/setup.py index 39b68b402d8f77d09a6446ace93303ab86598825..8a94d0d97f65a2f1a6dd9f9ce80635f5454f7fca 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,8 @@ from setuptools import setup, find_packages +from pathlib import Path +project_root_dir = Path(__file__).parent.resolve() +with open(project_root_dir / "requirements.txt", "r", encoding="utf-8") as _file: + INSTALL_REQUIRES = _file.read().splitlines() setup( name='readsequencer', @@ -9,6 +13,6 @@ setup( author_email='christoph.harmel@unibas.ch', description='Simulates sequencing with a specified read length from sequences specified by a FASTA file.', packages=find_packages(), - install_requires=['Bio','argparse'], + install_requires=INSTALL_REQUIRES, entry_points={'console_scripts': ['readsequencer=readsequencer.cli:main']} )