image: python:3.8 variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" cache: paths: - .cache/pip before_script: - python --version stages: # List of stages for jobs, and their order of execution - build - test # - deploy code-quality-job: stage: test script: - pip install flake8 - flake8 . build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Installing dependencies" - pip install -Ur requirements.txt #-f https://download.pytorch.org/whl/torch_stable.html #- python main.py - echo "Build complete." unit-test-job: # This job runs in the test stage. stage: test # It only starts when the job in the build stage completes successfully. before_script: - echo "Installing dependencies" - pip install -Ur requirements.txt #-f https://download.pytorch.org/whl/torch_stable.html script: - echo "Running unit tests... This will take about 60 seconds." - pytest --junitxml report.xml - coverage run -m pytest - coverage report organ/*.py organ/*/*.py - coverage xml coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' artifacts: when: always reports: junit: report.xml coverage_report: coverage_format: cobertura path: coverage.xml # - sleep 60 # - echo "Code coverage is 90%" #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: # - echo "Linting code... This will take about 10 seconds." # - sleep 10 # - echo "No lint issues found." #deploy-job: # This job runs in the deploy stage. # stage: deploy # It only runs when *both* jobs in the test stage complete successfully. # script: # - echo "Deploying application..." # - echo "Application successfully deployed."