image: python:latest stages: - lint - test - deploy before_script: - pip install poetry - poetry install --no-root lint: stage: lint script: - poetry run ruff check - poetry run ruff format --check - poetry run mypy . test: stage: test script: - poetry run pytest -v --cov=. --cov-report=xml after_script: - bash <(curl -s https://codecov.io/bash) artifacts: reports: coverage_report: coverage_format: cobertura path: coverage.xml deploy_to_dockerhub: stage: deploy needs: - test only: refs: - master except: - tags image: docker:latest services: - docker:dind before_script: - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - docker buildx create --use script: - docker buildx build --push --tag rogsme/cleanmedia:latest . deploy_to_gitlab: stage: deploy needs: - test only: refs: - master except: - tags image: docker:latest services: - docker:dind before_script: - docker login registry.gitlab.com -u $GITLAB_USERNAME -p $GITLAB_PASSWORD - docker buildx create --use script: - docker buildx build --push --tag registry.gitlab.com/rogs/cleanmedia:latest .